2012-05-31 173 views
0

我創建在Flash CS5的ActionScript3遊戲與獨立「DocumentMain.as」的代碼,我想將它導入到另一個SWF文件是菜單。我希望當我點擊菜單中的開始時,它會將我帶到遊戲文件!如何導入SWF文件「DocumentMain.as」到另一個swf文件?

下面是代碼,我使用

btnstart.addEventListener(MouseEvent.CLICK,gamecontent); 
function gamecontent(myevent:MouseEvent):void{ 
    var myURL:URLRequest=new URLRequest("game.swf"); 
    myLoader.load(myURL); 
    myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler); 
    function onCompleteHandler(loadEvent:Event):void 
    { 
     addChild(loadEvent.currentTarget.content); 

    } 

} 

但是,它沒有作用,它顯示了我這個消息 「類型錯誤:錯誤#1009:無法訪問空對象引用的屬性或方法。 在DocumentMain()」

請我需要你的幫助! 非常感謝

回答

0

要找到最簡單的方法,試圖完整路徑添加到game.swf中的URLRequest ..如果它的工作原理那麼問題,那麼你知道所有你需要做的就是改變回「game.swf」,再保存在同一文件夾中game.swf的FLA文件,並預覽SWF導出到同一文件夾,然後再試一次..這工作對我來說,當我有完全相同的問題..它只是似乎不知道它的根文件夾在哪裏。

import flash.net.URLRequest; 
    import flash.display.Loader; 

    btnstart.addEventListener(MouseEvent.CLICK,gamecontent); 
    function gamecontent(myevent:MouseEvent):void{ 
    var myURL:URLRequest=new URLRequest("file:///c:/yourfolder/folder/game.swf"); 
    myLoader.load(myURL); 
    myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler); 
    function onCompleteHandler(loadEvent:Event):void 
      { 
      addChild(loadEvent.currentTarget.content);    
      } 
     } 
0

你可能在DocumentMain構造訪問stage。當將SWF加載到另一個SWF時,這會引發錯誤,因爲舞臺在子SWF中不可用。

移動訪問該階段從DocumentMain構造成ADDED_TO_STAGE處理程序的任何代碼,如下所示:

public function DocumentMain() 
{ 
    addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler); 
} 

public function addedToStageHandler(ev:Event) 
{ 
    trace(stage); 
    //Code that was previously in the constructor 
}