我正在构建一个按钮面板,这些按钮包含在 Canvas 容器中。为此,我创建了一个MyButton
类,它是 UIComponent 的子类。MyButton 类还有 2 个其他子类:MyRadioButton
和MyMenuButton
,它们在MouseEvent.MOUSE_DOWN
. MyMenuButton
创建并显示一个菜单,我从 XML 构建它并且构建正常。
我在超类中添加侦听器,如下所示:
this.addEventListener(MouseEvent.CLICK, handleClick);
this.addEventListener(MouseEvent.MOUSE_DOWN, handleMouse);
this.addEventListener(MouseEvent.MOUSE_UP, handleMouse);
它是在创建阶段完成的。
在我的子类中,我覆盖了handleMouse
处理程序。
override protected handleMouse(event:MouseEvent) : void
{
// subclass specific handling
}
这些按钮对象被添加到画布容器中,如下所示:
在课堂上MyButtonsContainer.as
:
this.rowChildren.addChild(button);
这些按钮完美地绘制到位。问题是行为:事件没有到达超类的 handleClick 处理程序。这就是问题所在——为什么会这样?提前致谢
编辑:似乎 MOUSE_DOWN 和 MOUSE_UP 会干扰 CLICK 事件。当我删除他们的侦听器时,我可以单击处理程序。如何使他们生活在一起?