平铺和缩放的精灵之间的差距

时间:2012-12-14 22:57:29

标签: actionscript-3 flex layout

我正在制作一个地图应用程序,我遇到了一个问题,即在缩放时我的瓷砖是如何铺设的。

以下是我的结构的基本看法:

enter image description here

显然还有很多事情要发生,但你明白了。现在,我缩放地图应用Sprite以放大。当缩放发生时,每个图块之间存在间隙。

你可以在这里看到4个瓷砖相遇的差距:

enter image description here

我将所有内容都缓存为位图。对于每个图层(均扩展为Bitmap),我将smoothing设置为true,将pixelSnapping设置为PixelSnapping.ALWAYS(像素捕捉在这里不应该有用,但它不应该'也伤害了。)

有人对如何解决此问题有任何建议吗?

(为了完整起见,Map应用程序完全使用AS3构建,并嵌入到Flex应用程序中)

3 个答案:

答案 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渲染问题或类中的缺陷。