フラッシュ アプリケーションに問題があります。これは、実行してからしばらくすると、最終的に速度が低下し始めるためです。私のアプリケーションには、addChild() メソッドで複製する必要があるものがあります。アプリケーションの速度低下または遅延の原因は、 removeChild() がメモリから子を削除しないことであると述べているインターネット上の情報を読みました。
子供をメモリから削除する方法はありますか? どんな入力でも大歓迎です。ありがとう。
フラッシュ アプリケーションに問題があります。これは、実行してからしばらくすると、最終的に速度が低下し始めるためです。私のアプリケーションには、addChild() メソッドで複製する必要があるものがあります。アプリケーションの速度低下または遅延の原因は、 removeChild() がメモリから子を削除しないことであると述べているインターネット上の情報を読みました。
子供をメモリから削除する方法はありますか? どんな入力でも大歓迎です。ありがとう。
Grant Skinner による AS3 のリソース管理に関する3 部構成の記事をご覧ください。
新しいオブジェクトを作成してステージに追加し、不要なオブジェクトをステージから削除しているようです。これにより、メモリに不要なオブジェクトがたくさんあるため、速度が低下する可能性があります。フラッシュ AS3 では、ガベージ クリーンアップを完全に GC に頼ることはできません。したがって、最善の方法は、新しいオブジェクトが必要なときはいつでも、最小限のガベージを生成し、未使用のオブジェクトをリサイクルすることです。
たとえば、アプリケーションは一定の時間間隔でステージにいくつかの円を配置し、それらのいくつかを削除し続けます。したがって、この種のリソースにはリソース プールを実装します。
public class ResourcePool {
static function getCircle(prop:Object):Circle {
//check if you already have some circle objects
//if yes pick one apply the prop and return
// else create a new circle with specified prop and return
}
static function recycle(circle:Circle):void {
//add it to available resource array
}
}
円オブジェクトが必要な場合は、ResourcePool にそれを要求します。 var c:Circle = ResourcePool.getCircle(someProperty);
また、円を削除するときはいつでも、後で使用できるように適切にリサイクルしてください。//remove circle1 object
ResourcePool.recycle(circle1);