2012-08-29 44 views
0

我有一個影片剪輯被加載和幀腳本動態地添加到電影的時間線。幀腳本似乎在某些時候可以工作,但有些時候它似乎會跳過包含動態添加的幀腳本的整個關鍵幀。只是想知道如果MovieClip.addFramScript()是不可靠的,或者如果其他人都遇到過這樣的問題。Flash動作3的addFrameScript不能正常工作

+0

我不會把它可靠,請把你的代碼的問題可能在於你如何試圖做到這一點。 – BadFeelingAboutThis

+0

您是否試圖在Flash Pro中創建的影片剪輯上調用addFrameScript()? Flash Pro將在構造函數中生成對addFrameScript()的調用。這些可能最終會超越你自己的處理程序。 – cleong

回答

1

試試這個代碼,

的時間表

//Movieclip instance name 'MC' 

MC.addFrameScript(0 ,stopframe); 

function stopframe():* 
{ 
    MC.stop(); 
} 

或類文件(使用標籤名稱)在我的經驗

package 
{ 
    import flash.display.MovieClip; 
    import flash.display.FrameLabel; 
    import flash.display.*; 

    public class MC extends MovieClip 
    { 
     private var labels:Object 

     public function MC() 
     { 
      labels = this.currentLabels; 

      for (var i:int = 0; i < labels.length; i++) 
      { 
       var framelabel:FrameLabel = labels[i]; 
       labels[ framelabel.name ] = framelabel.frame 
      } 

      addFrameScript(labels["animstart"], animStart, labels["animend"] - 1, animEnd); 
     } 

     public function animStart():void 
     { 
      trace("animation start"); 
     } 

     public function animEnd():void 
     { 
      trace("animation end"); 
     } 
    } 
} 
1

它不是不可靠的。然而,語法非常關鍵,Flash不會爲這類語法問題拋出錯誤。

段:

addFrameScript((totalFrames-1),fn_frame); //Correct 

addFrameScript((totalFrames-1),fn_frame()); //Incorrect, it will run right away and not on the last frame (the difference is the extra brackets) 


public function fn_frame():void 
    { 
     trace("END"); 

     }