1

AS3 アプリ内でガベージ コレクションを実装しています。ある部分では、次のようにループ内でいくつかの表示オブジェクトが作成されます。

for(var i:uint = 0; i <= this._exampleVector.length - 1; i++) 
{
   this._customText = new CustomTextObject(this._exampleVector[i].playlistText),  this._customTextWidth);
   this.addChild(this._customText);

  etc etc

  this._customTextVector.push(this._customText); // used for ref in garbage collection
}

次に、_customTextVector 変数をループしてガベージ コレクションの準備を行います。

for(var i:uint = 0; i <= this._customTextVector.length - 1; i++) 
{
  this.removeChild(this._customTextVector[i]);
  this._customTextVector[i].gcAllObjects();
  **this._customTextVector[i] = null;**
}

_customTextVector 内の _customText を null にしようとすると、これは機能しません。Vector 内のインデックスを null にするだけです。これを行う方法またはガベージコレクションの別の方法に関するアイデアはありますか?

ありがとう

クリス

4

2 に答える 2

0

すべてのインデックスをループした後、フォローすることは可能ですか?

  _customTextVector =null;
于 2012-04-10T13:18:49.610 に答える
0

AS3 ガベージ コレクターでオブジェクトを GC にするには、オブジェクトへのすべての参照 (イベント リスナーを含む) を削除する必要があります。次の GC パスで、オブジェクトのメモリが解放されます。必要なオブジェクトを直接、即座に「null」する方法はありません。

メモリに問題がある場合は、この投稿をご覧ください。

于 2012-04-10T13:29:48.807 に答える