我正在创建一个使用八哥层(游戏本身)和包含几个弹出窗口和类似东西的经典显示列表的游戏。
我有一件事困扰我:如果在 displayList-elements 上生成 MouseEvents,它们总是会通过八哥层并产生 TouchEvents 等,这很烦人。
我想知道有一些通用(且易于使用)的方法来处理它。
一种可能性是在所有 displayList-Elements 上监听以下事件:
interfaceElement.addEventListener(MouseEvent.MOUSE_MOVE, stopPropagationHandler);
interfaceElement.addEventListener(MouseEvent.MOUSE_DOWN, stopPropagationHandler);
interfaceElement.addEventListener(MouseEvent.MOUSE_UP, stopPropagationHandler);
private function stopPropagationHandler(e:MouseEvent):void {
e.stopPropagation();
}
但这对我来说看起来很讨厌。即使我这样做了,我还有一个问题:如果一个starling-element低于该display-list-element,并且如果它有一个TouchEvent.TOUCH用于翻转行为>>翻转外观将不会被删除如果您将鼠标悬停在显示列表元素上,则来自八哥。
我还考虑在每个显示列表元素后面放置一个虚拟八角星元素,......以停止事件......但是对于这样一个“简单”的任务来说,这一切听起来有点“过于复杂”。还是我错过了什么?
一个提示将不胜感激。谢谢。