AS3 - Sprite内部的SimpleButton

时间:2012-02-17 23:45:13

标签: actionscript-3 sprite simplebutton

我有一个精灵菜单,我正在添加一个按钮,以便最小化菜单。我正在使用SimpleButton()并且我添加了按钮作为菜单的子项,因此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);

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

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

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

相关问题