我有一个关于 Flash 循环的问题......
在瓷砖游戏中,我正在制作整个关卡的迷你 map 。它渲染 map 的方式是一个在另一个 for 循环中包含一个 for 循环的函数。它循环遍历每个图 block 位置并附加一个 map block (基本上是一个 3x3 像素正方形),该图 block 根据图 block 的颜色进行着色。不管怎样,我的问题是,当关卡变得像 50x50 block 一样大时, map 重新渲染将永远持续(最多 3 秒)。有没有什么办法解决这一问题?或者还有其他制作迷你 map 的方法吗?如果关卡变得越来越大,可能需要 10 秒!
感谢任何帮助!
谢谢, 马特
最佳答案
Flash 渲染图 block 的速度并不快。它非常适合在缓冲区中存储不会更改的图形并快速显示该缓冲区。作为子级添加到舞台的每个图形对象(或 Sprite )都必须独立渲染。
您的问题是 Flash 必须每帧绘制 50x50 = 2500 个图 block !即使它们是 3x3 像素,Flash 仍将它们视为单独的对象。
如果您可以将所有内容存储在缓冲区或一个对象中并显示它,那就太好了。因此,请尝试在同一个对象而不是多个对象中绘制这些 3x3 瓷砖。然而,这可能会妨碍您的功能,因为整个对象必须每帧重新渲染。
其他一些建议可能是在网格上较大的单元格中渲染对象。不要使用 50x50,而是从 10x10 开始,然后在每个单元格中绘制 5x5 单元格。这可能会加快速度。
希望这有帮助。如果您找到好的解决方案,请发布!
关于flash:for循环运行缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/156356/