我正在制作一个地图应用程序,我遇到了一个问题,即在缩放时我的瓷砖是如何铺设的。
以下是我的结构的基本看法:
显然还有很多事情要发生,但你明白了。现在,我缩放地图应用Sprite
以放大。当缩放发生时,每个图块之间存在间隙。
你可以在这里看到4个瓷砖相遇的差距:
我将所有内容都缓存为位图。对于每个图层(均扩展为Bitmap
),我将smoothing
设置为true,将pixelSnapping
设置为PixelSnapping.ALWAYS
(像素捕捉在这里不应该有用,但它不应该'也伤害了。)
有人对如何解决此问题有任何建议吗?
(为了完整起见,Map应用程序完全使用AS3构建,并嵌入到Flex应用程序中)
答案 0 :(得分:1)
在没有看到你的代码的情况下很难确定,但由于缩放可能只是一个视觉伪像 - 例如:缩放到155%的250px宽位图应该以387.5px宽渲染,但这是不可能的它的渲染宽度为388px - 0.5px部分渲染为1px,50%alpha,以提供外观' 0.5px。
确保缩放的位图宽度/高度始终是整数可以解决它吗?
答案 1 :(得分:1)
对于平铺x,y位置使用整数并正确计算这些位置很可能是此处的修复,除非图像中有接缝! 为了正确查明代码中的问题,需要计算和设置x,y位置的代码。
但是,如果要缩放容器精灵,您还需要确保缩放以使得拼贴的宽度/高度为整数值。
例如,如果缩放包含这些图块的精灵,则各个图块的宽度/高度可能并不总是整数,因此会创建您看到的那些接缝。
在这种情况下你可以做的是通过考虑比例来调整宽度/高度值的整数值来进行缩放,而不是在容器精灵上使用scaleX和scaleY。
答案 2 :(得分:1)
这看起来像一个舍入错误。
如果没有代码,很难知道:如果您发布了平铺类的准确示例,那对您和我们来说将是一笔巨大的财富。在减法过程中,你很可能会发现你的解决方案。
我建议您测试在各种细粒步骤中缩放和分析四个100x100位图图像时会发生什么,以检测它是否是Flash渲染问题或类中的缺陷。