2011-08-14 11 views
0

私はステージのムービークリップに外部SWFファイルをロードするAS3アプリケーションをプログラミングしています。埋め込みSWF内の変数を読み込む必要があります。おそらく、bgURLでこれを行うことができますが、私はどのように把握できません。埋め込みSWF内の変数へのアクセス?

埋め込みSWF内の変数を読み取るにはどうすればよいですか?

var bgLoader:Loader = new Loader(); 

var bgURL:URLRequest = new URLRequest("file.swf"); 
bgLoader.load(bgURL); 
addChild(bgLoader); 
trace(MovieClip(bgLoader.content).Player.played);ようなものになるが、あなたはEvent.COMPLETEハンドラ内でコンテンツにアクセスすることを確認します
+0

あなたの変数がfile.swfを基準にしている場所によって異なります。たとえば、変数 'myVar'がfile.swfの最上位にある場合(グローバルと考える)、' trace(MovieClip(bgLoader.content).myVar); '** swfが完全にロードされた後** –

+0

実際には深層です。ロードされたMovieClipの名前が「top」の場合、ここにアクセスする方法は次のとおりです。 trace(top._root.Player.played); 「MovieClip(obj).varName」は何を意味するのですか? –

+0

はAS3の外部swfですか? –

答えて

1

bgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,bgLoaded); 
function bgLoaded(event:Event):void{ trace(MovieClip(bgLoader.content).Player.played) } 

bgLoader.contentはDisplayObjectを返しますが、あなたはあなたのコンテンツにアクセスする必要があります映画クリップ。これを行うにはcastingを使用してください。

これはあなたの外部swfがAS3(良い点Teo.sk!)であることを前提としています このビット:_root.Player.playedはAS2のようです。残念ながら、 変数にアクセスして、ロードされたAS2ムービーを直接作成することはできません。 まだLocal Connectionクラスを使用して、 AS2とAS3の間で前後に変数を送信できます。幸いにもグラントスキナーはSWFBridge という簡単なユーティリティを書いて

+0

私はちょうど埋め込まれたswfがAS2であることを知りました。私は変数にアクセスできないと確信していますか?なぜなら、私がC#Windowsアプリケーションに同じswfを組み込むと、その変数にアクセスできるからです。 –

+0

私はあなたがそれをロードするas3 swfからas2変数にアクセスできないと確信しています。 as2 swfはas3の[AVM1Movie](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/AVM1Movie.html)インスタンスとして実行されますが、これはAVM1を実行するために制限されていますas1と2 swfs)とAVM2(as3 swfs)を並べて表示します。私はあなたがC#アプリケーションから変数にアクセスすることが手掛かりではありませんでした。 –

関連する問題