2012-03-08 11 views
0

オブジェクトがActionScript3に現在保持している参照(例:リスナー、子供など)をリストすることができるかどうかは知りませんか?オブジェクトのAS3リストの参照

私はガベージコレクションの準備ができているオブジェクトをクリアしようとしていますが、なんらかの理由でオブジェクトがハングアップしています。

ありがとうございました。

+0

[この質問](http://stackoverflow.com/questions/3405808/how-to-remove-all-event-listeners-in-flex)が役立つかもしれません。 –

+1

これを行う方法がある場合は、最初から注意を払っていない限り、GC用のオブジェクトを準備するのは簡単ではないと思います。 – Marty

+0

私はあなたがインデックスの主なオブジェクトになると思いますremove()関数を追加すると、nullに参照を設定し、配列、サブオブジェクト、子を削除し、イベントリスナーを削除します。私はGCを気にするので、このクラスをインデックスに使用し、リスナーを削除します[https://github.com/turbosqel/as3SupportLib/blob/master/as3SupportLib/src/turbosqel/events/SoftEventDispatcher.as]、各オブジェクトにadd参照とインスタンスを削除して削除するremove関数。 – turbosqel

答えて

2

あなたがフラッシュビルダーを持っている場合は、あなたのアプリをプロファイリングすることで、必要なものがかなり得られるはずです。それ以外の場合は、flash.sampler。* apiを使用して簡単なプロファイラを作成することができます。

+0

あなたの答えをありがとう。私はFlash Proで作業しています。参照をリストアップする特定のサンプラー方法がありますか?私はAPIドキュメントを見てきましたが、適切なものは見当たりません。 – crooksy88

+0

ジョブを完了させる単一のAPIはありません。 apiの概要については、http://gskinner.com/blog/archives/2010/04/the_flash_sampl.htmlをご覧ください。今はコードがありませんが、私が知っていたオブジェクトは、月曜日までに漏れていることがわかりました。 – catholicon

0

すべてのオブジェクトを手動でチェックする以外は方法はありませんが、それは明らかに手数料がかかりません。解決策:コードを書くときにlearn2planを実行してください。どちらのオブジェクトがどのオブジェクトと対話しているのかわからないようにコードを記述している場合は、間違っています。

+2

合意。残念ながら、私は継承されたプロジェクトに取り組んでいます。 – crooksy88

+0

私は、人々が私にこのことについてのdownvotesを私に与えてくれるのはかなり悲しい。それはかなりシンプルです、そして質問をする人さえ私に同意しました。オブジェクトがプログラム内の他のオブジェクトにどのように結びついているのかわからない場合は、特にGCが実行されないようにするためには、プログラミングがあなたのためであるかどうか再考する必要があります。正直なところ、それはどれほど悪いですか。しかし、ドライブバイダウンワードを与え続けてください。私はそれが真実だから答えを取り除くつもりはない。 –