2

IEventDispatcherを実装するオブジェクトが実際に何かをディスパッチするかどうかを調べたいと思います。dispatchEvent()可能なすべての種類のイベントをリッスンすることはできません。また、オブジェクトの基本的な機能を追跡するためにサブクラスのメソッドをオーバーライドできないようです-イベントがディスパッチされ、リスナーがトリガーされますが、オーバーライドメソッドは呼び出されません. では、未知のイベントがディスパッチされたかどうかを確認し、少なくともそのタイプを取得するにはどうすればよいでしょうか? 問題の特定のオブジェクトはTextFieldです。使用可能な方法でテキストを変更しようとする試みを追跡し、変更に反応したいからです。これがどこから来たのかという質問。

4

1 に答える 1

0

TextField は文書化されたクラスであり、実際にはディスパッチできるすべてのイベントのリストがあるため、それらすべてをリッスンできます(dispatchEventのオーバーライドに関する詳細情報は提供できませんが、動作するはずですが、テストしたことはありません) .

ただし、テキストの変更を追跡するだけの場合は、次の 2 つの解決策が有効です。

  • TextField クラスをオーバーライドして代わりにインスタンス化できる場合は、テキスト セッターをオーバーライドできますoverride public function set text(text:String):void

  • もう 1 つの解決策は、イベント リスナーを配置してEvent.ENTER_FRAME、TextField のテキスト プロパティが変更されたかどうかを確認することです。これはより残忍ですが、TextField を自分で作成しない場合には機能します。

于 2013-08-13T13:52:25.377 に答える