基礎から学ぶActionScript 3.0

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

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
イベントリスナーを設定するには、インスタンスにイベントを指定して、実行すべき処理を関数で定義します。
講師:
07:05

字幕

ムービークリップシンボルの フレームアクションを イベントリスナーを使った形に 書き換えますので インスタンスをダブルクリックして シンボルの編集のモードに入ります シーン 1 の横に シンボルの名前が出ました 現在シンボルを開けている状態です では スクリプトを書き換えましょう スクリプトのレイヤーのキーフレーム 右クリックで アクションパネルを開きます ムービークリップのフレームアクションに addEventListener () の メソッドの呼び出しを加えます 1 行目 お願いする相手は このシンボル自身です ムービークリップ自身です 自分自身を参照するときには this. という風に打ちます this. は省略することも できるんですが 今回は this. 打った方がお得です なぜかと言うと ドットを打ったときに コードヒントが出てきます addEventListener () の addE まで入れると addEventListener () というメソッドが ハイライトします 長いですし Listener というのは タイプミスしがちですので this. を使った方がお得ですね そして イベントです イベントは 今回は アニメーションを行いたい アニメーションを行うには どういう処理が 内部的に 行われているかというと 画面の書き換えが 頻繁に行われます 具体的には フレームレートです 現在 12fps の設定になっていますので 1秒間に 12 回 画面の書き換えが行われます そのときに処理をしてほしいわけです その処理は Event.ENTER_FRAME というものです でも コードヒントが出てますので Event. あ 切れてしまいましたね Event. もう 1 回入れてもダメですか ENTER_FRAME と 切れてしまったんですが 切れないようにするには もう 1 回 丸括弧から始まって Ctrl+Space Mac の場合には Command+Space を打ちます 出てきます Event. と打つと 消えてしまうので 下向きの矢印を押して 選ぶ という方法があります Event.ENTER_FRAME もちろん タイプしてしまっても結構です ただ タイプミスが怖い場合には 下向き矢印で入れてしまいましょう Enter キーで入ります 1 行目に何か入りましたが これは気にしないでください 消しても問題は起こりませんが 放っておいても大丈夫です そして カンマを打って 実行したい関数ですが リスナー関数 この関数ですね xRotate を実行してほしいと 注意は xRotate 括弧 括弧 とは しないでください 理由は後で申し上げます 括弧閉じます これで 9 割 9 分出来上がりました なぜ 9 割 9 分なのか ムービープレビューで確かめましょう 制御メニューから ムービープレビューです エラーが出てますね そして 秒針が動きません エラーのために スクリプトが実行されていません SWF のウィンドウは閉じましょう ちょっとパネルが後ろ見にくいので アクションパネルも閉じます エラーが出力パネルに 表示されました スクロールサムが出てますので 上の方にもエラーがあるんですが これは 同じエラーが何度も何度も 繰り返し出ています 実はこれは ENTER_FRAME のたびに 出されているエラーです そして 日本語を読むと よく分からないんですが xRotate () の引数の数が 一致していません ここまでは良いんですけど 0 が必要ですが 1 が指定されました ちょっと意味が分からないですね アクションパネルを見て ご説明します タイムラインを表示して scripts のレイヤーの 今シンボルを開いている状態ですから キーフレームを右クリックして ムービークリップシンボルの中の フレームアクションを確認します xRotate () が問題だ という風に言われました これが問題です 確かにそうなんですが 引数がどうのこうの というのは この括弧の中のことを意味しています イベントリスナーの説明をするときに ここに eventObject と いうものがあります と言いました 今実は その eventObject を ここに書いていないんですね eventObject というのは addEventListener () の メソッドを使って イベントに対して リスナーを登録したとき そのリスナー関数が 呼び出されるときに 必ず 1 つ渡されるものがあるんですね それ一般に eventObject と呼んでいます で このスクリプトの中では その eventObject 特に必要はないんですが 受け取りの拒否ができない というのが ActionScript 3.0 です 受取人を ここに 置かなければなりません 受取人って何かというと 変数です 変数をここに定めればいいです どういう名前を付けてもいいんですが ここでは eventObject という物なんで それらしい名前として eventObject と付けます 人によっては e だけで済ましたりとか evt で済ませる人もいます どういう名前でも結構です そして 変数なんですけれども var は付けません この関数の中で 関数の引数 括弧の中で 変数を宣言するときには var 宣言なしに 変数名のみ直接打ちます そして 変数には データ型を指定します これは var で宣言する場合と 同じですね コロンで宣言し ここで Event とします コードヒントが出ましたので Event ハイライトしてますね じゃあ Enter キーです ここに指定するデータ型というのは 実は ここに出てる 頭の Event と 同じものを付けます 指定するイベントには Event. 以外にも 例えば MouseEvent. とかあります MouseEvent. のイベントを 指定した場合には ここには MouseEvent という風に打ちます つまり こことここは 常に一致するということです まあ そういう約束事だと 覚えていただいて構いません これで完成しました アクションパネルは 一旦閉じて ムービープレビューを 確かめてみましょう 制御メニューから ムービープレビューです 今度はちゃんと針が 1 秒刻みで動き出しました そして 先ほどメインタイムラインの フレームアクションは全て消しました また メインタイムラインのフレーム数は 1 フレームになっています つまり メインタイムラインは ただ単に 1 フレーム存在するだけ という役割になっていて スクリプトの処理 このアニメーションを行うスクリプトは 全てこのシンボルの中に 書かれています つまりこれで 秒針のシンボルが 完全に パーツ化された 部品化された ということです SWF のウィンドウを閉じましょう イベントリスナーの使い方について おさらいをします 先ほど このご説明をしたとき ただ単に 説明だけでは 分かりにくかったかもしれません でも今 スクリプトを書いてみたので イメージが湧くのではないでしょうか まず 第 1 ステップとして イベントにリスナー関数を登録します 登録の仕方は お願いするインスタンス 今回は針のムービークリップでした それに対して addEventListener () というメソッドで 括弧の中の引数には このイベントが起こったら アニメーションの場合は 描画が更新されたら ですので Event.ENTER_FRAME でした そうしたら この関数を 実行してください という関数を 丸括弧は付けないで 指定します リスナー関数の定義の仕方は 普通の関数と 基本的に同じなんですが 1 つ違うのは eventObject というものを 指定しなければいけません これを指定しないと 怒られましたね そして データ型は イベントに指定した イベントの頭の 今回は Event でしたけれども その場合には Event という データ型を指定します あとの内容については 普通の関数と異なりません イベントリスナーを使ったおかげで ムービークリップシンボルが 完全に 1 つのパーツ 部品になりました ちょっと確認してみましょう このインスタンスを 1 回削除します delete です メインタイムラインには 何も無くなりました 白い空っぽのフレームしかありません では ライブラリから ムービークリップシンボルを ポンと ドラッグして置きます そして ムービープレビューを 確認しましょう 制御メニューから ムービープレビューです パーツ化されましたので ただ単に ライブラリから ポンと置いてしまえば 決められた動きが行われます 以上が イベントリスナーと その使い方のご説明でした

基礎から学ぶActionScript 3.0

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

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

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

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

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