Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 动作脚本3,Flash Cs6如何创建时间延迟?_Actionscript 3_Time_Delay_Flash Cs6 - Fatal编程技术网

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

Actionscript 3 动作脚本3,Flash Cs6如何创建时间延迟?,actionscript-3,time,delay,flash-cs6,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.

我正在制作一个网站,我想在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();

这一直持续到第19页。问题是,我的点击按钮不能很好地工作(我点击,然后我转到另一个页面,突然又回到主页),随着滚动效果的出现,时间变得有点奇怪。。。你能告诉我我的代码出了什么问题吗?

我找出了问题所在,特别是我正在开始计时,而不是在这里完成计时:

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();   
}

一切都开始顺利进行。

我发现问题出在哪里,很可能我是在开始时间,而不是在这里结束时间:

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();   
}

一切都很顺利。

我强烈建议您研究Greensock框架。它有一个可编程的时间线库,允许您通过几行简单的代码控制几乎任何事情(前提是您已正确设置了所有内容!)。此外,它附带的tween库具有方便的延迟和内置的未完成函数,因此您可以对所有动画和变量计时,引用其他函数等等。。。我强烈建议研究Greensock框架。它有一个可编程的时间线库,允许您通过几行简单的代码控制几乎任何事情(前提是您已正确设置了所有内容!)。此外,它附带的tween库具有方便的延迟和内置的未完成函数,因此您可以对所有动画和变量计时,引用其他函数等等。。。