« 1.1 フレームアクション | メイン | 1.3 シンボルのインスタンスの参照 »

1.2 新しくなったイベント処理

■ムービークリップインスタンスのクリック
ActionScript3.0からイベント処理の方法が大きく変わりました。イベント処理については詳しくはChapter5で説明しますが、ここで簡単な例をいくつか紹介しておきます。(イベント処理→p.??)
たとえば、インスタンスのクリックはActionScript2.0では次のようにonPressイベントハンドラを使って処理することができます。
例:インスタンスmy_mcのクリック(ActionScript2.0)
my_mc.onPress = function() {
	trace("ありがとう。");
};

これと同じ処理をActionScript3.0ではイベントリスナーを使って次のように書きます。

[:sample:] click-1.fla
例:インスタンスmy_mcのクリック(ActionScript3.0)
my_mc.addEventListener(MouseEvent.CLICK, onClick);
function onClick(event:MouseEvent):void {
	trace("ありがとう。");
}

fig01-01-02 インスタンスのクリックで出力します。

このように、ムービークリップインスタンスmy_mcがマウスクリックによってMouseEvent.CLICKイベントを受けたとき、onClickメソッドが呼び出されるように設定します。onClickメソッドでは引数のeventを利用しませんが、引数として送られてくる情報を利用しない場合にも引数を受けるための変数を書いておかないとエラーになります。

■フレーム再生のイベント
次のスクリプトはムービークリップインスタンスが連続して受けるEvent.ENTER_FRAMEイベントに対してイベントリスナー登録した例です。box1_mcとbox2_mcのインスタンスは、どちらもonEnterframeメソッドを繰り返し実行して回転を続けます。

fig01-01-03 フレーム再生イベントでインスタンスが回転します。

[:sample:] enterframe.fla
例:フレーム再生のイベントを受ける
box1_mc.addEventListener(Event.ENTER_FRAME, onRotaMe);
box2_mc.addEventListener(Event.ENTER_FRAME, onRotaMe);
//フレーム再生イベントで連続的に呼び出される
function onRotaMe(event:Event):void {
	var targetMC:MovieClip = event.target as MovieClip;
	//インスタンスの回転
	targetMC.rotation += 10;
}

fig01-01-04 ステージのインスタンスにはbox1_mc、box2_mcのインスタンス名を付けておきます。

■フレーム再生のナビゲーション
次のスクリプトはボタンのクリックでフレーム移動を行うサンプルです。Beerボタンをクリックするとbeerレベルへ移動し、Cakeボタンをクリックするとcakeラベルへ移動します。Beerボタン、Cakeボタンにはそれぞれbeer_btn、cake_btnのインスタンス名が付けてあります。

fig01-01-05 ボタンのクリックでbeerフレームとcakeフレームを移動します。

[:sample:] navigation.fla
例:フレーム移動を行うボタンを作る
stop();
beer_btn.addEventListener(MouseEvent.CLICK, goBeer);
cake_btn.addEventListener(MouseEvent.CLICK, goCake);
//フレームナビゲーション
function goBeer(event:MouseEvent):void{
	gotoAndStop("beer");
}
function goCake(event:MouseEvent):void{
	gotoAndStop("cake");
}

fig01-01-06 タイムラインには"beer"、"cake"のフレームラベル名が付けてあります。Beerボタン、Cakeボタンにはbeer_btn、cake_btnのインスタンス名が付けてあります。

■ムービークリップの再生ボタンと停止ボタン
次の例はステージにあるインスタンスの再生と停止を切り替えるスクリプトです。start_btnをクリックするとcounter_mcインスタンスが再生をはじめて0〜9の数字を繰り返しカウントアップします。stop_btnボタンをクリックすると再生が止まります。

fig01-01-07 カウンターのスタート・ストップをボタンのクリックで行えます。

[:sample:] startstop.fla
例:ムービークリップの再生ボタン、停止ボタン
counter_mc.stop();
start_btn.addEventListener(MouseEvent.CLICK, startMC);
stop_btn.addEventListener(MouseEvent.CLICK, stopMC);
//Start
function startMC(event:MouseEvent):void {
	counter_mc.play();
}
//Stop
function stopMC(event:MouseEvent):void {
	counter_mc.stop();
}

fig01-01-08 カウンターにはcounter_mc、スタート、ストップのボタンにはstart_btn、stop_btnのインスタンス名を付けます。

About

2007年4月20日 20:00に投稿されたエントリーのページです。

ひとつ前の投稿は「1.1 フレームアクション」です。

次の投稿は「1.3 シンボルのインスタンスの参照」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。