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

问题描述

| 我已经开发了一个跨平台的AIR应用程序,该应用程序由于无法设置动画/使用矢量图形而不是位图资源而在移动设备上的性能严重下降。在适当的时候和地点,使用cacheAsBitmapMatrix / cacheAsBitmap会更好,但仍不及使用位图资源快。 我曾尝试在运行时将矢量图形bitmapData.draw()转换为Bitmap对象,并对其进行动画处理,但是这样做的效果与仅将矢量图形缓存为大约和(甚至可能完全相同)一样。位图。 Flash Professional 5.5 UI现在可以将矢量图形转换为位图资源,但是是否可以在运行时执行此操作?是否有可能有一个实际的Rasterize()例程在运行时将以编程方式绘制的矢量图形甚至是可编辑文本转换为位图,以获得最佳动画效果,尤其是在移动设备上?     

解决方法

当您说尝试对位图进行动画处理时,我希望您不是要旋转/调整位图的大小-因为这是一个缓慢的过程。 也许有一个引擎,可以在您的游戏加载时根据MovieClip中的帧为您创建一个精灵表(如果有动画的话)。然后这些可以由“ 0”引用。 这将简单地: 创建一个BitmapData对象。 将MovieClips时间轴的每一帧绘制到BitmapData上,就像手动使用精灵表一样。 将BitmapData存储到关联数组中,以便以后方便访问,例如
sheets[\"zombie1\"]
您甚至可以在for循环中旋转对象,然后将旋转后的对象绘制到图纸上。 这样,您的
SheetObject
就可以拥有一些方法来加载先前定义的图纸并将其显示出来。 这一切都在正确的轨道上吗?