2012-05-31 133 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 
}