所以创建了一个 Sprite,我在其中添加了其他作为游戏图块的 Sprite。每个图块的大小为 60 x 60 像素。结果我有大约 200 个孩子(那些瓷砖)的 Sprite。当我尝试 startDrag() 容器精灵移动时滞后非常明显..
有没有办法像加入瓷砖精灵这样容器只有 1 个子精灵而不是 200 个?因为它滞后太多可能导致它需要移动(更改 x 和 y)所有这 200 个图块。我正确吗?
在这种情况下,我不能使用 cacheAsBitmap 属性,因为用户可以放大或缩小地图..
所以创建了一个 Sprite,我在其中添加了其他作为游戏图块的 Sprite。每个图块的大小为 60 x 60 像素。结果我有大约 200 个孩子(那些瓷砖)的 Sprite。当我尝试 startDrag() 容器精灵移动时滞后非常明显..
有没有办法像加入瓷砖精灵这样容器只有 1 个子精灵而不是 200 个?因为它滞后太多可能导致它需要移动(更改 x 和 y)所有这 200 个图块。我正确吗?
在这种情况下,我不能使用 cacheAsBitmap 属性,因为用户可以放大或缩小地图..
Glycerine & Aurel 确实触及了真正解决方案的症结所在。不过我想补充一下。
顺便说一句,当你说当你移动容器时它必须管理这么多精灵位置时,你是对的。CacheAsBitmap 确实在很大程度上解决了这个问题,但真正的解决方案是 blitting。试试这个链接:
http://www.adobe.com/devnet/flash/articles/blitting_mc.html
是否需要用户缩放或类似的东西并不重要,因为您始终可以在位图数据和原始矢量精灵之间切换。您的问题出现在移动。管理lotsa sprites 中,因此在此之前使用优化,然后让它们回到自己的状态。
我以前也遇到过同样的问题。从某种意义上说,是否有可能将它们“加入”在一起。
当您将 200 个精灵添加到屏幕上时 - 我假设您将它们全部放入另一个父精灵中。
在这一点上 - 您将拍摄所有精灵的快照或屏幕截图 - 或照片复制品(无论您想如何称呼它)并将图像(bitmapData)写入父精灵。在此刻。删除/删除/隐藏/取消原始精灵,您将得到一个包含位图数据的精灵。
一张大图像可以移动和缩放等等。
如果您需要代码 - 询问。这是耗时的代码,所以你先告诉我,然后我会写它:P
嗯,加入他们实际上会很困难......你需要获取图形,代码和所有内容并将其放入父级......
我认为这不是问题所在-您应该做其他事情...在这种情况下,我认为“瓷砖”是指父级将是瓷砖地图,对吗?因此,您可能有一个具有图块类型的二维数组(数组数组) - 而不是在初始化时解析该数组,创建很多 Sprite,尝试在每一帧中重新解析它(它更快),但只添加可以看到的精灵。也就是说 - 它们的 X 位置(在添加缩放和相机 X 之后)大于-sprite.width,其中高度也被缩放缩放,并且小于stage.width + sprite.width(再次,缩放后的宽度) . Y 也是如此,只有高度属性。