操作脚本3,Flash Cs6如何创建时间延迟?

时间:2012-12-02 16:20:29

标签: actionscript-3 time delay flash-cs6

我正在制作一个网站,我希望在16页之间延迟一段时间,我已经这样做了:

var myDelay:Timer = new Timer(700,1);

myDelay.addEventListener(TimerEvent.TIMER, showMessage);
myDelay.start();

function showMessage(event:TimerEvent):void{
    gotoAndPlay("anim1");
}
stop();

然后在页面动画1中我有:

stop();

b4.addEventListener(MouseEvent.ROLL_OVER, b4_over);
b4.addEventListener(MouseEvent.CLICK, b4_clicked);
ma.addEventListener(MouseEvent.ROLL_OVER, ma_over);
ma.addEventListener(MouseEvent.CLICK, ma_clicked);
pt1.addEventListener(MouseEvent.MOUSE_OVER, pt1_over);
en.addEventListener(MouseEvent.MOUSE_OVER, en_over);

var myDelay2:Timer = new Timer(700,1);
myDelay2.addEventListener(TimerEvent.TIMER, showMessage2);
myDelay2.start();

function showMessage2(event:TimerEvent):void{
   gotoAndPlay("anim2");
}
stop();

这一直持续到“anim19”页面。问题是,用这个我的点击按钮不能很好地工作(我点击,然后我转到另一个页面然后突然回到主页面)并且ROLL_OVER效果时间变成了一个小怪...你能说出来吗?我的代码有什么问题?

1 个答案:

答案 0 :(得分:1)

我弄清楚出了什么问题,显然我是在开始时间,而不是在这里完成它:

myDelay.start();

所以每次延迟都必须有停止事件,所以我添加了函数b4_over,b4_clicked,ma_over,ma_clicked,pt1_over,en_over)

像这样:

function b4_over(event:MouseEvent):void
{
    this.gotoAndStop("page2");
    myDelay.stop();
    myDelay.stop(); 
    myDelay2.stop();
    myDelay3.stop();
    myDelay4.stop();
    myDelay5.stop();
    myDelay6.stop();
    myDelay7.stop();
    myDelay9.stop();
    myDelay10.stop();
    myDelay11.stop();
    myDelay12.stop();
    myDelay13.stop();
    myDelay14.stop();
    myDelay15.stop();
    myDelay16.stop();
    myDelay17.stop();
    myDelay18.stop();
    myDelay19.stop();   
}

一切都开始好起来了。