0

我想减少我的代码,所以这里有一个问题:如果我有 10 个事件侦听器并且在不同的情况下我必须添加或删除它们,有没有办法将所有“addEventListener”放在一个函数中,将“removeEventListener”放在另一个函数中和键入“add/removeEventListenerFuction”而不是十次 10 个事件侦听器。任何答案都会有所帮助。现在谢谢。

4

1 回答 1

0

如果您知道事件类型并将事件处理函数存储在数组中,则应该可以在循环中调用 add/removeEventListener。

var events:Array = [{"type":MouseEvent.CLICK,"handler":func1},
    {"type":MouseEvent.MOUSE_DOWN,"handler":func2},
    {"type":MouseEvent.MOUSE_UP,"handler":func3},
    {"type":MouseEvent.MOUSE_OVER,"handler":func4}];

for(var i:int=0; i<events.length; i++) {

    stage.addEventListener(events[i].type,events[i].handler);
    // to remove
    // stage.removeEventListener(events[i].type,events[i].handler);
}

我不明白为什么这会有用,也许如果您尝试解释您正在尝试做什么并显示一些代码,我可以提供更多帮助。

于 2012-09-16T02:31:39.663 回答