这是我之前提出但尚未收到答案的问题的较新版本。
我正在开发一个包含许多动画的移动 AIR 应用程序,测试表明使用位图和 GPU 渲染可以在所有移动模型中提供最佳性能。我从应用程序的艺术家那里收到了正常的矢量动画,并构建了一个系统,该系统在运行时循环这些动画并将内容绘制到位图数据中。
我担心的是循环播放电影剪辑的帧。如果我有这些代码行:
for (var i:uint=1; i<mc.totalFrames+1; i++) {
mc.gotoAndStop(i);
bitmapData.draw(mc);
}
我不能确定框架在绘制之前是否已“构建”,而我对 Android 平板电脑的测试证明了这一点 -有时框架没有被绘制。
这个 mc 显然不在显示列表中(我们不需要渲染到屏幕上)。那么有没有办法在将框架绘制到位图数据之前确保框架已经构建?(并等待 FRAME_CONSTRUCTED、EXIT_FRAME 等。显然很慢且不需要)
有任何想法吗?谢谢萨尔
更多信息以澄清:
这是一本儿童读物。每个页面都有动画。所有这些动画都是我从开发艺术家(而不是用户)收到的 FLA 中时间轴中的矢量动画。每个页面都有我发布到 swf 的 FLA。
我实际上做的是用它们的位图版本替换加载的 SWF 中的矢量动画。在应用程序运行时,在每个新页面上,我加载 swf,浏览其中的所有动画(循环通过内容的子项),并将每个影片剪辑光栅化为位图数据数组。我的自定义“位图影片剪辑”在显示列表上为每个影片剪辑放置一个替换位图,在 ENTER_FRAME 上,我从数组中切换位图的位图数据。这提供了非常高的性能