- ベストアンサー
FLASH MX、変数の参照について
_root上にaaaというMCとダイナミックテキストを配置、ダイナミックテキストには変数textを指定しています。aaa内のフレーム1にbbb = 1と記述、_rootのフレーム1にてtext = _root.aaa.bbbと記述してダイナミックテキスト上に反映させたいのですがうまくいきません。 FLASHを勉強し始めて1ヶ月程経つのに未だに変数の参照でつまづいてるのはかなり恥ずかしいのですが、よろしければアドバイスをいただけると幸いです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
変数の参照方法は正しいと思います。 試しに適当なMCを作って on(press){ _root.text=_root.aaa.bbb; } と埋め込んで、試してみてください。問題なく参照できるはずです。 ただ今回の場合、そのファイルが再生されたとき、どのアクションスクリプトが先に実行されるかを考えてみてください。_rootから参照されてしまうと今回はちょっとまずいですよね。 ですから"bbb=1"よりあとに"text=aaa.bbb"が参照されるようにタイミングを変えてあげるとうまくいきますよ。
その他の回答 (1)
- Qsans
- ベストアンサー率48% (28/58)
私もそれほど詳しい方ではありませんが、この仕組みの回答としては、以下のようになります。 ここでのMCに「aaa」というムービークリップ名は、付けなくてもいいと思います。 MCのフレーム内から_root上のダイナミックテキストBOXの中に数値なりを反映させたいのであれば、 MC内のフレームにフレームアクションとして、「アクション」の中から「setv ariable」を選択します。 アクションの中身は、_root.text = "1"; です。 ダイナミックテキストの変数名とフレームアクションの変数名が同じでないと 変数名=1 変数に1を代入と参照されないのです。 (もうひとつやり方) MCに直接アクションを設定するというのも参考までに。 この場合、オブジェクトアクションとなり、アクションから「On Clip event」を選択します。 中身は、 onClipEvent (enterFrame) { _root.text = "1"; (←ここは、setvariableで設定) } となります。
お礼
アドバイス頂いた方法で変数の参照方法は正しいことがわかりました。 実は今、簡単なスロットマシンのflashを作ろうと考えていて今回の問題に向かっています(このサイトで以前ソースのURLを出したら削除されてしまいまして…)。 説明は省きますが、それぞれのリールMCで出された変数を_rootで文字列に変換した後結合、出た値が"111"などのゾロ目であればテキストボックスに簡単なメッセージでも出そうかと思ってました。 やはり_rootにフレームを追加してタイミングをずらすようにスクリプトを改良したいと思います。 またflash関係の疑問が起こった際にはアドバイスをいただけるとうれしいです。 ご回答ありがとうございました!