ActionScript |
ActionScript(以下AS)の概念と基本的なメソッド(命令する単語)、その他主に使用するもの、の説明をしていきます。
最後にそれらを用いた、スクリプト例を幾つか挙げていきます。
|
概念 |
ASには先述した通り、フレームアクション、クリップアクション、ボタンアクションと3種書く場所があります。
ASは命令であるので、「命令する側」と「命令される側」、この二つがあることを意識してください。
FLASHには、「階層」という概念があります。FLASHにMCを配置した場合、この階層が作成されます。そして、配置したMCの中に、またMCを配置すると、更に深い階層が出来ます。
これは、FLASH最上部を木とした、「木の根っこ」をイメージしてもらえれば分かりやすいと思います。
このFLASHの最上部、これを「_root」(根)と呼びます。
例えば、FLASH最上部に命令をしたい時には、_rootと記述します。
FLASH最上部に、「MC1」という「インスタンス名」(これはMCのプロパティで名づけることが出来ます)のMCが配置されているとして、そこに命令したい場合には、「_root.MC1」と記述します。
この記述の仕方を「絶対パス」と呼びます。「命令する側」を意識せず、最上部から階層を書いていく書き方です。
書き方には、もう一種類あり、もう一方は「相対パス」と呼びます。これは、「命令する側から見て、命令される側はどこにあるか」を記述するものです。
この形式で記述する場合、「_parent」(親)を使用する場合があります。これは、「自分の一つ上の階層」という意味を持っています。
また、「this」というものもあります。これは命令する側自らを表すものです。これは省略することが出来ます。(が個人的には書いておいた方が分かりやすいと思います)
例えば、FLASH最上部に、「MC1」というMCが配置されており、その中に「MC2」というMCが配置されているとして、「MC2」から、「MC1」に命令する場合には「this._parent」(又は「_parent」)、_root(FLASH最上部)に命令する場合には「this._parent._parent」(又は「_parent._parent」)と記述します。
|
基本的なメソッド、プロパティ、演算子、if文 |
まず、基本的なメソッドをカテゴリ大別に分けて、列挙していきます。
タイムライン関連メソッド
stop() |
タイムラインを停止 |
play() |
タイムラインを再生 |
gotoAndStop(数値) |
タイムラインを数値のフレームに移動させ、停止 |
gotoAndPlay(数値) |
タイムラインを数値のフレームに移動させ、再生 |
nextFrame() |
次のフレームに移動して、停止 |
prevFrame() |
前のフレームに移動させ、停止 |
MCのプロパティ関連
_x |
_y |
各々、x,yの座標値 |
_width |
_height |
各々、幅,高さの値 |
_rotation |
原形を0度とした角度 |
_alpha |
アルファ(透明度)の値(0:完全透明、100:不透明) |
_visible |
trueであれば表示、falseであれば非表示 |
_currentframe |
現在のフレーム |
その他
変数(任意の半角英数文字) |
「数値」や「文字列」を保存することが出来ます。任意の半角英数文字で定義することが出来ます。(但し予約語(青くなる文字)は使えません)定義する階層はしっかり意識してください。 |
これらのメソッド、プロパティ、その他、は、上記で説明した「階層」と合わせて(.(ドット)で繋いで)使用します。
次は、「演算子」についてです。
演算子には大きく分けて、「算術演算子」、「代入演算子」、「比較演算子」、「論理演算子」、「否定演算子」の5つがあります。まず、各々の内容を列挙していきます。
算術演算子
+ |
加算(足し算) |
- |
減算(引き算) |
* |
乗算(掛け算) |
/ |
除算(割り算) |
% |
剰余(割り算の余り) |
これは比較的分かりやすいと思います。
代入演算子
= |
「左辺」に「右辺」を代入 |
+= |
「左辺」に「左辺と右辺の和」を代入 |
-= |
「左辺」に「左辺から右辺を引いた値」を代入 |
*= |
「左辺」に「左辺と右辺を掛けた値」を代入 |
/= |
「左辺」に「左辺から右辺を割った値」を代入 |
++ |
(「(変数)++」の形で)(変数)に1を足す |
-- |
(「(変数)--」の形で)(変数)から1を引く |
「=」が「等価」では無く、「代入」であることに注意してください。
それさえ抑えられれば他は理解できると思います。
比較演算子
== |
等価(「左辺」=「右辺」の時) |
> |
「左辺」が「右辺」より大きい時(等価では×) |
< |
「左辺」が「右辺」より小さい時(等価では×) |
>= |
「左辺」が「右辺」以上の時(等価でも○) |
<= |
「左辺」が「右辺」以下の時(等価でも○) |
!= |
「左辺」と「右辺」が異なる時 |
これはif文等の条件式で用います。if文については後述します
論理演算子
&& |
左と右の条件式を同時に満たす |
|| |
左と右の条件式のどちらかを満たす |
これもif文等の条件式で用います。
否定演算子
! |
trueならfalseにする。falseならtrueにする。 |
これもif文等の条件式で用います。
最後に、if文の記述の仕方です。以下の様に記述していきます。
if(「条件式」){
「実行スクリプト」
}
//「条件式」を満たした(true)時、「実行スクリプト」が実行されます。
|
またif文には、「else if」、「else」というものがあります。
「else if」は、if文と同様の記述方法です。if文(もしくはelse if文)の後に記述し、それまでのif文、else if文の条件式に満たなかった場合、条件式を判別しにいきます。
「else」は、条件式を持ちません。if文(「else if」があれば「else if」)の後に記述し、それまでのif文の条件式どれにも満たなかった場合、else文のスクリプトが実行されます。
|
スクリプト例 |
以上のことを組み合わせて、スクリプトを組んでいきます。以下にいくつかの例を挙げて解説を終わります。
例1:
FLASH最上部のフレームアクション。最上部に配置されたMC「MC1」のx座標を5にする。
_root.MC1._x = 5;
//最上部に書いている為、「_root」は省略or「this」に置き換え可
//実際スクリプトを書く場合、「;」を忘れないようにする。「;」はスクリプトの区切りを意味する。
|
例2:
最上部に配置されたMC「MC1」のクリップアクション。「MC1」がタイムライン上に読み込まれた時、最上部に配置されているMC「MC2」を消滅させる。
onClipEvent(load){
_root.MC2.removeMovieClip();
//これは絶対パスで書かれたもの。相対パスで書くと、「this._parent.MC2」。
}
|
例3:
FLASH最上部のフレームアクション。if文についてです。
if(_root.MC1._visible == true){
_root.MC1._visible = false;
}else if (_root.MC._visible == false){
_root.MC1._visible = true;
}
//FLASH最上部に配置されたMC「MC1」のプロパティ「_visible」がtrue(見えている)ならfalse(見えないよう)にする。
//逆にfalseであったなら、trueにする。
|
これは以下の様に記述することも出来ます。
if(_root.MC1._visible){
_root.MC1._visible = false;
} else if (! _root.MC._visible){
_root.MC1._visible = true;
}
|
話は変わって、elseを抜き、以下の様に書くと
if(_root.MC1._visible){
_root.MC1._visible = false;
}
if (! _root.MC._visible){
_root.MC1._visible = true;
}
//trueの場合、true→false→true
//falseの場合、false→true
//となります。
|
例4:
FLASH最上部のフレームアクション。変数「hensu1」を定義し、初期値として、30を代入する。その後、変数「hensu2」を定義し、初期値として、「hensu1+50」を代入する。
hensu1 = 30;
hensu2 = hensu1 + 50;
// ↑の「hensu1」は「this.」又は「_root.」が省略されている。
|
最上部に配置されたMC「MC1」のクリップアクション。読み込まれた時「MC1」の高さを、最上部に定義された変数「hensu2」の値にする。
onClipEvent(load){
this._height = _root.hensu2;
}
//MC1の高さは80になります。
|
|