【お題】NEW演歌

ムービークリップ間の変数の受け渡しがいまいちわかりません。
例えば、

・_root.mc1
及び、
・_root.mc1.mc2

というインスタンスがあった場合、
_root.mc1.mc2 のフレームに a = 100; と書き、
_root.mc1 のフレームに trace(_root.mc1.mc2.a);
と書いても「undifined」と出るだけです。
(上層の値を下層で受けることはできるんですが、この例のように下層→上層の受け渡しはできないのです。)
どうすればインスタンス間の変数の受け渡しができるのでしょうか。
よろしくお願いいたします。

A 回答 (1件)

解決は難しい問題ですが,


理由は簡単です。

まず mc1 がロード(表示)されて,
trace(_root.mc1.mc2.a);
が実行され,
次に mc2 がロード(表示)されて,
a = 100;
が実行されるからです。
a が未定義のときに trace しても,未定義なので undifined です。
つまり,mc2 のフレーム1に

trace(_root.mc1.mc2.a);
a = 100;

と書いているようなものです。



mc1 のフレームを2フレームにして,
そのフレーム2に

this.stop();
trace(_root.mc1.mc2.a);

mc2 のフレーム1に

a = 100;

と書くと,
まず mc1 がロード(表示)されて,
次に mc2 がロード(表示)されて,
a = 100;
が実行され
mc1がフレーム2に進み
trace(_root.mc1.mc2.a);
が実行されます。
a = 100; という定義後に trace が実行されるので 100 が表示されます。


どんな場合でもそうとは限りませんし,
どんな場合でも使える方法ではないので,完全な解決は難しいですが,
一応理由としてはそういうことです。
タイミングの問題です。
    • good
    • 0
この回答へのお礼

なるほど。やはり順番が問題ですか・・
プログラムは同じ場所に書くようにします。
どうもありがとうございました。

お礼日時:2006/05/23 08:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報