• ベストアンサー

【スコープ】グローバル変数

タイムラインに、このような記述をしました。 _global.blnFlg = 10; var a = _global.blnFlg; trace(a); 実行するとtrace()は、 undefinedと返ってきます。 どうすれば正しく値を取得できるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.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 のバージョン。

dizzdive
質問者

お礼

パブリッシュ設定を確認したところ、 AS1.0のままでした。 そのあとにサイト掲載しているようなサンプルを 実行させた結果、きちんと動作しました。 ありがとうございました。

その他の回答 (2)

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.2

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

dizzdive
質問者

補足

AS2.0だと、どうすればよいのでしょうか? バージョンはFlash8のAS2.0です。 写真を見る限り、Flash Lite1.1でしょうか? 上記のURLは、AS3.0みたいですが、 仕様が変更されてなければ、使えそうです。 一度、目を通して見ます。

noname#111181
noname#111181
回答No.1

状況がよく分かりません。 FlashのActionScriptにかかわるご質問ですか?

dizzdive
質問者

補足

AS2.0です。 Flash8で、 グローバル変数を宣言して、 その変数に値を代入して取り出したいと思い、 サイトを調べて自分でデバッグしても trace()の中が"undefined"で返ってきます。 ASの質問のなります。

関連するQ&A