2011-07-29 150 views
1

我是否需要刪除AsyncResponder事件上的事件偵聽器?Flex:我需要刪除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並重復使用ot,那麼請儘量將偵聽器留在那裏。

但是,在某些情況下,如果您不會一遍又一遍地重複使用該組件;我建議你刪除事件偵聽器,因爲這將刪除指向asyncResponder的依賴項,這可能允許它適當地被釋放以進行垃圾回收。

在Adobe Flex Framework中,根據需要添加和刪除偵聽器很常見。例如,在處理效果時,我們在Flextras日曆中使用該方法。在開始效果之前,我們爲'效果結束'添加一些事件偵聽器。那些聽衆在該效果最終方法中被刪除。


更新:

要刪除事件監聽器,你會使用類似下面的代碼:

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

那麼,你如何刪除事件?通常你會指定事件類型和事件方法,但在這種情況下我只有事件方法。 – Nate

+0

@Nate您需要事件類型和事件方法來刪除事件。我不知道有一種方法可以根據方法自動找出事件。 – JeffryHouser

+0

你會如何處理我的問題中的代碼?這是我的問題的關鍵,我不知道如何刪除異步響應器上的事件 – Nate

相關問題