今日はFlashアニメーションの授業の3期初日。

今期から ActionScript というのを学んでいきます。

授業の一部を twitter でつぶやきましたので以下に再掲いたします。

アクションパネルの記述例
(アクションパネルに ActionScript を記述した例。)


今日はFlashの授業、3期の初日。今期からActionScriptを学びます。

ActionScriptは、Flashのアニメーションの動きをいろいろ制御するためのスクリプト(プログラム)です。

文法はJavaScriptと似ています。

たとえば或るフレームに 「 stop(); 」 と記述すると、そのフレームでアニメーションの再生が止まります。

ActionScriptは「アクションパネル」に記述します。F9キーでアクションパネルを表示できます。

フレームというのはパラパラ漫画の一こま一こまに該当します。ActionScriptを指定できるのは「キーフレーム」などです。

ActionScriptを指定したいキーフレームをクリックして選んでからF9キーを押します。あるいはメニューバー「ウインドウ」→「アクション」でもアクションパネルが表示されます。

「gotoAndStop(12);」と書くと、そのフレームから12フレームにジャンプしてアニメーションが停止します。大文字小文字は区別されるので gotoAndStop() をGoToAndStop() とか、gotoandstops() とか書いてはいけません。

gotoAndStop() で()の中にジャンプ先のフレーム番号を指定しますが、これだと、途中のフレームを増やしたり減らしたりしたときに、フレームの番号がずれるので、番号を指定し直さなくてはいけません。

その場合は、該当するフレームに「フレームラベル」という名前をつけて、その名前をジャンプ先に指定できます。

名前(フレームラベル)をつけたいキーフレームを選択して、プロパティインスペクタをみます。そこにフレームラベル名を入力する欄があるので、その欄に英数字でフレームの名前を適当に入れます。

フレームラベルを設定したキーフレームのタイムラインには「旗」のマークがつきます。

たとえば或るキーフレームのフレームラベルが「wahaha」だったら、「 gotoAndStop("wahaha"); 」 と記述しておくとそのwahahaのフレームにジャンプし(て再生が止まり)ます。

フレームラベルを指定してジャンプすれば、フレーム数が増減しても、(フレーム番号で指定しているわけではないので) ActionScriptの記述を変更しなくても済みます。楽です。

gotoAndPlas() というのもあり、この場合はジャンプ後にアニメーションの再生が続行されます。

あと、prevFrame() 、nextFrame() というのもあり、それぞれ、一つ前のフレーム、一つ後のフレームに移動します。移動後に再生は停止します。この二つは () の中に何も書きません。

prevFrame() の、prev は英語のほにゃららの略です。ほにゃららは何でしょう?

prev は previous (プリーヴィアス) の略ですね。 previous は「前の、以前の」という意味。the previsou night は、「その前の晩」。

さっき、gotoAndPlas() と書いたのは gotoAndPlay() の間違いです...。

「gotoAndStop(_currentframe); 」というふうに () の中に 「_currentframe 」を書くと、今そのActionScriptが書かれているフレーム番号が指定されます。つまり、「_currentframe 」 は、そのときのフレーム番号です。

Flashを見てる人が、ボタンをクリックしたりしたときに、何らかの動作をさせたい、というときは「ボタンイベント」を利用します。

ところで、ActionScript にもバージョンがあって、現在は 2.0 と 3.0 が使われています。 2.0 と 3.0 では文法が違ったりします。

さっきの 「_currentframe 」 の current は 「今の、現時点の」という意味です。辞書をみたら the current issue of the magazine 「雑誌の最新号」という例がありました。issue は 「号」。

ボタンイベントは、「マウスがボタンを押して離したとき」とか「ボタンにマウスポインタが載ったとき」とかいろいろあります。

「ボタンイベント」の「イベント」は event つまり 「出来事」 ですね。

「 trace() 」 の () に文字列を指定すると、その文字列が出力パネルに表示されます。文字列はダブルクォーテーションマークで囲みます。例: 「 trace("もじもじ君") 」 。trace は動作確認用によく使われます。

trace(_currentframe) と書けば、現在のフレーム番号が表示されます。

ボタンインスタンス(ボタンの機能をもったボタン画像)を作成しておいて、それにActionScriptを「 on(release){ trace("クリックかよ"); } 」と書きます。そしてそのボタンをクリックすると、「クリックかよ」と表示されます。

「 on(release) 」は、「マウスポインタ(マウスの矢印)がボタンを押して離れたとき」という意味です。release は「離す、はずす」という意味で、on は 「〜のとき」 という意味、つまり on(release) で「離れたとき」みたいな意味です。

ボタンイベントを利用すれば、フルフラッシュサイト(Webページ全体をFlashで作ること)ができそうですね。

ボタンをメニューにしておいて、それぞれのボタンが押されたとき(on(release)のとき)に、gotoAndStop() で任意のフレームに飛ぶようにすればいいでね。ジャンプ先のフレームにページの内容を書いておけばいい。

on(relase) { gotoAndStop("aobut"); } と書けば、そのボタンが押された時に、フレームラベルが about というフレームにジャンプします。

on(release) { ... } の {...} の箇所には、ボタンを押したときに行いたい処理を書くということになります。

イベントは release の他にもいろいろあります。

「traceって、うちらみたいな作ってる人には見えるけど、そのFlash見る人には見えないんだ!」「そうだね」「便利じゃね〜」

では、左向きと右向きの矢印のボタンを配置して、それぞれのボタンを押したら、前のフレームや次のフレームに移動するアニメを作ってみましょう。



■ 関連記事
→ 「色入門」 (2011年08月25日)