電気ウナギ的○○

About Home

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

shinoda (2009年1月28日 18:10)

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.

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

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

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

反省、反省。

電気ウナギ的○○

電気ウナギ的○○

About Back

コメント(0)

電気ウナギ的○○

電気ウナギ的○○

About Back

トラックバック(0)

トラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/363

電気ウナギ的○○

About This Site

電気ウナギ的○○
岩国在住。広島で働く超零細IT企業社長のいわゆる社長日記。
何か、酒と食い物のことばかり書いているようで・・・お察しのとおり、肥満体です:-)


2011/06/24
iPhone用サイト公開

Create with jQuery, jQTouch.


CLOSE