ActionScript 3.0はじめの一歩

第2回 スクリプトによるアニメーション

この記事を読むのに必要な時間:およそ 2.5 分

イベント処理の削除

スクリプトによるアニメーションは,enterFrameイベントに処理を割り当てることで実現できました。

では,逆にアニメーションを停止するにはどうすればよいのでしょうか。

答えはenterFrameイベントに設定した処理を削除する,ということになります。

イベント処理の削除には次の書式を使います。

オブジェクト.removeEventListener(イベント, 設定した処理名);

これは形式上,addEventListener()メソッドによるイベント処理の設定の"addEventListener"の部分を"removeEventListener"に変更しただけと考えると分かりやすいでしょう。

次のサンプルでは,ボタンインスタンス"start_btn"をクリックすると回転のアニメーションが再生し,ボタンインスタンス"stop_btn"をクリックするとアニメーションが停止するようにします。

サンプル4

01: //ボタンへのclickイベント処理設定
02: start_btn.addEventListener(MouseEvent.CLICK, xStartClick);
03: stop_btn.addEventListener(MouseEvent.CLICK, xStopClick);
04: //Startボタンのclickイベント用の処理
05: function xStartClick(evt) {
06:   //enterFrameイベント処理設定=アニメーション開始
07:   star_mc.addEventListener(Event.ENTER_FRAME, xEnterFrame);
08: }
09: //Startボタンのclickイベント用の処理
10: function xStopClick(evt) {
11:   //enterFrameイベント処理削除=アニメーション停止
12:   star_mc.removeEventListener(Event.ENTER_FRAME, xEnterFrame);
13: }
14: //enterFrameイベント用の処理
15: function xEnterFrame(evt) {
16:   star_mc.rotation += 5;
17: }

図4 ボタンによるアニメーションの再生・停止

図4 ボタンによるアニメーションの再生・停止

enterFrameイベントに限らず,何らかのイベント処理が不要になった場合には削除するのがよいでしょう。

著者プロフィール

林拓也(ハヤシタクヤ)

Flash・Director オーサリングエンジニア,アドビ認定インストラクター,ロクナナワークショップ講師。

各種Webコンテンツ制作や,少人数ハンズオントレーニングから大規模なセミナー講師など幅広く活躍中。各種学校のカリキュラム・教材制作をはじめ,ActionScriptに関する書籍も多数執筆。

URLhttp://67.org/ws/instructor/hayashi.html

著書

ActionScript 3.0の基本がわかる,充実の2日間
林 拓也のプログラミング未経験者向けActionScript 3.0入門講座

■概要

新刊「 速習Webデザイン ActionScript 3.0」をプレゼント!!

Flashの学校 ロクナナワークショップによる,プログラミング未経験の方や初心者の方を対象にしたActionScript 3.0の入門講座が,林 拓也氏を講師に迎え開催されます。

しばしば「難しい」と言われるActionScript 3.0ですが,重要ポイントを理解して正しく攻略すれば,グッと難易度を下げることができます。本講座では,シンプルなサンプルを使って基本事項から学習するため,プログラミング未経験者の方や初心者の方には最適の内容です。
プログラミングなんて絶対無理!っと思っている方,ぜひご参加ください。

■詳細情報
【日程】2008年10月21日(火)22日(水)
【時間】10:00開場 - 16:30閉場(1日4時間、2日間で8時間の講義です)
【場所】東京都渋谷区 「T's 東宝ビル 別館 ホール204」
【定員】30名
【料金】19,800円(2日間、消費税込み、書籍プレゼント)
【協力】アドビシステムズ 株式会社
【主催】株式会社ロクナナ・ロクナナワークショップ
     〒150-0001東京都渋谷区神宮前1-1-12 #203
     Summer Camp 2008 運営事務局
     担当:佐々木・上田
     E-mail:workshop@67.org