在這行代碼:
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上的一些初學者教程來習慣語法,並更熟悉代碼背後的邏輯。