Flashラボ

Action script基礎

Acrtion script基礎

今までにも、タイムラインを停止させる「this.stop();」や、クリックでフレームに飛ばす「on(release){gotoAndPlay("top");}」などのアクションスクリプトが出てきましたが、Flashでコンテンツを制作する上では、「Actionscript(アクションスクリプト)は欠かせません。

そこでActionscript(アクションスクリプト)の基礎を説明したいと思います。

Action script(アクション スクリプト)とは?

Actionscript(アクションスクリプト)とは、Flashでコンテンツを制作する際、様々な仕掛けを施すことができるスクリプト言語です。Flashのバージョン5から本格的に導入され、Javascriptを元に開発されたと言われています。

文章を書く時にも、主語と動詞、読点があるように、Actionscriptにも、主語(対象)、動詞(命令:関数)が、あり、読点(;)があります。

例えば、

this.gotoAndPlay("top");

「this」が主語で、Actionscriptが書かれている同じタイムラインを指し、「gotoAndPlay("top")」が、「top」と名付けられているフレームに移動し、再生を開始させるという命令(動詞)です。最後に、読点「;」をつけます。

「this」と「gotoAndPlay("top");」の間は、「.」(ドット)で区切ります。

関数とは?

参考書を開くと出てくる「 関数」とは、何か。

例えば、テレビを思い出してみましょう。スイッチをつけるとTV番組を見ることができます。ユーザーは、テレビが映像を映し出す仕組み、テレビ局からどのようにデータが配信されているかというややこしいことはわからなくても、スイッチをつけるだけで、番組を映し出すという結果を得ることができます。

関数も、Flashがどのようにタイムラインを走らせて、「top」フレームに移動させ、再生させるのか仕組みがわからなくても、とにかく、()のなかに、「"top"」と書けば、「top」フレームに移動します。

このように、ある値を渡せば何かしらの結果を出すもののことを「関数(かんすう)」と呼びます。ちなみに、渡すある値のことを「引数(ひきすう)」といい、上の例の場合は、「gotoAndPlay();」という関数に「top」という引数を渡していることになります。

ActionScriptをつけることができる3つの場所

Actionscriptをつけることができるのは、

  • ボタン
  • フレーム
  • ムービークリップ

の3つです。

●ボタンにつける

このうち、「ボタン」に関しては、「ボタンシンボルでボタンを制作」の項で説明したように、ボタンを押す、マウスをオーバーする、といったタイミングで、どのような関数を使うかというものです。

ボタンにASをつける

●フレームにつける

フレームは、ルートやムービークリップのフレームにアクションスクリプトをつけるというものです。そのフレームが再生された瞬間にActionscriptが実行されます。フレームに、Actionscriptが書かれたら「a」とつきます。

フレームにASをつける

●ムービークリップにつける

ムービクリップにActionscriptをつけるのが、一番わかりにくいと思います。ムービークリップにActionscriptをつける場合、様々なタイミングでActionscriptを実行させることができますが、おもなものは2つです。

  • そのムービークリップが読み込まれた時
  • そのムービークリップがステージに存在しているとき常に

ムービークリップにASをつける

ムービークリップにActionscriptをつけるときは、ルールとして、

onClipEvent(){}

を使います。そのムービーが読み込まれた時にその処理を行いたい場合は、「load」、そのムービークリップがステージに存在しているときいつもその処理をしていたい場合は「enterFrame」と( )に書きます。

ActionScriptを書くコツとして、「自分の事は自分でする」です。つまり、そのムービークリップに対しての処理は、そのムービークリップにつけるというものです。そうすることによって、後で、あのスクリプト、どこにつけたっけな〜と悩む必要がなくなります。

ムービークリップにASをつける2

例えば、任意のムービークリップに以上のようなスクリプトを書いてみましょう。
赤字の「//〜」は、コメントといってメモ書きなので、スクリプトには直接関係はありません。ただ、こうやってメモを残すことによって、後で見た時に、どの部分が何の処理を行っているか把握するのに役に立ちます。

onClipeEvent(load){
this.speed=5;
}

は、ムービークリップが読み込まれた時に、スピードの設定を行っています。例えば、この「5」を「10」にすると、早さが倍になります。

onClipEvent(enterFrame){
this._x = this._x + this.speed;
}

は、ムービークリップがステージにある間はずっと、x座標に、onClipeEvent(load)で設定した、スピードの値「5」を足し続けるスクリプトです。そうする事によって、あたかも、ムービークリップが移動しているかのように見えます。
プロパティーとは「設定」の意味で、他にも、「_alpha(透明度)」や、「_yscale(高さ)」等があり、それらの数値を変更することで、座標や透明度の度合いをAction scriptで変更できます。

Actionscriptの基礎は以上ですが、思い描いた機能を実現するためには、どのような関数をどういったタイミングで実行させるのかを考える必要があります。ただ、最初のうちは、そういったことも、なかなか、わからないと思うので、サンプル集などを買って、まずは、いろいろ真似てみると良いでしょう。

つまるところ、Flashでコンテンツを制作するということは、上で説明したような「ムービクリップを移動させる」という簡単なパーツを、役割に応じて制作し、積み上げて完成させていくということになります。

Copyright (c) Penta Creation All rights reserved.