0

我有一个精灵菜单,我正在添加一个按钮来最小化菜单。我正在使用 aSimpleButton()并将按钮添加为菜单的子项,所以menu.addChild(button)我遇到的问题是,当我将鼠标悬停并单击按钮时,没有任何事件被触发。菜单精灵有自己的鼠标悬停事件,并且按钮应该相对于菜单放置,因此成为菜单的子项是有意义的。如何使按钮仍然有效?

提前致谢!

编辑
这是我的代码:

protected const rectangle:Sprite = new Sprite(); 
private const minimizeBtn:SimpleButton = new SimpleButton(new ButtonDisplayState(MINIMIZE_BTN_BG_COLOR, 15, 15), new ButtonDisplayState(0xFF0000, 15, 15), new ButtonDisplayState(0x00FF00, 15, 15), new ButtonDisplayState(0x0FF000, 15, 15)); 
rectangle.addEventListener(MouseEvent.MOUSE_OVER, rectMouseOver);
addChild(rectangle);
rectangle.addChild(minimizeBtn);
4

2 回答 2

1

父精灵(菜单)可能正在吃鼠标事件。尝试在该对象上设置 mouseChildren = true。

于 2012-02-17T23:56:27.523 回答
0

首先,你为什么将你的按钮定义为一个常量?将它定义为一个非常愚蠢的变量,除非你有一个非常好的理由。其次,将您的事件侦听器直接添加到 minimizeBtn,而不是矩形容器(父对象)。

另请注意,虽然文档说按钮的四种状态在构造函数中是可选的,但它们实际上根本不是可选的。该类对构造函数参数非常具体,这将导致类在运行时中断并且无法正常运行(当然没有编译或运行时错误,因为闪存是其中的佼佼者)。

因此,尽管您在这里提供了所有四个构造函数参数,但如果我之前的建议失败,它可能需要修改。有关构造函数的更多 NFO,请参阅以下链接。

http://selfdocumentingcode.blogspot.com/2009/04/flash-simplebutton-and-mouseover-and.html

于 2012-03-11T07:21:29.283 回答