Actionscript 3 平铺和缩放的精灵之间的间距

Actionscript 3 平铺和缩放的精灵之间的间距,actionscript-3,apache-flex,layout,Actionscript 3,Apache Flex,Layout,我正在开发一个地图应用程序,我遇到了一个问题,即缩放时我的瓷砖是如何铺设的 以下是我的基本结构: 显然还有很多事情要做,但你明白了。现在,我缩放地图应用程序Sprite以放大。当缩放发生时,每个磁贴之间都有间隙 您可以在此处看到4个瓷砖相交处的间隙: 我将所有内容缓存为位图。对于每个层(都扩展了位图),我将平滑设置为true,并将像素捕捉设置为像素捕捉。始终(像素捕捉在这里没有帮助,但也不会造成伤害) 有人对如何解决这个问题有什么建议吗 (为了完整起见,Map应用程序完全使用AS3构建,并嵌

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

以下是我的基本结构:

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

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

我将所有内容缓存为位图。对于每个层(都扩展了
位图
),我将
平滑
设置为true,并将
像素捕捉
设置为
像素捕捉。始终
(像素捕捉在这里没有帮助,但也不会造成伤害)

有人对如何解决这个问题有什么建议吗


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

如果看不到您的代码,很难确定,但这可能只是由于缩放而产生的视觉伪影-例如:缩放到155%的250px宽位图应以387.5px宽渲染,但这是不可能的,因此其渲染为388px宽-0.5px部分以50%alpha渲染为1px,以提供0.5px的“外观”


确保缩放位图的宽度/高度始终为整数可以解决此问题?

如果看不到您的代码,很难确定,但这可能只是由于缩放而产生的视觉伪影-例如:缩放到155%的250px宽位图应以387.5px宽渲染,但这是不可能的,因此其渲染为388px宽-0.5px部分以50%alpha渲染为1px,以提供0.5px的“外观”


确保缩放位图的宽度/高度始终为整数可能会解决此问题?

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

但是,如果要缩放该容器精灵,还需要确保进行缩放,以使平铺的宽度/高度为整数值

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


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

对平铺x、y位置使用整数并正确计算这些位置很可能是这里的解决方案,除非图像中有接缝! 需要计算和设置x、y位置的代码来正确地指出代码中的问题

但是,如果要缩放该容器精灵,还需要确保进行缩放,以使平铺的宽度/高度为整数值

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


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

这看起来像是舍入错误

如果没有代码,很难知道:如果发布一个平铺类的基本示例,这将是您和我们的巨大财富。在减法的过程中,你很可能会发现你的答案


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

这看起来像是舍入错误

如果没有代码,很难知道:如果发布一个平铺类的基本示例,这将是您和我们的巨大财富。在减法的过程中,你很可能会发现你的答案


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

您将它们放在flex中的哪个容器中?怎么做?一个小小的代码能起到很大的作用吗?:)我只是把它放在一个UIComponent中,这样我就可以在Flex中使用Sprites(地图也需要在AS3应用程序中可用)你把它们放在Flex的哪个容器中?怎么做?一个小小的代码能起到很大的作用吗?:)我只是把它放在一个UIComponent中,这样我就可以在Flex中使用Sprites(地图也需要在AS3应用程序中可用),这就是正在发生的事情。我的父容器(我正在缩放的容器)正在舍入到最接近的int,但该容器中的平铺不是。要解决这个问题,我必须单独缩放每个磁贴,而不是父容器,并确保它们也是四舍五入的。这意味着重构我的平移/缩放类以适应这样的变化。不酷,但看来我别无选择。谢谢你的帮助这就是正在发生的事情。我的父容器(我正在缩放的容器)正在舍入到最接近的int,但该容器中的平铺不是。要解决这个问题,我必须单独缩放每个磁贴,而不是父容器,并确保它们也是四舍五入的。这意味着重构我的平移/缩放类以适应这样的变化。不酷,但看来我别无选择。谢谢你的帮助