0

複雑なアニメーションをベクターからビットマップに変換しています。アニメーションがメイン タイムラインにある場合、アニメーションをビットマップに変換するのは簡単です。ただし、アニメーション内にアニメーションがあると、すべての再生ヘッドを再帰的に移動する必要があるため、すべてが非常に面倒になります...

これを達成する別の方法はありますか?たとえば、MovieClip のplayメソッドを実行すると、すべてのアニメーションは正常に動作しますが、遅すぎます (アプリケーションで各フレームごとに 1 フレームしか変換できません)。

4

1 に答える 1

0

パフォーマンスを節約するために、フレームごとにムービークリップをラスタライズする必要はないと思います。それは単に何もスピードアップすることはできません。これについて考えてみてください。Flashレンダラーはすでにムービークリップをラスターイメージに変換しているので、画面に配置できます。なぜ2回行うのでしょうか。

本当に必要なのは、レンダラーがすでに実行しているラスター化をキャッシュする方法だと思います。その場合、それは非常に簡単です。

var mc:MovieClip = new MovieClip();
mc.chacheAsBitmap = true;

プロパティはDisplayObjectで定義されています。FlashIDEでもこれを行うことができます。これは、 [プロパティ]>[表示]の下のチェックボックスです。

最後に、これをいつ使用するかについての注意:ムービークリップがフレームごとに変更される場合、レンダラーはフレームごとにラスター化する必要があるため、ビットマップとしてキャッシュしてもパフォーマンスは向上しません(変更後)。ただし、ムービークリップが連続する多くのフレームで同じになる場合は、ラスタライズプロセスを回避するために、先に進んでキャッシュします。

于 2011-12-23T12:39:13.900 に答える