【发布时间】:2015-02-27 11:18:03
【问题描述】:
我有一些事件侦听器,一旦不再需要它们就可以删除。 我遵循了其他一些人的建议,并将 RemoveEventListener 包含在函数本身中,例如:
object1.addEventListener(MouseEvent.MOUSE_DOWN, function StartMove(event:MouseEvent):void
{
mousePoint = new Point(MC.mouseX, MC.mouseY);
objectOffset = new Point(int(mousePoint.x - object1.x), int(mousePoint.y - object1.y));
mousePoint.y -= objectOffset.y;
mousePoint.x -= objectOffset.x;
mousePressed = true;
event.currentTarget.removeEventListener(event.type, StartMove);
});
但这只是创建侦听器,然后在使用一次时将其删除。 事件侦听器函数在更大的函数 (MouseMoves()) 中创建,因为它们使用 MouseMoves() 中的局部变量。 (不确定这是否是合适的方法。) 因此,如果我尝试从外部删除侦听器,他们看不到要删除的函数名称,并且我无法在 MouseMoves() 之外声明函数,因为它们在其中使用变量。
我觉得这是一个糟糕的设计,但我不确定在哪里?
是否有“适当的”更标准的方式来移除事件监听器?
谢谢。
【问题讨论】:
标签: events actionscript listener