ActionScript - 在运行时栅格化矢量图形?

时间:2011-05-19 23:54:55

标签: actionscript-3 air bitmap vector-graphics rasterize

我开发了一个跨平台的AIR应用程序,由于动画/使用矢量图形而不是位图资源导致移动设备严重不足。使用cacheAsBitmapMatrix / cacheAsBitmap更好,在何时何地适当分配,但仍然没有使用位图资产那么快。

我试图在运行时将矢量图形bitmapData.draw()转换为Bitmap对象,并改为对位图对象进行动画制作,但这只能执行与缓存矢量相同的(或者甚至可能完全相同)图形作为位图。

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

1 个答案:

答案 0 :(得分:0)

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

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

这只是:

  1. 创建一个BitmapData对象。
  2. 将MovieClip时间轴的每一帧绘制到BitmapData上,就像使用精灵表一样。
  3. 将BitmapData存储到关联数组中,以便以后轻松访问,例如sheets["zombie1"]
  4. 您甚至可以在for循环中旋转对象并将旋转的对象绘制到工作表上。

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

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