很抱歉,如果这是一个新手问题,但是:我如何在文档类之外使用鼠标事件侦听器。我有以下简化的文档类:
public class Main extends Sprite
{
public var realMain:State1 = new State1();
public function Main():void
{
addChild(realMain);
//stage.addEventListener(MouseEvent.CLICK, handleClick);
}
/*
*private function handleClick(e:MouseEvent):void
*{
* trace("Main");
*}
*/
}
我希望能够在此类中使用相同的stage.addEventListener功能:
public class State1 extends Sprite
{
public function State1()
{
addEventListener(MouseEvent.CLICK, handleClick);
}
private function handleClick(e:MouseEvent):void
{
trace("State1");
}
}
然而,这在当前状态下不起作用;不输出“State1”。我已经看到了对Event.ADDED_TO_STAGE事件的使用的引用,但我不确定这是否是我需要做的,或者如何使用它。再说一遍,如果之前已经回答过,我很抱歉,我之前可能已经看过问题和答案了,但我还不太了解as3中我的问题的答案是什么。
答案 0 :(得分:2)
您的State1
为空,因此无法播放任何鼠标事件。尝试在那里画一些东西,看看它是如何工作的。
public function State1()
{
var g:Graphics = graphics;
g.beginFill(0);
g.drawRect(0, 0, 200, 200);
g.endFill();
addEventListener(MouseEvent.CLICK, handleClick);
}
如果您只想要一个空白对象,那么只需在那里绘制一个透明矩形(将0
作为第二个参数传递给beginFill()
)。