Flex:我是否需要删除AsyncResponder上的事件处理程序?如果是这样,怎么样?

时间:2011-07-29 23:37:15

标签: 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?
    }

如果我确实需要删除它们,我该怎么做?

1 个答案:

答案 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);