我是否需要在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?
}
如果我确实需要删除它们,我该怎么做?
答案 0 :(得分:2)
Do I need to remove event listeners on AsyncResponder events?
不,你没有。如果您正在创建AsyncResponder并反复使用ot,那么请务必将侦听器留在那里。
但是,在某些情况下,如果您不会一遍又一遍地重复使用该组件;我建议你删除事件监听器,因为这将删除指向asyncResponder的依赖项,这可能允许它被释放以进行垃圾收集。
在Adobe Flex Framework中,“根据需要”添加和删除侦听器非常常见。我们在Flextras日历中使用该方法,例如,在处理效果时。在开始效果之前,我们为'effect end'添加了一些事件监听器。那些侦听器在该效果结束方法中被删除。
更新:
要删除事件侦听器,您将使用与此类似的代码:
asyncResponder.removeEventListener('result' ,UpdatePics_result);
asyncResponder.removeEventListener('fault' ,UpdatePics_fault);