ActionScript3 でグローバル変数を使う

ActionScript3 で、グローバル変数の値が関数間でうまく引き渡せない・・・と思って今日一日ハマってましたが・・・

とんだ誤解だった・・・
というか、イベント駆動型のプログラムを触るのが久しぶりなので、すっかり頭の中がこんがらがっていた。とほほ。

結局、以下のようなテスト用プログラムを作って、関数間でちゃんと値の受け渡しがされていることを確認して、己の思い違いに気づいた。

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="mainProc();">
 <mx:Script>
 <![CDATA[

  public var arrayGlobal:Array = new Array(); // グローバル変数の宣言

  private function mainProc():void {
   arraySet(); // 配列(グローバル変数)に値をセットする関数を呼ぶ
   trace("ARRAY COUNT=" + arrayGlobal.length);
   trace("0=" + arrayGlobal[0]);
   trace("1=" + arrayGlobal[1]);
  }

  private function arraySet():void {
   arrayGlobal.push("This is a pen.");
   arrayGlobal.push("My name is Ken Oka.");
  }

 ]]>
 </mx:Script>
</mx:WindowedApplication>

これで、コンソールには、

ARRAY COUNT=2
0=This is a pen.
1=My name is Ken Oka.

と表示される。まともに動いてる。グローバル変数の宣言の仕方がおかしいんじゃろうか?と、ずっとそればかり調べていたが、調べるべき方向性を間違っていたということだ。恥ずかし・・・(^^;

結局、イベント駆動される関数の中でセットされるグローバル変数(配列型)の中身を、そのイベントも発生していないうちから別の関数でチェックしていたという大ポカだった。

やっぱ、「???」と思ったら、素直にテストプログラムを書いてみるのが一番じゃね。
最近は、ついついネット上に似たような症状の話が載っていないか、そっちばかり探してしまう。

反省、反省。

トラックバック(0)

このブログ記事を参照しているブログ一覧: ActionScript3 でグローバル変数を使う

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/363

コメントする

このブログ記事について

このページは、shinodaが2009年1月28日 18:10に書いたブログ記事です。

ひとつ前のブログ記事は「腐れ銘柄ばかりが残ってしまった・・・」です。

次のブログ記事は「やっとディー・エヌ・エー株が売れた」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら