2013-06-02 182 views
1

我需要加載一個外部的SWF,並能夠在FlashDevelop中使用它作爲MovieClip,即我需要能夠去特定的關鍵幀,開始和停止它播放等一些簡單的工作示例代碼將非常感激,因爲我無法通過Google找到令人滿意的教程。AS3加載SWF作爲Movieclip

編輯 我現在有這樣的代碼

package 
{ 
import flash.net.*; 
import flash.display.*; 
import flash.events.*; 
import flash.utils.getQualifiedClassName; 

public class Main extends MovieClip 
{ 

    var animatedBox:MovieClip = new MovieClip(); 
    var ldr:Loader = new Loader(); 
    var frames:int = 0; 

    public function Main():void 
    { 
     if (stage) init(); 
     else addEventListener(Event.ADDED_TO_STAGE, init); 
    } 

    private function init(e:Event = null):void 
    { 
     removeEventListener(Event.ADDED_TO_STAGE, init); 
     ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, onload); 
     ldr.load(new URLRequest("../lib/test.swf")); 
    } 

    function onload(e:Event) 
    { 
     if (!e.target) 
     return; 

     if(e.target.content is MovieClip) 
     { 
      animatedBox = e.target.content as MovieClip; 

      animatedBox.gotoAndPlay("Start"); 
     } 
     else 
     { 
      trace(getQualifiedClassName(e.target.content)); 
     } 
    } 

} 

} 

後,我嘗試運行它,我得到[故障]例外,信息=類型錯誤:錯誤#1009:無法訪問的屬性或方法一個空對象引用。 任何想法?

+0

你究竟需要什麼?學習as3或學習如何使用FlashDevelop? – Cherniv

+0

我只需要代碼就可以添加一個SWF到一個FlashDevelop項目,並使其作爲一個可用的MovieClip功能 – user1938856

回答

2
import flash.utils.getQualifiedClassName; 

var mc: MovieClip; 

var ldr: Loader = new Loader(); 
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoad); 
ldr.load(new URLRequest("your.swf")); 


function onLoad(e:Event):void 
{ 
    if(!e.target) 
     return; 

    trace(getQualifiedClassName(e.target.content)); 
    /* if you get: flash.display::AVM1Movie 
     it means you are trying to load an AS1 or AS2 SWF 
     into AS3 SWF. They both need to be AS3 */ 

    mc = e.target.content as MovieClip; 
    mc.gotoAndPlay(2);  
    // or mc.gotoAndPlay('yourLabel'); 

} 
+0

我改變了代碼,但得到了一個錯誤。請看看編輯後的帖子 – user1938856

+0

當我輸入animatedBox = event.target.content時,內容不會出現在自動提示框中,就像.target和.anything其他的那樣。我認爲這是問題,因爲這裏的失敗會導致null animatedBox變量 – user1938856

+0

你可以在調試模式下運行你的swf,並告訴我哪一行給你那個錯誤? –