初心者のためのFlash ActionScript講座
Flash ActionScript Helper
Home Menu

最終更新日: 2003年7月27日

変数

変数とは

スクリプトの処理結果やユーザーの文字入力などを、ムービーで活用するためには、名前を付けた器を用意し、それらのデータを格納しておく必要があります。
この受け皿となるデータ(情報)の入れ物のことを変数といいます。
また、変数につけられた名前を変数名、変数に格納されたデータをといいます。

変数名は英数字と記号を組み合わせてつけます。ただし1文字目に数字を使うことはできません。また、Flashが使用するキーワード(予約語)を変数名にすることもできません。
さまざまな理由から、英数字およびアンダースコア(_)、ドル記号($)のみを使用することをお勧めします。英数字、記号とは、半角(1バイト)のものを指しています。全角の英数字、記号は、プログラムの世界では2バイト文字とされ、英数字として認められていません。
変数名は、管理空間内でユニーク(他と重ならない)である必要があります。
ActionScriptでは、ほとんどの場合、英字の大文字と小文字を区別しません。'var1' と 'VAR1' は同じものと判断されます。また、同一タイムラインに配置されたムービークリップや、ボタン、テキストフィールドなど、他のオブジェクトのインスタンス名、さらにプロパティ名、関数名と同じ名前をつけることもできませんので、注意してください。




変数の管理空間

Flashの変数は、ムービークリップをはじめとするオブジェクトごとに持つことができます。これは、ムービークリップやオブジェクトごとに、同じ名前の変数を持てるということを表しています。したがって、変数を操作する場合は、常にどのムービークリップまたはオブジェクトの変数かを意識しておく必要があります。
スクリプトを記述する場所と、操作対象となる変数の場所が異なる場合は、変数名の前に、ターゲットパス(「ターゲットパス」で解説)を記述して、どこの変数なのかを指定します。



変数の代入

変数に値をセットすることを代入といいます。
Flashの変数は、値を代入することによって作成されます。
変数という名前ですが、代入できるのは数ばかりではありません。数、文字、ムービークリップなど、ActionScriptで使用可能なデータ型(「データ型」で解説)は、すべて代入することができます。
変数はムービー実行中に何度でも代入することができます。新しい値は、古い値を上書きします。
実際の代入は、以下の書式で行います。ここで使用される ' = ' は、数学のイコールではなく、代入演算子(「演算子」で解説)です。数学のイコールと同じ意味を持つ等価演算子は、Flashでは ' == ' または ' === ' です。
指定例の最後に付けられたセミコロン(;)は、ひとつの命令文の終わりであることを示しています。



変数の参照

変数の値を取得することを参照といいます。変数は代入演算子(=)の左に置かれた場合を除き、変数名を記述すると、値として取り扱われます。変数を参照するには、変数名をそのまま式(「式、ステートメント、ブロック」で解説)の中で記述します。
指定例のように、計算式で使うこともできます。



変数の種類

この項は、少しむずかしいかもしれません。分からなければ読み飛ばしてもかまいません。必要なときに、読み返してください。

Flashで中心となるムービークリップやオブジェクトの変数は、所属するムービークリップやオブジェクト内では変数名だけでアクセスできます(ただしオブジェクトはスクリプトを記述する場所を持たないため、少し事情が異なります。この点については別のページで解説します)。しかし、他のムービークリップやオブジェクトからアクセスするときは、ターゲットパスを指定する必要があります。このような変数をタイムライン変数といいます(ネーミングに難ありですね)。
Flashの変数には、これ以外に、他からはアクセスできないローカル変数、どのムービークリップやオブジェクトからもターゲットパスなしで参照可能なグローバル変数があります。

ローカル変数は、カスタム関数(ユーザーが定義する関数)を定義するfunctionの中だけで利用できます。
ローカル変数を利用するには、function内で、下図のように「 'var' + スペース + 変数名;」と記述します。これを宣言文といいます。「これから、この変数をローカル変数として使うよ」とシステムに宣言する命令文です。宣言と同時に、値を代入する「 'var' + スペース + 変数名 = 値; 」 という記述も可能です。一度、var宣言された変数は、function内では変数名だけで、代入、参照が可能です。常にvarを付ける必要はありません。

ローカル変数は、functionの実行時のみ存在し、終了と同時にメモリ上から削除されます。
function以外の場所で、var宣言しても、ローカル変数とはならず、メモリ上から削除されることはありません。

グローバル変数は、どのムービークリップやオブジェクトからも、ターゲットパスの指定をせずに、変数名だけで直接参照することができる変数です。ただし、代入時にはグローバルであることを表すターゲットパス ' _global ' を頭に付ける必要があります。' _global ' を付け忘れるとタイムライン変数とみなされますので注意してください。書式は以下のとおりです。

なお、同名のローカル変数、タイムライン変数、グローバル変数が存在する場合に、どの変数が優先されるかという問題がありますが、これについては別のページで解説します。


テキストフィールドと変数の関連づけ

Flash5では、テキストフィールドは、エンドユーザーに直接、変数を見せたり、代入させるためのパーツとして使われていました。
表示用がテキストオプションのダイナミックテキスト、入力用がテキストオプションのテキスト入力です。
FlashMXからは、 テキストフィールドは役割を変え、独立したオブジェクトとなりました。しかし、互換性のためにこの機能は残されています。
テキストフィールドを選択し、[ プロパティインスペクタ ] の [ 変数 ] 欄に変数名を入力します。こうすると、テキストフィールドは指定された変数と関連づけられ、Flash5と同じように、変数の表示用、入力用のパーツとして使うことができます。





・関連項目

キーワード
データ型
演算子
式、ステートメント、ブロック
ターゲットパス

(C)2000-2004 Ginga Baba. All rights reserved. お問い合わせ先:ginga@nifty.com
ページTOPへ
Home Menu