在这行代码:
if (MovieClip(root).Animacion.currentFrame==500){
MovieClip(root).Animacion.gotoAndPlay(1);
MovieClip(root).Personaje.gotoAndPlay(1);
MovieClip(root).Personaje.Guy.gotoAndPlay(1);
}
您试图访问一个名为Animacion变量,另一个变量名为Personaje,里面有另一个变量名为Guy。确保您在Flash舞台上的影片剪辑的实例的名称都是这样命名的,图片中显示的是符号属性选项卡中的类和符号名称,而不是实例名称。要设置实例名称,请在舞台上选择您的MovieClip(将出现蓝色轮廓),然后查看属性选项卡。
另外,变量名通常是小写字母,骆驼大小写(大写的每个单词的第一个字母)是为了便于阅读而保留给Class名称的。
在这一行:
//Loop animation.
addEventListener(Event.ENTER_FRAME, function (Reiniciar) {
要创建并侦听到进入帧事件匿名函数。我想你想给你的函数命名为“Reiniciar”,但括号之间的内容是函数获取的Event参数的名称,而不是函数名称。
为您的代码的首选语法是:
import flash.events.Event;
//add event handler
addEventListener(Event.ENTER_FRAME, reiniciar);
//loop function
function reiniciar(e:Event):void
{
if (MovieClip(root).animacion.currentFrame==500)
{
//animacion is the instance name of the Symbol Animacion
//and is placed in your main timeline
MovieClip(root).animacion.gotoAndPlay(1);
//there is a movieclip instance named personaje in your main timeline
MovieClip(root).personaje.gotoAndPlay(1);
//personaje has inside a movieclip instance named guy
MovieClip(root).personaje.guy.gotoAndPlay(1);
}
}
这应该工作,但是我劝你尽量不要过度使用ENTER_FRAME监听器,因为它们很昂贵的性能代价。例如,在这个例子中,如果MovieClip“animacion”已经达到500帧,可能你不需要问每一个帧,认为它就像你汽车后座的恼人的孩子大喊“我们在那里吗?我们到了吗?”每隔几秒钟。我建议你应该遵循ActionScript 3上的一些初学者教程来习惯语法,并更熟悉代码背后的逻辑。