在Flash MX里,相信大家都会经常用到gotoAndPlay、gotoAndStop、play和stop来影响Flash的播放,比如在Flash网页里按不同的按钮会进入不同的部分。下面我简单的分析一下:
1.先下载我做好的练习文件,如下:文件下载
2.文件goto1.fla共有两个Scene:Scene1,Scene2。文件goto2.fla只有一个Scene1。三个Scene都有action和txt层来分别存放ActionScript和文字提示,第三个Scene多了一个button层放置按钮。三个Scene的txt图层的第一帧、十帧和十五帧都是用来文字提示,大家根据提示就可以知道播放到那里,知道ActionScrip发挥了什么作用。同样在第一帧、十帧和十五帧的action图层上写了不同的ActionScript语句,我先说第十五帧,三个Secne的ActionScript都是“stop();”,这是为了让大家知道Flash在ActionScript影响下的播放是否超过了第十帧,而且可以避免Flash无限的循环。其他部分我会在下面详细介绍的。
3.先测试Scene1。Scene1里,第一帧里面的ActionScript是“gotoAndPlay(10);”,第十帧里是“stop();”。是测试用gotoAndPlay跳到第十帧里播放,是被stop语句停止还是会忽略stop。按Ctrl+Alt+Enter测试Scene1,结果是到第十帧时执行了stop语句,停在了第十帧。
4.上面的第3步,相信大家都不会有什么问题,可能还会觉得我弱智,哈哈。接着测试Scene2就开始有点意思了,在Scene浮动面版里或者在Scene窗口里选择Scene2。
Scene2和Scene1的不同在于,第一帧是gotoAndStop,第十帧是play。那么ActionScript是会停止还是播放呢?按Ctrl+Alt+Enter发现,Flash继续播放到十五帧,也就是说按第十帧的play来继续播放了。通过3、4步我们可以发现,无论前面的ActionScript是怎么样设定的,到了其指定播放的帧后会按该帧上面的ActionScript来决定是否播放。
5.这里是结束部分,也是最有趣的部分。打开gogo2.fla,里面的Scene跟上面两个Scene比有不少不同的地方:第一帧的ActionScript改为stop,让Scene3停止播放;场景里多了两个按钮gotoAndPlay和gotoAndStop,按钮里面包含了与其名称相同的语句,按下都会跳到第十帧;第十帧里的语句是stop。第十五帧则没有改变。按Ctrl+Alt+Enter测试,按下gotoAndPlay和gotoAndStop都会跳到第十帧然后停下来,大家会不会觉得我很无聊呢?呵呵,好戏在后头。
下面我们连续按gotoAndPlay两次,发现在第二次Flash无视第十帧的stop语句继续播放了!为什么会这样呢?根据我自己的分析,第一次按下按钮时,如上面例子goto1.fla中的Scene1,到第十帧时被stop语句影响,停止了播放。而第二次按下,由于已经到了第十帧,stop语句已经被执行过,所以播放的时候就跳过了该语句。就像在goto2.fla第一帧里面也有的那个stop一样,不会发挥作用了。所以,在以后制作Flash的时候,一定要注意这点。如果要保险起见,可以使用另一个按钮的语句,即gotoAndStop,这时无论按多少次都不会播放,而且也可以无须stop语句。