Action Scriptの命令文をアクションといいます。アクションは、フレーム、ボタン、ムービークリップに記述することができます。記述する場所によって、以下の3種類のアクションに分けられます。
記述する際には、記述したいオブジェクトを選択して、「アクション」パネルを開きます。
アクションパネルは大きく分けて3つの部分からなります。
フレームアクションはタイムラインのキーフレームに記述します。再生ヘッドがキーフレームに到達したときに実行される動作を記述します。フレームが再生されると自動的に実行されるので、フレームの再生がイベントとして扱われるため、特定のイベントハンドラはありません。
Action Script専用のレイヤーを作り、そのレイヤーにフレームアクションを記述すると、後の管理が楽になります。
また、Action Scriptが記述されているキーフレームには、タイムライン上に「a」の文字が表示されます。
stop();ムービーを再生してみましょう。Action Scriptを設定したキーフレームで再生が停止します。
ムービークリップインスタンスにonClipEventイベントハンドラを記述します。一般的な記述は以下のようになります。後述のonイベントハンドラを使用することもできます。
onClipEvent(イベント名
) {実行する処理
}
以下のイベントがあります。
load | ムービークリップインスタンスがロードされたとき |
---|---|
unload | ムービークリップインスタンスがアンロードされたとき |
enterFrame | フレームが再生されたとき(フレームが停止していても) |
mouseMove | マウスが移動したとき |
---|---|
mouseDown | ムービー上でマウスの左ボタンが押されたとき |
mouseUp | ムービー上でマウスの左ボタンを離されたとき |
keyDown | キーボードのキーが押されたとき |
keyUp | キーボードのキーが離されたとき |
data | loadVariables()またはloadMovie()で読み込まれたデータの受信を完了したとき |
onClipEvent(enterFrame) { this._rotation+=20; }
「enterFrame」のイベントが発生した時に、インスタンスのプロパティ「_rotation」の値を20増加します。
このときのthisはムービークリップのインスタンスを示しています。
ムービーを再生してみましょう。ムービークリップが回転します。ボタンインスタンスにイベントハンドラを記述します。一般的な記述は以下のようになります。
on (イベント名
) {実行する処理
}
以下のイベントがあります。
press | ボタン上でマウスの左ボタンが押されたとき |
---|---|
release | ボタン上でマウスの左ボタンが離されたとき |
relaseOutside | ボタン上でマウスの左ボタンが押されたまま、ボタン外でマウスの左ボタンが離されたとき |
rollOver | ボタン上にマウスポインタが乗ったとき |
rollOut | ボタン上からマウスポインタが外れたとき |
dragOver | ボタン上でマウスの左ボタンを押したまま、ボタンの外に出て再び戻ったとき |
dragOut | ボタン上でマウスの左ボタンを押したまま、ボタンの外に出たとき |
keyPress | キーボードで指定されたキーが押されたとき |
on(release) { this.play(); }
「release」イベントが発生した時に、 ムービーの再生を再開します。
このときのthisはボタンではなく、ボタンを配置したオブジェクトを表しています。ムービークリップの場合と異なるので注意してください。
準備として、動きのあるムービークリップシンボルを作成し、インスタンス名にtest_mcとつけます(名前は何でも良い)。また、このムービークリップシンボルの最初のフレームに 「stop();」を記述し、再生しないようにしておく。
1.〜5.までは上記と同様。
本文に「test_mc.play();」を入力します。
on(release) { test_mc.play(); }
「release」イベントが発生した時に、ムービークリップシンボル「test_mc」の再生を始めます。
ボタンアクションのイベントの種類を変更して一通り試してみよ。
Programming Laboratory (Shio seminar)