2011-07-29 152 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

相关问题