2016-11-10 5 views
0

私はStageに複数のSpriteMovieClipオブジェクトが表示されています。すべてのスプライトは3MB png SpriteSheetを使用しています。
ある時点で、それを使用する異なるContainerを表示するために別のSpriteSheetをロードします。
試行錯誤の過程で、Containervisibleプロパティを設定するだけでは不十分だと私はremoveChild()cache()を使用しています。両方とも適切なフレームレートを助けました。
問題は、コンテナとスプライトシートをさらに読み込むと、フレームレートが非常に低くなることがあります。
使用済みのリソースを解放するために必要なその他の手順はありますか?
よくある落とし穴は何ですか?は、createjsで使用されたリソースを解放します

答えて

1

はい、初めてcreateJSでアプリケーションを作成したとき、私はかなりのパフォーマンス上の問題を抱えていました。の場合、フレームレートがそれより低い場合は、常に更新されず、パフォーマンスを消費しないため、作成されていないオブジェクトはすべてBitmapからキャッシュするようにしてください。たとえば、シェイプタイプのオブジェクトは常に更新され、非常にパフォーマンスが向上します。

あなたは、アニメーションコンテンツを持っていないオブジェクトに対して次のパターンを使用する必要があります。

var bounds = displayObject.nominalBounds; 
displayObject.cache(bounds.x, bounds.y, bounds.width, bounds.height); 

これは、オブジェクトをキャッシュし、それがほとんどないパフォーマンスを消費行います。 また、それを取り除く時期が来たときは、

//if it was added as a child of a container 
displayObject.parent.removeChild(displayObject); 
//if it was cached prior 
displayObject.uncache(); 
//when you don't need it anymore, for garbage collection 
displayObject = null; 
のようなものを使用して、資産を置き換えてください。
関連する問題