0

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

这是我的结构的基本介绍:

在此处输入图像描述

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

您可以在此处看到 4 个瓷砖相交的间隙:

在此处输入图像描述

我将所有内容缓存为位图。对于每个 Layer (都扩展Bitmap),我smoothing设置为 true 并pixelSnapping设置为PixelSnapping.ALWAYS(像素捕捉在这里应该没有帮助,但它也不应该受到伤害)。

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

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

4

3 回答 3

1

没有看到您的代码很难确定,但它可能只是由于缩放而导致的视觉伪影 - 例如:缩放到 155% 的 250px 宽位图应该以 387.5px 宽呈现,但这是不可能的,因此它以 388px 宽呈现 - 与0.5px 部分以 50% alpha 呈现为 1px,以提供 0.5px 的“外观”。

确保缩放位图的宽度/高度始终是整数可以解决它吗?

于 2012-12-15T01:53:32.037 回答
1

使用整数平铺 x,y 位置并正确计算这些位置很可能是这里的解决方法,除非图像中有接缝!需要计算和设置 x,y 位置的代码才能正确查明代码中的问题。

但是,如果您要缩放该容器精灵,您需要确保缩放以使图块的宽度/高度为整数值。

例如,如果您缩放包含这些图块的精灵,则各个图块的宽度/高度可能并不总是整数,因此会创建您看到的那些接缝。

在这种情况下,您可以做的是通过整数值调整宽度/高度值来进行缩放,同时考虑比例,而不是在容器精灵上使用 scaleX 和 scaleY。

于 2012-12-15T02:20:00.060 回答
1

这看起来像一个舍入错误。

没有代码很难知道:如果发布您的平铺类的准系统示例,这对您和我们来说将是一笔巨大的财富。在减法的过程中,您很可能会发现您的解决方案。

我建议您测试当您以各种细粒度步骤缩放和 algin 四个 100x100 位图图像时会发生什么,以检测它是 Flash 渲染问题还是您的课程中的缺陷。

于 2012-12-18T06:06:52.337 回答