在以前的日子里,我一直认为,gotoAndPlay结合stop()的功能等于gotoAndStop功能,先前我的yellow也告诉我还是用后者好,为什么?当时我也没有问?还是一直两者等同,但是今天我在回答一个朋友在本站[闪客银行]www.flashbank.cn的问题的时候,发现的二者的不同!(有的点献丑了,对很多人来说,我在是在虚张声势了,我想还有一些人不知道二者之间的区别...),下面我举个例子,对比一下!
假设你想实现一个这样的效果:在FLASH中,按F1键,播放第二帧。按F2键,播放第三帧?
做法一:
我在主场景中做了一个mc,进去mc的内部编辑,在第1帧,什么也没有,在第2帧写上F2,第3帧写上F3,新建立一个层,在第1,2,3帧都写上stop();
回到主场景,对这个mc的实例名写上:effect
新建立一层写上as:
myListener = new Object();
myListener.onKeyUp = function ()
{
if (Key.getCode() == 113)
{
effect.gotoAndPlay(2);
}
if (Key.getCode() == 114)
{
effect.gotoAndPlay(3);
}
};
Key.addListener(myListener); (备注:F1,F2,F3的键控代码分别是:112,113,114)这些都在FLASH帮助---动作脚本参考---KEY就能找到
你测试一下,你按F2(要在Flash中测试会出现输出面版,你可以单独测试),这个时候是出现F2,但是你再点的键盘上的F2,就出现了F3
这个问题就是他们二者之间的区别,你把代码中的gotoAndPlay换gotoAndStop,就不会有这么的问题?
原因是:当你第一次点键盘的时候,effect是跑到第2帧,也是带有F2的的帧,但是他同时也执行过了你的在第2帧的stop();
所以当你在点键盘的F2时,执行的还是gotoAndPlay()这个命令,所有又显示了F3!
我就做这些解释了!不知道解释是不是清楚,有什么疑问就给我给留言了!