【发布时间】:2010-10-29 15:13:59
【问题描述】:
我有一个用作按钮的影片剪辑。随机点击后,按钮停止工作。换句话说,当鼠标悬停在按钮上时,鼠标将变成一只手,但没有注册点击以触发该功能。我什至点击了它 40 次,它会工作,但突然,砰!,它停止工作。下面是添加 btn、监听器、将其动画到屏幕中并添加文本的函数。
function makeButton():void{
addChild(myBtn);
myBtn.mouseChildren=false;
myBtn.buttonMode=true;
myBtn.x=(stage.stageWidth/2)-(myBtn.width/2);
myBtn.y=-300;
myBtn.addEventListener(MouseEvent.MOUSE_DOWN, btnClicked, false, 0, true);
myBtn.btn_text.text="The string goes here";
TweenLite.to(myBtn, 0.5,{x:(stage.stageWidth/2)-(myBtn.width/2),y:(stage.stageHeight/2)-(myBtn.height/2)});
}
然后是在屏幕外为按钮设置动画的函数:
function btnClicked(e:MouseEvent):void{
myBtn.removeEventListener(MouseEvent.MOUSE_DOWN, btnClicked);
TweenLite.to(myBtn, 0.5,{x:(stage.stageWidth/2)-(myBtn.width/2),y:-300});
}
奇怪的是,在添加事件之后,我在最后的“makeButton()”中添加了一个跟踪(“添加了侦听器”)。它每次都进行跟踪,即使在按钮停止工作的时间也是如此。所以我只能假设添加侦听器没有错误。但是为什么它不起作用呢?
我被难住了。我认为这可能是一个事件传播问题。换句话说,监听器被添加到目标(myBtn),但不知何故它捕获或冒泡是错误的,但是......那为什么它会起作用呢?还有这么多点击?
真相就在那里。或者也许在这里,您的见解将不胜感激。
【问题讨论】:
标签: actionscript-3 button event-handling mouseevent