【发布时间】:2012-02-16 04:25:19
【问题描述】:
在我尝试在 Flash 中进行快速渲染时,我发现唯一的解决方案是动态创建精灵表。
Sprite 表是使用 BitmapData.draw() 从 MovieClip 创建的。
我有一个图形管理器类,它有一个接受 MovieClip 和一个 int 的方法。 MovieClip 是从中捕获图形的目标,int 表示图像可以在 360 度内渲染多少个不同的角度。
例如,如果提供的 int 是4,我会得到这样的结果:
如果我提供 8 我会得到这个:
等等(最多 360 度)。
然后该方法返回我创建的另一个类的实例,它可以通过指定框架和旋转来轻松捕获给定单元格的 BitmapData,例如:
var myGraphics:SpriteSheet = aboveMethod(movieClip, 4);
var cell:BitmapData = myGraphics.getCell(2, 90); // frame 2 rotated to 90 degrees
创建这些精灵表显然会占用大量 RAM - 特别是如果我有 100 多个帧需要旋转到最接近的 2 度(总共 1800 个单元格)的东西。
我不知道这些使用了多少 RAM,而且我也不知道我的游戏使用多少 RAM 是令人满意的。
任何与此相关的建议都会非常有帮助。注意:我确保在 SpriteSheet 定义的我自己的 dispose() 方法中使用 BitmapData.dispose() 来清理 RAM,我更关心在给定时间我可以使用多少 RAM(所有将渲染的游戏资产都准备好使用)。
【问题讨论】:
标签: flash actionscript-3 memory rendering