2009-07-28 2 views
0

他のフラッシュプログラム(この例では「pacman_main.swf」)をロードしているFlash CS3(+ AS3)プログラムがあります。私はこれがFlash 5とAS1(yippee!)で作られているので、かなり古いSWFだと判断しました。AS3ラッパーAS1変数へのアクセス

子SWFG(a.k.a. "pacman_main.swf")の変数、特にスコアに親SWF(ラッパー)がアクセスできるようにします。これは私が第三者PHP/mySQL db blah blahにスコアを提出できるようにするためです。

function checkScore() { 
    // Get the score and submit it 
} 

submitScore.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); 
function mouseDownHandler(event:MouseEvent):void { 
    checkScore(); 
} 

var loader:Loader = new Loader(); 
loader.load(new URLRequest("pacman_main.swf")); 
addChildAt(loader, 0); 

私はラッパーを構築した後にデバッグ>リスト変数を使ってスコアの変数名を知っています。スコアは、ゲームで18点のパク・ドットを得た後に「変数_level0.instance5.instance6.score = 180」と表示された変数です。私の "checkScore"機能では、どうすればそれにアクセスできますか?

ありがとうございます!

答えて

1

最新のフラッシュプレーヤーには、2台の仮想マシン、as3用のAVM2、as2/as1用のAVM1が搭載されています。このため、フラッシュにas1/as2 swfをロードすると、AVM1によって実行されるタイプのAVM1Movieになります。残念ながら、AVM2はAVM1上で実行されているオブジェクトにほとんどアクセスしていません。実際には、「AVM1MovieオブジェクトとAVM2オブジェクト間の相互運用性(メソッドの呼び出しやパラメータの使用など)は許可されていません。

as1ソースコードにアクセスできますか?スコアが変わるたびにイベントを発生させることをお勧めするならば、あなたはラッパークラスでこれらのイベントを聞くことができ、スコア変数に直接アクセスすることについて心配する必要はありません。

あなたはAVM1Movieの詳細を読むことができますhere

関連する問題