2011-02-03 62 views
0

所以,當我的SWF文件加載起來也加載了動畫剪輯,像這樣的順序:AS3影片剪輯不會在一開始玩一貫

var loader:Loader = new Loader(); 
loader.load(new URLRequest("clips/clip4.swf")); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, clip4Loaded); 

而且我clipLoaded功能是:

private function clip4Loaded(e:Event):void { 
    clip4 = e.target.content as MovieClip; 
} 

的正在加載的clip4文件在第一幀有stop()。在後面的比賽(CLIP4是「結尾」)我使用:

clip4.gotoAndPlay(0); 
clip4.addFrameScript(clip4.totalFrames - 1, clip4End); 

然而,剪輯似乎只玩的時間和所有其他的片段約25%,其中我加載完全相同的方式發揮罰款。唯一的區別是這些片段在加載後很快就會播放,這導致我相信clip4正在某個時候被自動釋放,但我真的不知道。

+0

所以你需要加載一個剪輯,停止它,然後播放一次?什麼是'clip4End'?你可以在任何地方上傳嗎? – www0z0k 2011-02-03 18:54:13

+0

`clip4End`只是當電影到達最後一幀時調用的一個函數。現在它所做的只是通過跟蹤吐出一些數據。 – ingot86 2011-02-03 19:19:39

回答

0

奇怪 - 我有一個時間表,動畫SWF在第一幀stop();和下面的代碼:

package { 
    import flash.display.Loader; 
    import flash.display.MovieClip; 
    import flash.display.Sprite; 
    import flash.events.Event; 
    import flash.events.MouseEvent; 
    import flash.net.URLRequest; 

    /** 
    * 
    * @author www0z0k 
    */ 
    [SWF(width='400', height='300', frameRate='30')] 
    public class NewClass extends Sprite { 
     private const URL:String = 'res/1.swf'; 
     private var spr:MovieClip; 
     public function NewClass():void { 
      var ldr:Loader = new Loader(); 
      ldr.contentLoaderInfo.addEventListener(Event.INIT, onloaded); 
      ldr.load(new URLRequest(URL)); 
     } 

     private function onloaded(e:Event):void { 
      spr = e.target.content as MovieClip; 
      addChild(spr); 
      spr.addFrameScript(spr.totalFrames - 1, function():void { x = x == 0 ? 100 : 0; }); 
      spr.addEventListener(MouseEvent.CLICK, onclick); 
     } 

     private function onclick(e:MouseEvent):void { 
      spr.gotoAndPlay(0); 
     } 
    }  
} 

和它的作品,正是因爲它是寫。
請問您可以在任何地方上傳您的clip4.swf(或自己測試此代碼)嗎?