这可能更像是一个主观问题,但通常最佳做法是为每个事件类型添加一个专用方法,以便添加事件监听器吗?
如:
myButton.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
myButton.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
//Somewhere else in the code...
private function onMouseOver(e:MouseEvent):void {
this.mouseIsOverButton = true;
}
private function onMouseOut(e:MouseEvent):void {
this.mouseIsOverButton = false;
}
或者,一个事件监听器回调是否可以简单地重用于常见的Event
类型?
像这样:
myButton.addEventListener(MouseEvent.MOUSE_OVER, onMouseHandler);
myButton.addEventListener(MouseEvent.MOUSE_OUT, onMouseHandler);
//Somewhere else in the code...
private function onMouseHandler(e:MouseEvent):void {
this.mouseIsOverButton = e.type==MouseEvent.MOUSE_OVER;
}
如果您有MouseEvent.MOUSE_UP
,MouseEvent.MOUSE_DOWN
和其他相关MouseEvents
事件监听器需要关注,您甚至可以设置switch
语句来处理所有各种事件MouseEvent
种类型。
我想知道,如果有经验的开发人员会反对这种在多个Event
类型中共享相同方法的方式吗?
答案 0 :(得分:4)
我认为这取决于你有多少事件,以及它们的效果有多相似。如果两种事件类型在语义上相似(例如MOUSE_DOWN
和MOUSE_CLICK
)并且它们的效果相似(例如按下按钮),那么您可以捆绑它们。
如果事件的影响太大(我说的代码少于80%),我建议反对它,然后只编写多个处理程序并将常用功能分组到一个单独的子程序中。