基礎から学ぶActionScript 3.0

イベントリスナーを使ったスクリプティング-後編-

全334コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
アニメーションで使うイベントは、Event.ENTER_FRAMEです。そのイベントリスナーに、秒針が回るアニメーションを関数として定めます。
講師:
09:11

字幕

ActionScript 3.0 の スクリプトの処理の中で 重要な仕組みが イベントリスナーです。 イベントというのは、 例えば、ユーザーが マウスボタンを押したとか、 キーボードを押したといった、 ユーザーインタラクションから、 ファイルのダウンロードが済んだとか、 あるいは描画が更新されるとか、 そういったシステムの処理まで、 重要なプログラム上の 出来事のことを言います。 そして 特定のイベントが 起こったときに、 「この処理を行いなさい」 という指定を行う仕組みが、 イベントリスナーです。 ここでは、アニメーションを イベントリスナーの仕組みで 処理してみたいと思います。 この fla ファイルには 秒針のインスタンスを、 タイマーのように1秒刻みで回転するという アニメーションを定めました。 スクリプトで処理をしています。 スクリプトはメインタイムラインと、 ムービークリップシンボルの中と、 2箇所のキーフレームに 書いてあります。 まず、メインタイムラインから 確認しましょう。 メインタイムラインの scripts のレイヤーのキーフレーム 「アクション」パネルを開きます。 関数の呼び出しが行われています。 bar_mc というのは、 メインタイムラインに置いてある秒針の、 あの針の、 ムービークリップインスタンスです。 その中に、 xRotate () という 関数を定めてあります。 その呼び出しをしています。 そして、メインタイムラインには 2フレームありますので。 この2フレームをループします。 ということは、1フレームおきに この呼び出しが実行される ということになります。 一旦 、「アクション」パネルを 閉じましょう。 次に、ムービークリップシンボルの中の フレームアクションを確かめます。 そこで、タイムラインに配置してある ムービークリップインスタンスを ダブルクリックして、 シンボルを開きます。 「シーン 1」の隣に Bar というシンボルの名前が 表示されました。 現在、ムービークリップシンボルが 開いています。 そのムービークリップシンボルの中の スクリプト用のレイヤーの キーフレームを開けてみましょう。 右クリックで「アクション」です。 ムービークリップシンボルの フレームアクションには、 関数が定めてあります。 この関数は、先ほど確認したとおり、 メインタイムラインから 1フレームおきに呼び出されます。 やっていることは getTimer () 関数で 経過ミリ秒数を定め、 その値を 1000 で割っていますので、 秒の単位に換算されて 変数に納められます。 その変数値の小数点以下の数値を、 Math.floor () メソッドによって 切り捨て、 そこに 1秒あたりに針を回転させる角度 6度を掛け合わせて、 このシンボルのインスタンス自身の 回転角を定めています。 これで、秒数に応じた回転角で秒針が回る ということになるわけです。 もう1つ、シンボルの中に 関数を定めることによって、 この針のシンボルが パーツ化できるようになります。 では、この fla ファイルの スクリプトの動作結果を確かめます。 「アクション」パネルは一旦、閉じて、 メインタイムラインに戻りましょう。 「シーン 1」をクリックします。 そのうえで、ムービープレビューを 確かめます。 「制御」>「ムービープレビュー」です。 1秒刻みで秒針が回転しています。 このスクリプトを、 イベントリスナーを使った 仕組みにしてみたいと思います。 一旦、 SWF ファイルの ウィンドウは閉じましょう。 メインタイムラインのフレームアクションを もう一度、確かめます。 scripts のレイヤーの キーフレームを右クリックして、 「アクション」パネルを開きます。 ムービークリップシンボルの中に 関数を定めたのは、 ムービークリップシンボルを パーツ化(部品化)したいからです。 けれども その関数の呼び出しは メインタイムラインで行っています しかも、 メインタイムラインで 繰り返し呼び出すために、 2フレームを作って、 そして、フレームをループさせて 実行しています。 2点、改めたいと思います。 まず、メインタイムラインから、 いちいち呼び出しをしなくて 済むようにしたいです。 つまり、完全にムービークリップを パーツ化(部品化)します。 秒針のムービークリップだけで 回転するようにします。 それができれば、メインタイムラインに 2フレーム必要ありません。 つまり、メインタイムラインは 1フレームにしてしまいます。 そうすることができるのは、 イベントリスナーを使用するからです。 イベントリスナーの定義の仕方について ご説明しましょう。 イベントリスナーを使う スクリプトの手順は この2つです。 まず、イベントリスナーの設定 ということを行います。 何かというと、 「このイベントが起こったら この処理をやってください」という登録です。 使うメソッドは、 addEventListener () そして、「ターゲット」というのは お願いをする相手です。 今回は、ムービークリップシンボルが お願いをする相手になります。 ムービークリップシンボルに対して、 「これこれのイベントが起こったら これをやってください」という、 イベントと関数を addEventListener () の 引数に渡します。 そうしたら、次に、 「これをやってよね」といった 関数を定義します。 この addEventListener () に 登録した関数のことを 「リスナー関数」と呼びます。 ただ、それは呼び名だけで 特別な関数ではありません。 普通に関数を定義すれば結構です。 ただ、1つだけリスナー関数には、 この ( ) の中の引数が渡されます。 一般に イベントオブジェクトと 呼ばれるんですが、 これについては、後でご説明します。 これだけでは、まだちょっと ピンとこないと思いますので、 実際に、ムービークリップシンボルの中の フレームアクションを、 このイベントリスナーの処理に 書き換えてみましょう。 まず、メインタイムラインから 修正します。 scripts のレイヤーの フレームアクションを、 「アクション」パネルを開いて、 スクリプトは消します。 フレームの a のマークが 無くなりました。 完全にスクリプトが無くなってます。 イベントリスナーの仕組みを使えば、 ムービークリップのインスタンスだけで、 完全にパーツ化されて動きます。 いちいち メインタイムラインから 関数を呼び出す処理が必要ありません ということは、 2フレーム必要ないですね。 フレームを縮めましょう。 これは、キーボードから Windows は Ctrl Mac は Command キーを 押しながら、 この2フレーム目の お尻のところに持ってきて、 カーソルが左右の矢印になったら 縮めます。 伸ばしたりもできるんですが、 今回は縮めて1フレームにしてしまいます。

基礎から学ぶActionScript 3.0

このコースではFlashのActionScript 3.0を初めて学ぶ方を対象に、ActionScriptの基礎から実際にプログラミングをするところまで学習していきます。簡単なスクリプトによるオブジェクトの操作の仕方から始まり、変数や関数といったプログラミングの基礎、そしてインタラクティブなコンテンツの作成まで詳しく解説いたします。

6時間30分 (49 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 3,990
発売日:2014年01月16日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。