私は、何千ものベクトルを継続的に描画する EaselJS プログラムに取り組んでいます。言うまでもなく、しばらくするとパフォーマンスが低下します。Flash でこれを解決するには、ベクターの背後にビットマップを作成し、定期的にベクターをそのビットマップに描画して、表示リストから削除します。
すべてのピースが整っているように見えますが、EaselJS でこれを行うのに問題があります。空の Bitmap() を作成し、Container() の内容をそこに描画するにはどうすればよいですか?
私は、何千ものベクトルを継続的に描画する EaselJS プログラムに取り組んでいます。言うまでもなく、しばらくするとパフォーマンスが低下します。Flash でこれを解決するには、ベクターの背後にビットマップを作成し、定期的にベクターをそのビットマップに描画して、表示リストから削除します。
すべてのピースが整っているように見えますが、EaselJS でこれを行うのに問題があります。空の Bitmap() を作成し、Container() の内容をそこに描画するにはどうすればよいですか?
すべてをコンテナに入れてキャッシュするだけでよいと思います。
var vectorContainer=new Container;
for (var i = 0;i<numVectors;i++){
var vector=new Shape();
//draw whatever vector you want to vector.graphics
vectorContainer.addChild(vector);
}
vectorContainer.cache(someX,someY,someW,someH);
ただし、現在のリリースにはバグがあり、コンテナを適切にキャッシュしないため、最新のタグなしビルドを入手してください。
また、「snapToPixel = true」をベクターに追加しています。これは、一部のブラウザーで役立つはずだと読んだためです。したがって、上記のコード例では、キャッシュを行う最後の行の直前に次の行を追加します。
vectorContainer.snapToPixel = true;
このキャッシュのデモとピクセル設定へのスナップをチェックして、実際の例を確認してください。
私の特定のブラウザの設定では、ピクセルへのスナップは実際にはパフォーマンスを変更しませんが、ドキュメントを読むと、そうすべきだと思われます。