アクションの種類

Action Scriptの命令文をアクションといいます。アクションは、フレーム、ボタン、ムービークリップに記述することができます。記述する場所によって、以下の3種類のアクションに分けられます。

フレームアクション
フレームに記述します。フレームが再生されたときに実行されます。
ボタンアクション
ボタンオブジェクトに記述します。ユーザーやオブジェクトによってなんらかの操作が行われた時に実行されます。
ムービークリップアクション
ムービークリップオブジェクトに記述します。ユーザーやオブジェクトによってなんらかの操作が行われた時に実行されます。

記述する際には、記述したいオブジェクトを選択して、「アクション」パネルを開きます。

アクションパネルの使い方

アクションパネルは大きく分けて3つの部分からなります。

アクションパネル

Action Scriptを書く対象(上)
現在選択されている対象が表示されます。下矢印をクリックすると選択して対象を変更できます。
Action Scriptの選択(左)
Action Scriptを選択します。
Acstion Scriptの編集画面(右)
Acsion Scriptを編集する部分です。ノーマルモードとエキスパートモードで使い方が異なります。切り替えボタンによっていつでも2つのモードを切り替えることができますが、エキスパートモードからノーマルモードに切り替えるときには、入力したAction Scriptが文法的に正しいものである必要があります。
ノーマルモード
Action Script選択画面からAcstion Scriptを選択すると、テンプレートが表示され、必要なパラメータを入力します。簡単なAcstion Scriptを手軽に入力するのに適しています。
エキスパートモード
テキストエディタになっています。自由に編集ができます。通常はこちらを使いましょう。

フレームアクション

フレームアクションはタイムラインのキーフレームに記述します。再生ヘッドがキーフレームに到達したときに実行される動作を記述します。フレームが再生されると自動的に実行されるので、フレームの再生がイベントとして扱われるため、特定のイベントハンドラはありません。

Action Script専用のレイヤーを作り、そのレイヤーにフレームアクションを記述すると、後の管理が楽になります。

また、Action Scriptが記述されているキーフレームには、タイムライン上に「a」の文字が表示されます。

例 特定のキーフレームで再生を停止

  1. タイムライン上で再生を停止したいキーフレーム(必要な場合にはレイヤーも)をクリックして選択します。
  2. アクションパネルを開きます。このとき、対象欄でフレームアクションの番号とレイヤーを確認してください。
  3. アクションパネルの「Action Scriptの選択」部分で「アクション」→「ムービーコントロール」と開き、「stop」をダブルクリックします。
stop();
ムービーを再生してみましょう。Action Scriptを設定したキーフレームで再生が停止します。

ムービークリップアクション

ムービークリップインスタンスにonClipEventイベントハンドラを記述します。一般的な記述は以下のようになります。後述のonイベントハンドラを使用することもできます。

onClipEvent(イベント名) {
  実行する処理
}

以下のイベントがあります。

タイムラインの進行によって発生するイベント

load ムービークリップインスタンスがロードされたとき
unload ムービークリップインスタンスがアンロードされたとき
enterFrame フレームが再生されたとき(フレームが停止していても)

ユーザアクションによって発生するイベント

mouseMove マウスが移動したとき
mouseDown ムービー上でマウスの左ボタンが押されたとき
mouseUp ムービー上でマウスの左ボタンを離されたとき
keyDown キーボードのキーが押されたとき
keyUp キーボードのキーが離されたとき
data loadVariables()またはloadMovie()で読み込まれたデータの受信を完了したとき

例 特定のキーフレームが読み込まれたときに処理

  1. 対象とするムービークリップのあるフレームを選択します。
  2. 対象とするムービークリップをクリックして選択します。
  3. アクションパネルを開きます。対象欄でアクションの対象を確認してください。
  4. アクションパネルの「Action Scriptの選択」部分で「アクション」→「ムービークリップ制御」と開き、「onClipEvent」をダブルクリックします。
  5. 選択欄から「enterFrame」を選択します。
  6. 1行目と2行目の間に「this._rotation+=20;」と入力します。
onClipEvent(enterFrame) {
    this._rotation+=20;
}

enterFrame」のイベントが発生した時に、インスタンスのプロパティ「_rotation」の値を20増加します。

このときのthisはムービークリップのインスタンスを示しています。

ムービーを再生してみましょう。ムービークリップが回転します。

ボタンアクション

ボタンインスタンスにイベントハンドラを記述します。一般的な記述は以下のようになります。

on (イベント名) {
    実行する処理
}

以下のイベントがあります。

ユーザーアクションによって発生するイベント

press ボタン上でマウスの左ボタンが押されたとき
release ボタン上でマウスの左ボタンが離されたとき
relaseOutside ボタン上でマウスの左ボタンが押されたまま、ボタン外でマウスの左ボタンが離されたとき
rollOver ボタン上にマウスポインタが乗ったとき
rollOut ボタン上からマウスポインタが外れたとき
dragOver ボタン上でマウスの左ボタンを押したまま、ボタンの外に出て再び戻ったとき
dragOut ボタン上でマウスの左ボタンを押したまま、ボタンの外に出たとき
keyPress キーボードで指定されたキーが押されたとき

例1 ボタンが離されたときに処理(1)〜フレームの再生を再開〜

  1. 対象とするボタンのあるフレームを選択します。
  2. 対象にしたいボタンをクリックして選択します。
  3. アクションパネルを開きます。対象欄でアクションの対象を確認してください。
  4. アクションパネルの「Action Scriptの選択」部分で 「アクション」→「ムービーコントロール」と開き、「on」をダブルクリックします。
  5. 選択欄から「release」を選択します。
  6. 1行目と2行目の間に「this.play();」を入力します。
on(release) {
    this.play();
}

release」イベントが発生した時に、 ムービーの再生を再開します。

このときのthisはボタンではなく、ボタンを配置したオブジェクトを表しています。ムービークリップの場合と異なるので注意してください。

例2 ボタンが離されたときに処理(2)〜ムービークリップの再生を再開〜

準備として、動きのあるムービークリップシンボルを作成し、インスタンス名にtest_mcとつけます(名前は何でも良い)。また、このムービークリップシンボルの最初のフレームに 「stop();」を記述し、再生しないようにしておく。

1.〜5.までは上記と同様。

本文に「test_mc.play();」を入力します。

on(release) {
    test_mc.play();
}

release」イベントが発生した時に、ムービークリップシンボル「test_mc」の再生を始めます。

練習問題

ボタンアクションのイベントの種類を変更して一通り試してみよ。