2011-11-22 3 views
1

私は、ムービークリップにサブムービーを追加してサブムービーを追加するフラッシュゲームに取り組んでいます。これにより、アニメーションの異なるムービークリップの階層が作成されますが、その結果、親ムービークリップが無期限に成長し、多くのメモリを消費することになりました。このようなアニメーションを最適化する方法はありますか?ビットマップキャッシュが機能する場合は、ランタイムの前に追加されたすべての子をキャッシュすることができます(たとえば、デザイン時およびSWFの公開前に追加された子ムービークリップ)。
PS私はFlash Air 2.6と協力しています。サブアニメーションがメモリを食べているFlashムービークリップ

答えて

1

Flashは多くのことをすることができますが、無制限のメモリを持たないので、あなた自身が答えを出しています。しかし、あなたのアニメーションはうまく設計されていますが、親ムービークリップが「無期限に成長している」場合はもちろん、すべてがクラッシュするポイントになります。

上記の情報をもとに、私はあなたに一般的な答えを与えることができます。

  • 不特定多数の子供を追加することは不可能ですが、範囲外になった子供を引き続き削除すると、その印象を与えることができます。

  • リピートを避けることでデザインを改善する方法はありますか?

  • Flash IDEで作業するか、FlashBuilderなどの別のIDEを使用していますか?後者には、アプリケーションのメモリ使用量を確認できるプロファイリングツールがあります。

1

パトリックが言ったことに追加するには: ビットマップキャッシュがうまく、あなたがそれを行う方法に応じて、さらに多くのメモリを使用することができます。ただし、同じものが複数存在する場合は、それらのうちの1つだけを作成して、ここに表示されているようにどこでもピクセルを再利用できます。http://flexdiary.blogspot.com/2009/12/riadventure-inspiration.html

オブジェクトプールhttp://blog.joa-ebert.com/2008/05/07/tweening-and-object-pools/を調べることもできます。

しかし、メモリが制御不能になり始めると、私は通常、オブジェクトにリスナーを追加して削除しない(ガベージコレクションできない)ため、メモリリークが発生したと考えています。メモリリークを引き起こす可能性のある他の方法は、辞書を使用してオブジェクトを参照するか、またはclearTimeoutを適切に呼び出さずにsetTimeoutを使用することです。

関連する問題