Actionscript 3 clearInterval上的Flash AS3回调函数
我是Flash ActionScript 3.0的新手。我需要setInterval上的回调函数,我喜欢 有一个篮子叫自己的老鼠。而且它还附有鼠标Actionscript 3 clearInterval上的Flash AS3回调函数,actionscript-3,flash,Actionscript 3,Flash,我是Flash ActionScript 3.0的新手。我需要setInterval上的回调函数,我喜欢 有一个篮子叫自己的老鼠。而且它还附有鼠标 ownmouse.addEventListener(Event.ENTER_FRAME,fun); function fun(Eve:Event) { ownmouse.startDrag(true); Mouse.hide(); } 使用setInterval从flash文档顶部落下球 var myInterval = setIn
ownmouse.addEventListener(Event.ENTER_FRAME,fun);
function fun(Eve:Event) {
ownmouse.startDrag(true);
Mouse.hide();
}
使用setInterval从flash文档顶部落下球
var myInterval = setInterval(fallBall,1);
ownmouse.addEventListener(Event.ENTER_FRAME,controlCursor);
function controlCursor(MouseMove:Event) {
var xaxis:int = mouseX;
var yaxis:int = mouseY;
var ballXaxis = ball.x;
var ballYaxis = ball.y;
if((ballXaxis+10)>=xaxis && (ballXaxis-10)<=xaxis && (ballYaxis)>=yaxis && (ballYaxis-10)<=yaxis) {
clearInterval(myInterval, function() {
myBall.gotoAndPlay(10)
});
}
if(yaxis>620) {
ownmouse.stopDrag();
ownmouse.y = 620;
Mouse.show();
} else if(yaxis<420) {
ownmouse.stopDrag();
ownmouse.y = 430;
Mouse.show();
}
}
在AS3中是否可以使用回调函数?如果没有,如何解决这个问题
我将非常感谢您的帮助:)clearInterval破坏Interval。 setInterval创建它并返回一个数字,您可以将该数字放入clearInterval以销毁它 此外,setTimeout只执行一次 您还需要指定函数之后的时间(以毫秒为单位)
我始终建议您使用Timer类,因为您可以轻松地控制和读取它。clearInterval没有回调。如果满足销毁方法的要求,您可以自己触发该方法。 根据你的需要,也许定时器是更好的选择
var myTimer:Timer = new timer(1000,8);// set amout
myTimer.addEventListener(TimerEvent.TIMER, timerListener);
myTimer.addEventListener(TimeEvent.TIMER_COMPLETE, timerDone);
function timerListener (e:TimerEvent):void{
trace("Timer is Triggered");
}
function timerDone(e:TimerEvent):void{
trace("Timer finishing!");
}
myTimer.start();
编辑:
就像我说的b4,当需求得到满足时,您可以触发您自己的方法。在您使用更新源的情况下:
if((ballXaxis+10)>=xaxis && (ballXaxis-10)<=xaxis && (ballYaxis)>=yaxis && (ballYaxis-10)<=yaxis) {
clearInterval(myInterval);
intervalDestroyed();
}
function intervalDestroyed():void
{
trace("Intervall has been cleared");
myBall.gotoAndPlay(10);
}
如果((ballXaxis+10)>=xaxis&&(ballXaxis-10)=yaxis&(ballYaxis-10)=xaxis&(ballXaxis-10)=yaxis&(ballXaxis-10)=yaxis&(ballYaxis-10)实际上,我在销毁间隔后需要回调函数。所以在销毁间隔后设置一个setTimeout。非常感谢您的回答。我在发布问题之前做过:clearInterval(myInterval)我的球,我的球,我的球,我的球,我的球,我的球仅在clearInterval之后移动鼠标后才工作。因此,现在您了解了我的问题。我将非常感谢您的完整解决方案。您应该首先使用鼠标移动事件而不是enterframe。您是否尝试过我的intervalDestroyed方法?
if((ballXaxis+10)>=xaxis && (ballXaxis-10)<=xaxis && (ballYaxis)>=yaxis && (ballYaxis-10)<=yaxis) {
clearInterval(myInterval);
intervalDestroyed();
}
function intervalDestroyed():void
{
trace("Intervall has been cleared");
myBall.gotoAndPlay(10);
}
if((ballXaxis+10)>=xaxis && (ballXaxis-10)<=xaxis && (ballYaxis)>=yaxis && (ballYaxis-10)<=yaxis) {
clearInterval(myInterval);
myBall.gotoAndPlay(10);
}