- ベストアンサー
【スコープ】グローバル変数
タイムラインに、このような記述をしました。 _global.blnFlg = 10; var a = _global.blnFlg; trace(a); 実行するとtrace()は、 undefinedと返ってきます。 どうすれば正しく値を取得できるのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#2です。 > AS2.0だと、どうすればよいのでしょうか? 普通は書かれていらっしゃるままで 「10」 が出力されます。 > バージョンはFlash8のAS2.0です。 それを先に書きましょう。 > 写真を見る限り、Flash Lite1.1でしょうか? すみません。 それは前回他の方への回答が Flash Lite 1.1 だったので, そのままになってしまってしただけです。 ちなみに, その(#2の)画像を表示させたときのパブリッシュ設定は デフォルトの「Flash Player 8」用SWFパブリッシュで「ActionScript 2.0」設定です。 > 上記のURLは、AS3.0みたいですが、 ですから, バージョンをご質問で一切書かれていらっしゃらなかったので, ActionScript 3.0 設定でパブリッシュしようとして,変なことになったのかと思ったのです。 (ActionScript 3.0 では _global は廃止されたため) #2 で書いた内容を書きなおすと, ActionScript 3.0 設定にしたドキュメントを作成しているのではないか。 ActionScript 3.0 では _global は廃止されてますよ。 ということです。 ========== Flash 8 をお使いで,「undefined」 を出すにはどうすれば良いかやってみましたが, 「ファイル」→「パブリッシュ設定」でFlashタブを選択して, バージョンを「Flash Player 5」以下(5は含む) にしたとき,「undefined」 が出ます。 「Flash Player 6」以上にすれば「10」が出ます。 Flash 5 以下で作成された FLA を開いて, その FLA の パブリッシュ設定 を変えずにそのままにしてあるため 「undefined」 が出たのではないでしょうか? それ以外は,今のところ 「undefined」 が出る原因がわかりません。 とにかく, Flash では バージョン が最重要です。 Flash 作成ツール のバージョン ActionScript のバージョン パブリッシュしようとするターゲットの Flash Player のバージョン。
その他の回答 (2)
- BlurFiltan
- ベストアンサー率91% (1611/1754)
ActionScript 2.0 以下だとちゃんと 10 が出力されますよ。 そういうことではないのでしょうか? Google 検索「_global ActionScript 3.0」 http://www.google.co.jp/search?hl=ja&source=hp&q=_global+ActionScript+3.0&lr=lang_ja
補足
AS2.0だと、どうすればよいのでしょうか? バージョンはFlash8のAS2.0です。 写真を見る限り、Flash Lite1.1でしょうか? 上記のURLは、AS3.0みたいですが、 仕様が変更されてなければ、使えそうです。 一度、目を通して見ます。
状況がよく分かりません。 FlashのActionScriptにかかわるご質問ですか?
補足
AS2.0です。 Flash8で、 グローバル変数を宣言して、 その変数に値を代入して取り出したいと思い、 サイトを調べて自分でデバッグしても trace()の中が"undefined"で返ってきます。 ASの質問のなります。
お礼
パブリッシュ設定を確認したところ、 AS1.0のままでした。 そのあとにサイト掲載しているようなサンプルを 実行させた結果、きちんと動作しました。 ありがとうございました。