Action Scriptをはじめとするプログラミング言語を使ううえで知っておきたい仕組みが「変数」と「関数」です。変数や関数を使用すると,いろいろな処理を簡潔に作成できます。

変数と関数

 Action Scriptをはじめとするプログラミング言語でおなじみの仕組みが「変数」と「関数」です。ActionScript3.0でも,もちろんこの仕組みが用意されています。

 図1は,この変数と関数の仕組みを使った,ごくごく簡単な計算を行うムービーです。

図1:変数を使ったムービーの一例(クリックすると別ウィンドウで表示します)

 今回は,この二つの仕組みのご紹介とおさらい,そして,二つの仕組みを組み合わせて使用する際に注意しておきたい「変数のスコープ」について学習をしていきましょう。

値や参照を確保しておく「変数」

 「変数」は,プログラムの実行中に,保存しておきたい値や参照を格納しておくための仕組みです。なぜ,この仕組みが必要なのでしょうか?まずは図2のような環境をイメージしてみてください。

図2:すぐに流される黒板

 あなたは,PCに,ある黒板を使って,プログラム通りに計算をする作業を頼みました。PCの使う黒板の右半分は,いろいろな計算を書くと,瞬時に答えを出してくれる自動計算機能を持つ優れものです。

 でも,答えを出してしばらくすると,余分な物が大嫌いなお掃除係が,もう必要なくなったと判断してすぐに答えを消してしまいます(*1)。それに対し,左半分は,計算をすることはできないものの,いろいろなメモ書きができます。こちらはお掃除係はノータッチです。

 右半分にどんどん計算を書いていっても,どんどんその答えや数字,文字列などは消されていってしまいます。しかし,後でまた使いたい内容は,なんとか保存をしなくてはいけません。

 では,内容を保存するにはどうするかというと,左側の黒板を使うわけです。まず,黒板の左側に適当な名前を書きます。そして,そこから線を引いて右側の黒板の計算結果を囲みます。こうすると,お掃除係も「あ,これはまだ消しちゃいけないんだな」と判断して,残しておいてくれます。これで後の計算にも,保存しておいた内容が使えるようになります(図3)。

図3: 計算の結果を保存する

 この保存しておいた内容を,あとから取り出したい時には,左側の黒板に書いておいた名前を使います。例えば,「幅」という名前で保存しておいた数値「100」と,「高さ」という名前で保存しておいた数値「200」をかけ合わせたい場合には,「幅*高さ」というように計算を行うと,保存してあった「100」と「200」を使った計算が行われます。結果は「100かける200」で「20,000」となります(図4)。

図4:保存しておいた値を使う

 ActionScriptのプログラムで計算をする際にも,この黒板を使って計算を行うたとえ話と似たような処理を行います。ActionScriptでは,一度行った計算の結果や,文字列などを保存しておくのには,「変数」という仕組みを使います。

 では,実際に変数を使ってみましょう。新規Flashドキュメントを作成し,任意の名前で保存します。[F9]キーを押して[アクション]パネルを開き,次のようにコードを記述してみてください(*2)。

trace(10*20);

 [Ctrl]+[Enter]キーを押してプレビューをしてみると,[出力]パネルに「10*20」の計算結果である「200」が表示されますね。確かに「10*20」が計算されていることが確認できます(図5)。

図5:計算の結果が表示される

 この計算を,変数を使って記述してみましょう。変数を使うには,まず「varステートメント」を使って変数を「宣言」する必要があります。

var 変数名;

 上述の黒板の話で言うと,黒板の左側に適当な名前を書いた状態と同じことをしていると考えてください。例えば,「w」という名前の変数を宣言するには,

var w;
とコードを記述します。

 この変数wに,任意の値を保存するには,

変数名 = 保存したい値;

という形式でコードを記述します。変数wに「10」を保存するには,

var w;
w = 10;

と記述します(*3)。

 同じように変数「h」に「20」を保存し,変数名を使って計算を行わせてみましょう。

var w;
w = 10;
var h;
h = 20;
trace(w * h);

 コードを記述し,ムービープレビューを行ってみましょう。すると,図6のように「200」と表示されていますね。

図6:変数を使った計算の結果

 このように,変数を使うと,値などを保存し,後で変数名を使って保存したものを使用できます。