0

コード用に別の「DocumentMain.as」を使用してフラッシュ CS5 actionScript3 でゲームを作成しており、それをメニューである別の 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);

    }

}

ただし、それは機能せず、「TypeError: エラー #1009: null オブジェクト参照のプロパティまたはメソッドにアクセスできません。DocumentMain() で」というメッセージが表示されます。

あなたの助けが必要です!!! どうもありがとう

4

2 に答える 2

0

おそらくコンストラクタでアクセスstageしています。DocumentMainこれにより、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
}
于 2012-05-31T22:44:02.097 に答える
0

問題を見つけるには、game.swf へのフル パスを URLRequest に追加してみるのが最も簡単です。それが機能する場合は、「game.swf」に戻すだけでよいことがわかります。 flaファイルをgame.swfと同じフォルダーに保存し、プレビュー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);            
          }
         }
于 2012-05-31T20:59:00.813 に答える