プログラミングとは、主に、コンピューターのメモリ内の情報を変更する作業です。したがって、プログラム内で個々の情報を表す手段を持つことが重要です。変数は、コンピューターのメモリ内の値を表す名前です。値を操作するステートメントを記述する場合、値の代わりに変数名を記述します。コンピューターは、プログラム内に変数名を検出した場合は必ずメモリ内を検索し、そこで見つかった値を使用します。例えば、value1 と value2 の 2 つの変数があり、それぞれに数値が 1 つずつ格納されている場合、2 つの数値を加算するステートメントは次のように記述できます。
value1 + value2
コンピューターが手順を実際に実行するときには、それぞれの変数に格納された値を検出し、それらを加算します。
ActionScript 3.0 では、実際には変数は 3 つの異なるパートから構成されます。
変数の名前
変数に格納できるデータ型
コンピューターのメモリに格納される実際の値
これで、コンピューターがどのようにして名前を値のプレースホルダーとして使用するかがわかりました。データ型も重要です。ActionScript で変数を作成するときには、変数が格納する特定のデータ型を指定します。この時点から、プログラムの命令は、指定されたデータ型のみを変数に格納できるようになります。また、そのデータ型に関連付けられた特定の特性を使用して値を操作できます。ActionScript では、変数を作成するときに var ステートメントを使用します(変数の作成は、変数の宣言とも呼ばれます)。
var value1:Number;
この例は、Number 型のデータのみを格納する value1 という変数の作成をコンピューターに命令しています(「Number」は ActionScript で定義されている固有のデータ型です)。次の例のように、即座に値を変数に格納することも可能です。
var value2:Number = 17;
Adobe Flash Professional
Flash Professional では、変数を宣言する方法がもう 1 つあります。ステージにムービークリップシンボル、ボタンシンボル、テキストフィールドなどを配置する場合、プロパティインスペクターでそれらのアイテムにインスタンス名を指定できます。内部的には、指定したインスタンス名と同じ名前の変数が、Flash Professional によって作成されます。この変数をActionScript コードで使用することで、そのステージアイテムを表すことができます。例えば、ステージにムービークリップシンボルを配置し、そのシンボルに rocketShip というインスタンス名を指定するとします。ActionScript コードで変数 rocketShip を使用すると、いつでも必ずそのムービークリップを操作することになります。
定数は、変数とよく似ています。定数とは、指定されたデータ型でコンピューターのメモリ内の値を表す名前ですが、変数とは異なり、ActionScript アプリケーションで定数に割り当てることができる値は一度に 1 つのみです。割り当てた定数値は、アプリケーション内で一貫して同じ値になります。定数を宣言するためのシンタックスは変数の宣言と同じですが、var キーワードの代わりに const キーワードを使用する点が異なります。
const SALES_TAX_RATE:Number = 0.07;
定数は、プロジェクト内の複数の場所で使用され、通常の状況下では変化しない値を定義するのに便利です。リテラル値の代わりに定数を使用することで、コードがさらに読みやすくなります。例えば、同じ処理を行うコードの 2 とおりの記述方法を比較してみましょう。一方のコードでは、定価に SALES_TAX_RATE を掛けます。もう一方のコードでは、定価に 0.07 を掛けます。SALES_TAX_RATE を使った記述の方がコードの目的を理解しやすいことがわかります。また、定数で定義されている値を変更する必要が生じた場合、プロジェクト全体で、定数を使ってその値を表しているのであれば、1 箇所(定数の宣言)で値を変更するだけで済みます。対照的に、ハードコードされたリテラル値を使用している場合は、多くの箇所を変更する必要が生じます。