AS3跳转问题。
btn1.addEventListener(MouseEvent.CLICK,btn1click);
function btn1click(event:MouseEvent)
{
num++;
btn1.x = 1000;//把按钮移出,防止再次点击
}
btn2.addEventListener(MouseEvent.CLICK,btn2click);
function btn2click(event:MouseEvent)
{
num++;
btn2.x = 1000;//把按钮移出,防止再次点击
}
btn3.addEventListener(MouseEvent.CLICK,btn3click);
function btn3click(event:MouseEvent)
{
num++;
btn3.x = 1000;//把按钮移出,防止再次点击
}
btn4.addEventListener(MouseEvent.CLICK,btn4click);
function btn4click(event:MouseEvent)
{
num++;
btn4.x = 1000;//把按钮移出,防止再次点击
}
btn5.addEventListener(MouseEvent.CLICK,btn5click);
function btn5click(event:MouseEvent)
{
num++;
btn5.x = 1000;//把按钮移出,防止再次点击
}
setInterval(checkBtn,1000);
function checkBtn()
{
if (num==5)
{
gotoAndStop(1700);
}
}
跳到1700帧后出问题了,1700到1720之间有一段补间动画,但是跳到1700后补间播放了一点又循环了,就是播放一点又回到1700帧播放,循环。
最后是gotoAndPlay不是Stop 展开
最后这个setInterval(checkBtn,1000)的问题
setInterval会每间隔一定时间调用相应的函数(这里是每隔1秒,调用checkBtn)
当num=5时会跳转到1700帧开始播放,但是你并没有移除这个setInterval,所以他仍然会间隔1秒调用一次checkBtn函数。。。。这就是你出现这个问题的原因,改成如下代码
var timer:* = setInterval(checkBtn,1000);
function checkBtn()
{
if (num==5)
{
gotoAndStop(1700);
clearInterval (timer) ;
}
}
或者用Timer类,如下
var timer:Timer = new Timer(1000);
timer.addEventListener(TimerEvent.TIMER, checkBtn);
timer.start();
function checkBtn()
{
if (num==5)
{
gotoAndStop(1700);
timer.stop();
timer.removeEventListener(TimerEvent.TIMER, checkBtn);
timer = null;
}
}
建议使用这种(Timer类)方法,setInterval和setTimeout尽量不要使用,希望对你有所帮助。。。。不明白,请留言!
2023-07-25 广告