0

我开发了一个跨平台的 AIR 应用程序,由于动画/使用矢量图而不是位图资产,它在移动设备上的性能严重不足。使用 cacheAsBitmapMatrix / cacheAsBitmap 更好,何时何地分配得当,但仍然不如使用位图资产快。

我试图在运行时将矢量图形 bitmapData.draw() 到 Bitmap 对象并为位图对象设置动画,但这仅与简单地将矢量图形缓存为位图。

Flash Professional 5.5 UI 现在能够将矢量图形转换为位图资源,但是否可以在运行时执行此操作?是否有可能有一个实际的 Rasterize() 例程在运行时将编程绘制的矢量图形甚至可编辑文本转换为位图,以获得最佳动画性能,尤其是在移动设备上?

4

1 回答 1

0

当您说您尝试为位图设置动画时,我希望您并不是说您正在旋转/调整位图的大小 - 因为这是一个缓慢的过程。

也许有一个引擎,当您的游戏加载时,它会根据 MovieClip 中的帧(如果有动画)为您创建一个精灵表。然后这些可以被BitmapData.copyPixels().

这将简单地:

  1. 创建一个 BitmapData 对象。
  2. 将 MovieClips 时间轴的每一帧绘制到 BitmapData 上,就像您使用精灵表手动一样。
  3. 将 BitmapData 存储到关联数组中,以便稍后访问,例如sheets["zombie1"]

您甚至可以在 for 循环中旋转对象并将旋转的对象绘制到工作表上。

然后,您SheetObject将只有加载先前定义的工作表的一部分并显示它的方法。

这一切都在正确的轨道上吗..?

于 2011-05-20T00:07:16.307 回答