Accessibility

Flash チュートリアル

ActionScript を使う


目次

  1. はじめに
  2. イベントメソッドについて
  3. イベントメソッドをコールする
  4. 関数をイベントメソッドにアサインする
  5. 関数の中でキーワード "this" を使う
  6. ムービークリップと一緒にボタンイベントメソッドを使う
  7. Flash ドキュメントでイベントメソッドを使う
  8. 先へ進む

イベントメソッドについて

Macromedia Flash 5 には 2 つのイベント操作用アクション (ハンドラー) がありました。1 つはボタンイベントを操作する on、もう 1 つはムービークリップイベントを操作する onClipEvent です。この 2 つのアクションは [アクション] パネルの中にある [アクション] ツールボックスの [アクション] カテゴリーに置かれています。イベントはパラメータとしてハンドラーに渡され、渡されたイベントはいずれもハンドラー内部でアクションを実行するきっかけとなります。たとえば、myButton というボタンインスタンスに付随している以下のコードは、ボタンがクリックされるとイベント [press] が起動され、ムービークリップ ball を 200% に拡大します:

on (press){
	_root.ball._xscale = 200;
	_root.ball._yscale = 200;
};

Macromedia Flash MX では、イベントメソッドを使ってイベントを操作することも可能です。スクリプトが皆さんのドキュメントのどこにあったとしても、そのスクリプトの中にあるボタンインスタンスやムービークリップインスタンスを始めとするオブジェクトからイベントメソッドを呼び出すことができます。あるオブジェクトが複数のイベントメソッドを持っている場合、イベントメソッドは [アクション] ツールボックスの [オブジェクト] カテゴリーにある、各オブジェクトフォルダの [イベント] フォルダの中に置かれています。他のメソッドをコールするのと同様にイベントメソッドを呼び出し、次に、イベント発生時にしなくてはいけないことを Macromedia Flash に教えるメソッドに対して関数をアサインします。たとえば、以下に挙げたメイン [タイムライン] のフレーム1のコードは、myButton がクリックされたときにオブジェクト [ball] を拡大するものです。

myButton.onPress = function () {
	_root.ball._xscale = 200;
	_root.ball._yscale = 200;
};

ボタンインスタンスにイベントメソッドをアタッチする:

  1. Macromedia Flash MX を起動し、ダウンロードしたファイル event_methods.fla を開きます。
  2. [ファイル]-[名前を付けて保存] を選び、ファイル名を event_methods_yourname.fla にして保存します。
  3. [ウィンドウ]-[ライブラリ] を選び、シンボル first_button をステージまでドラッグしてきます。
  4. プロパティインスペクタで、ボタンインスタンスを myButton と名付けます。
  5. シンボル first_movieclip を [ライブラリ] からステージへとドラッグします。
  6. プロパティインスペクタで、ムービークリップインスタンスを ball と名付けます。
  7. [タイムライン] から Actions レイヤーを選択し、フレーム1を選択します。
  8. まだ [アクション] パネルが開いていない場合は、[ウィンドウ]-[アクション] を選んで開きます。
  9. [アクション] パネルをエキスパートモードにした状態で、以下のコードをスクリプトペインにコピー&ペーストします:

    myButton.onPress = function () {
    	_root.ball._xscale = 200;
    	_root.ball._yscale = 200;
    };
  10. [制御]-[ムービープレビュー] を選び、ボタンをクリックして ball が大きくなるのを確認します。
  11. SWF ウィンドウを閉じて作成環境へと戻ります。
  12. [ファイル]-[保存] を選びます。このファイルはチュートリアルを通じて何度か使用します。

ononClipEvent のアクションを使って操作するイベントが、あなたが定義したイベントメソッドと対立することはありません。たとえば、ムービーの再生を命令するボタンに on (press) アクションをアタッチし、さらに、ボタンがクリックされるとステージ上のオブジェクトが回転するよう命令する onPress イベントの関数をこの同じボタンに定義した場合、ムービーの再生とオブジェクトの回転はどちらも実行されます。イベントアクションとイベントメソッドのどちらを用いるかは、単に好みの問題であり、両者を一緒に使うことももちろん可能です。

以下は、ムービークリップイベントとそれに対応するムービークリップイベントメソッドのリストです:

イベント イベントメソッド
onClipEvent (load) onLoad
onClipEvent (unload) onUnload
onClipEvent (enterFrame) onEnterFrame
onClipEvent (mouseDown) onMouseDown
onClipEvent (mouseUp) onMouseUp
onClipEvent (mouseMove) onMouseMove
onClipEvent (keyDown) onKeyDown
onClipEvent (keyUp) onKeyUp
onClipEvent (data) onData

以下は、ボタンイベントとそれに対応するボタンイベントメソッドのリストです。

イベント イベントメソッド
on (press) onPress
on (release) onRelease
on (releaseOutside) onReleaseOutside
on (rollOver) onRollOver
on (rollOut) onRollOut
on (dragOver) onDragOver
on (dragOut) onDragOut
on (keyPress "...") onKeyDown, onKeyUp

なお、ムービークリップとボタンイベントを併せて使うことにより、ムービークリップとボタンの両方のパワーを備えたムービークリップを作成することも可能です。このチュートリアルでは、ボタンムービークリップをいくつか作成していきます。ボタンムービークリップの作成に関するより詳細は、[Flash ヘルプ]-[Flashの使用]-[ムービークリップとボタンの処理] をご覧ください。