FREE MOTION

FREE MOTION
職人への道

Flash職人への道 上級編

前章で紹介した変数について、今回はもっと詳しく説明するよ!
解釈が複雑だけど、レベルアップする為に頑張ろう☆

変数の種類と有効範囲

Action Scriptで使用する変数には「タイムライン変数」、「グローバル変数」、「ローカル変数」の3種類があります。
■タイムライン変数
タイムライン変数は、メインムービーやムービークリップ内のタイムライン上などで宣言した変数のことです。基本的に宣言したタイムライン上、ムービークリップ上でしか有効にならない変数となります。各ムービークリップ内のタイムラインで同名の変数を宣言した場合でもそれぞれ別々の変数として扱われます。各ムービークリップ内の変数を厳密に指定することができますが、その場合は変数名の頭にターゲットパスを指定する必要があります。仮に別のムービークリップなどからも共有して変数を扱いたい場合には「グローバル変数」を利用するのが便利です。
(例:ムービークリップ名”box”の中に存在する”hensuu”という名前の変数を異なるポジション(異なるムービークリップ内など)から厳密に指定する場合、”_root.box.hensuu”という指定が必要です。)
<変数を宣言する際の記述>
var (変数名) ;

例:)
var hensuu ;   //変数名:”hensuu”を宣言
※(変数名)には、変数の名前にしたい文字列を挿入します。(半角英数字で指定します)
<変数を宣言すると同時に値を代入する際の記述>
var (変数名) = (値) ;

例:)
var hensuu = 10;  //変数名:”hensuu”に値10を代入して宣言
■グローバル変数
グローバル変数は、どのタイムラインやムービークリップ内からでも参照可能な変数のことです。通常の変数宣言(タイムライン変数)と異なり、変数宣言時に変数の頭に”_global.”という識別子を付加することで、グローバル変数として宣言が可能になります。グローバル変数を指定する場合は特別な記述は必要なく、ただ変数名の記述だけで利用することが可能です。ただし、グローバル変数に新しい値を代入したり、演算子によって加算・減算処理などをしたりしたい場合には、必ず頭に”_global.”を付け加える必要があります。”_global.”を付けずに値を代入するとタイムライン変数扱いとなってしまうので注意しましょう。
(例:_global.hensuu = 10; と予め宣言しておき、その変数を異なるポジション(異なるムービークリップ内など)から利用する場合は、どのポジションからでもターゲットパスは不要で”hensuu”という記述だけで利用が可能です。
<変数を宣言し値を代入する際の記述>
_global.(変数名) = (値) ;

例:)
_global.hensuu = 10 ; //グローバル変数名:”hensuu”に値10を代入して宣言
■ローカル変数
ローカル変数は、function(){};関数内で宣言された変数のことです。このfunction(){};関数内で宣言された変数は、他の変数とは完全に異なり、このfunction内でしか有効でない変数となります。function()[];で記述した関数が実行された際にしか利用されない変数ということになります。
現時点では非常に難しい内容なので、すべてを理解する必要はないですが、そのような変数があるということを覚えておいてください。
※function(){};関数とは、ユーザーが独自に作成することのできる関数のことです。この独自関数については後の章で紹介させていただきます。
<独自関数内に宣言された変数の記述例>
例:)
function dokuji(){      //独自関数名:”dokuji”を作成
   for(i = 0; i < 5; i++ ){ //forステートメントによる5回の繰り返し処理
     trace(i);     //変数iの中身を出力

   }
};
※forステートメントは繰り返し処理を行う際にしようします。forステートメントについては後の章で紹介させていただきます。
※function(){};関数内で宣言された変数は、すべてローカル変数として扱われます。ローカル変数の有効範囲はつまり上記の赤字で記されている範囲のみとなります。ここでのローカル変数はとは”i”の事です。

まとめ

前章の変数について更に詳しく説明してきたが、いかがだったかな?中でもローカル変数についてはまだ紹介していない関数が使われており、理解が難しかったのではないかと思う。Function(){};関数を使用したときだけに関連するものなので、存在だけ覚えておくと良いだろう。今回紹介したグローバル関数は値の橋渡しや共有を行う際にとても便利な変数なので、グローバル変数はしっかりと覚えよう!