2011-07-29 13 views
1

AsyncResponderイベントでイベントリスナーを削除する必要がありますか?フレックス:AsyncResponderでイベントハンドラを削除する必要がありますか?もしそうなら、どうですか?

すなわち

public function DeleteItem():void 
    { 
     var asyncResponse:AsyncResponder = new AsyncResponder(DeleteItem_Result, DeleteItem_Fail); 
     _myService.DeleteWorkout("test", asyncResponse); 
    } 

    private function DeleteItem_Result(event:Event):void 
    { 
     //If I do need to remove them, how do i remove the async responder event listeners? 
    } 

私はそれらを削除する必要がある場合、私はそれをどのように行うのですか?

答えて

2
Do I need to remove event listeners on AsyncResponder events? 

いいえ、ありません。 AsyncResponderを作成していて何度も何度も使用している場合は、忘れずにリスナーをそこに残しておきます。

しかし、場合によっては、コンポーネントを何度も繰り返し使用しないでください。イベントリスナーを削除することをお勧めします。これは、asyncResponderを指す依存関係を削除し、適切な場合にガベージコレクションが解放されるようにするためです。

Adob​​e Flexフレームワークでは、「必要に応じて」リスナーを追加および削除するのはかなり一般的です。たとえば、エフェクトを扱うときは、Flextrasカレンダーのアプローチを使用します。エフェクトを開始する前に、「エフェクトエンド」のイベントリスナーをいくつか追加します。これらのリスナーは、そのエフェクト終了メソッドで削除されます。


更新:どのようにあなたがイベントを削除するにはそう

asyncResponder.removeEventListener('result' ,UpdatePics_result); 
asyncResponder.removeEventListener('fault' ,UpdatePics_fault); 
+0

イベントリスナーを削除するには、次のようなコードを使用するのでしょうか?通常、イベントタイプとイベントメソッドを指定しますが、この場合はイベントメソッドしかありません。 – Nate

+0

@Nateイベントを削除するには、イベントタイプとイベントメソッドの両方が必要です。この方法に基づいてイベントを自動的に把握する方法はわかりません。 – JeffryHouser

+0

私の質問にはどのようにコードを記述しますか?それは私の質問の要点ですが、私はasyncresponderでイベントを削除する方法を知らない。 – Nate

関連する問題