2017-05-26 14 views
0

まず、AS2は古くなっていますが、私は自習してAS2は学びやすくなりました。私がこのプロジェクトを始めてから、私はAS3に移行し始めましたが、私はこのプロジェクトをAS3に再コードしようとは思わないのです。AS2は外部ファイルがロードされているかどうかをチェックします

だから、質問です。 私は別のサイトでホストされている別のswfでロードするシェルswfを使用しています。私は外部swfが正常に読み込まれたかどうかをテストすることができますし、そうでなければバックアップホストからロードしようとします。それを行う方法はありますか? )

stop(); 

    this.onEnterFrame=function(){ 
     var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); 
     var image:MovieClip = mc.createEmptyMovieClip("image", mc.getNextHighestDepth()); 
     image.loadMovie("[redacted]"); 
     image._lockroot = true; 
     delete this.onEnterFrame; 
    } 

私はimage.loadMovie後image.getBytesTotalを()(ランニング試してみました:ここ

は、シェルのコードは、(それにもし/他のテストを追加したい、うまく動作します)ですしかし、常に0の値が返されます。

答えて

0

私は解決策を見つけることができました。 loadMovie()の代わりにMovieClipLoader.loadClip()を使用し、onLoadErrorリスナを呼び出しました。

他の誰かが同様のことをしようとしている場合に動作するコードは、最初のホストをテストし、バックアップをロードし、そのホストもテストします。両方が失敗した場合、シェルクリップによってエラーを保持するフレームビューアのメッセージ。

var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth()); 
    var mcLoader:MovieClipLoader = new MovieClipLoader(); 
    mcLoader.addListener(this); 
    mcLoader.loadClip("URL", container); 
    container._lockroot = true; 


    var mclListener:Object = new Object(); 
    mclListener.onLoadError = function(target_mc:MovieClip, errorCode:String) { 
     if(errorCode == 'URLNotFound'){ 
      mcLoader.loadClip("URL", container); 
      trace("host 1 failed"); 
      container._lockroot = true; 
      mclListener.onLoadError = function(target_mc:MovieClip, errorCode:String) { 
       if(errorCode == 'URLNotFound'){ 
        trace("host 2 failed"); 
        _root.gotoAndStop(2); 
       } 
      } 
     } 
    }; 
    mcLoader.addListener(mclListener); 

    stop(); 
関連する問題