我正在创建一个动作脚本自定义itemRenderer,我有:
override protected function createChildren():void {
super.createChildren();
addEventListener(MouseEvent.CLICK, clicked,false,0,true);
}
当我完成itemRenderer时,我在哪里放置removeEventListener
?
答案 0 :(得分:1)
override protected function createChildren():void {
super.createChildren();
addEventListener(Event.ADDED_TO_STAGE, activateDeactivate, false, 0, true);
//will be removed by GC due to weak reference
}
private function activateDeactivate( evt:Event ):void
{
switch( evt.type )
{
case Event.ADDED_TO_STAGE:
addEventListeners();
break;
case Event.REMOVED_FROM_STAGE:
removeEventListeners();
break;
}
}
protected function addEventListeners( ):void
{
addEventListener(Event.REMOVED_FROM_STAGE, activateDeactivate, false, 0, true);
//add all other event listeners here or override this method in your class
}
protected function removeEventListeners( ):void
{
removeEventListener(Event.REMOVED_FROM_STAGE, activateDeactivate);
//Remove all other event listeners here or override this method in your class
}
答案 1 :(得分:0)
您可以在调度Event.REMOVED
时删除事件侦听器。但首先,您应该添加一个事件监听器来接收它。