ActionScript 3 事件侦听器
Actionscript 3 EventListener
我是 actionscript 3 的新手,我想知道如何让 EventListener 只工作一次。现在它在每次点击后都有效,但我只需要在第一次点击时让它工作。
单击后,它会在单击的舞台上显示一个球。我需要到达只出现一个球的地步,点击之后什么都不做。
我的代码:
stage.addEventListener(MouseEvent.CLICK, onClick,false,0,true);
function onClick(evt:MouseEvent):void {
var ball:MovieClip = new Ball();
ball.x = stage.mouseX;
ball.y = stage.mouseY;
addChildAt(ball,0);
}
您需要按如下方式调用removeEventListener()
:
stage.addEventListener(MouseEvent.CLICK, onClick,false,0,true);
function onClick(evt:MouseEvent):void {
stage.removeEventListener(MouseEvent.CLICK, onClick);
var ball:MovieClip = new Ball();
ball.x = stage.mouseX;
ball.y = stage.mouseY;
addChildAt(ball,0);
}
一种可能的解决方案是删除 EventListener。
stage.addEventListener(MouseEvent.CLICK, onClick,false,0,true);
function onClick(evt:MouseEvent):void {
stage.removeEventListener(MouseEvent.CLICK, onClick);
var ball:MovieClip = new Ball();
ball.x = stage.mouseX;
ball.y = stage.mouseY;
addChildAt(ball,0);
}
另一个解决方案是一个简单的 bool 变量,以防您需要事件监听器来处理其他事情。
var clickedOnce:Boolean = false;
stage.addEventListener(MouseEvent.CLICK, onClick,false,0,true);
function onClick(evt:MouseEvent):void {
if(!clickedOnce){
clickedOnce = true;
var ball:MovieClip = new Ball();
ball.x = stage.mouseX;
ball.y = stage.mouseY;
addChildAt(ball,0);
}
}
我是 actionscript 3 的新手,我想知道如何让 EventListener 只工作一次。现在它在每次点击后都有效,但我只需要在第一次点击时让它工作。 单击后,它会在单击的舞台上显示一个球。我需要到达只出现一个球的地步,点击之后什么都不做。
我的代码:
stage.addEventListener(MouseEvent.CLICK, onClick,false,0,true);
function onClick(evt:MouseEvent):void {
var ball:MovieClip = new Ball();
ball.x = stage.mouseX;
ball.y = stage.mouseY;
addChildAt(ball,0);
}
您需要按如下方式调用removeEventListener()
:
stage.addEventListener(MouseEvent.CLICK, onClick,false,0,true);
function onClick(evt:MouseEvent):void {
stage.removeEventListener(MouseEvent.CLICK, onClick);
var ball:MovieClip = new Ball();
ball.x = stage.mouseX;
ball.y = stage.mouseY;
addChildAt(ball,0);
}
一种可能的解决方案是删除 EventListener。
stage.addEventListener(MouseEvent.CLICK, onClick,false,0,true);
function onClick(evt:MouseEvent):void {
stage.removeEventListener(MouseEvent.CLICK, onClick);
var ball:MovieClip = new Ball();
ball.x = stage.mouseX;
ball.y = stage.mouseY;
addChildAt(ball,0);
}
另一个解决方案是一个简单的 bool 变量,以防您需要事件监听器来处理其他事情。
var clickedOnce:Boolean = false;
stage.addEventListener(MouseEvent.CLICK, onClick,false,0,true);
function onClick(evt:MouseEvent):void {
if(!clickedOnce){
clickedOnce = true;
var ball:MovieClip = new Ball();
ball.x = stage.mouseX;
ball.y = stage.mouseY;
addChildAt(ball,0);
}
}