2011-02-03 66 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(或自己测试此代码)吗?