Actionscript 3绘制大型rect会导致巨大的FPS下降

时间:2013-03-06 13:28:52

标签: performance actionscript-3 flash optimization

我会直截了当地说明

我需要绘制一个大尺寸的矩形(宽度约为5k像素,高度可能更高)

this.graphics.beginFill(0x555555,1);
this.graphics.drawRect(0, 0, 5000, 5000);

现在我知道,起初它需要时间来生成那么大的矩形, 但即便如此,fps也非常低,特别是如果其他事情正在舞台上移动,

我需要这个游戏(这是基础),有没有更好的简单方法呢?

由于

3 个答案:

答案 0 :(得分:3)

如果您的应用程序窗口仅为800x600,则无需绘制5000x5000图像。您可以做的是拥有5000x5000位图数据,只需将其子矩形复制到窗口即可。 bitmapData.copyPixels应该让你这样做而且速度非常快。

答案 1 :(得分:2)

您可以使用多个小背景替换一个大背景,并根据当前视图位置更改其位置。例如,具有5000的调光的矩形可以被分成25个“瓦片”,宽度和高度为1000像素。您可以使用两个MovieClip来保存当前磁贴。您需要2个持有者 - 一个持有当前视图,第二个持有当前瓷砖离开屏幕时将变为可见的拼贴。

答案 2 :(得分:0)

假设游戏区域未缩放并且您将滚动游戏,则不会显示整个5000像素矩形,因此您可以创建具有相同大小的舞台区域的地面并将其放置在移动的图层中沿着可见区域。 只是一个简单的视差。

一层有一种颜色的地面。 其他层有东西在它上面移动。

无论如何,你应该提供有关游戏的更多信息。 矢量图形? 位图? 游戏区域可扩展?