ActionScript を使う
目次
イベントメソッドについて
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;
};
ボタンインスタンスにイベントメソッドをアタッチする:
- Macromedia Flash MX を起動し、ダウンロードしたファイル event_methods.fla を開きます。
- [ファイル]-[名前を付けて保存] を選び、ファイル名を event_methods_yourname.fla にして保存します。
- [ウィンドウ]-[ライブラリ] を選び、シンボル first_button をステージまでドラッグしてきます。
- プロパティインスペクタで、ボタンインスタンスを myButton と名付けます。
- シンボル first_movieclip を [ライブラリ] からステージへとドラッグします。
- プロパティインスペクタで、ムービークリップインスタンスを ball と名付けます。
- [タイムライン] から Actions レイヤーを選択し、フレーム1を選択します。
- まだ [アクション] パネルが開いていない場合は、[ウィンドウ]-[アクション] を選んで開きます。
[アクション] パネルをエキスパートモードにした状態で、以下のコードをスクリプトペインにコピー&ペーストします:
myButton.onPress = function () { _root.ball._xscale = 200; _root.ball._yscale = 200; };- [制御]-[ムービープレビュー] を選び、ボタンをクリックして ball が大きくなるのを確認します。
- SWF ウィンドウを閉じて作成環境へと戻ります。
- [ファイル]-[保存] を選びます。このファイルはチュートリアルを通じて何度か使用します。
on と onClipEvent のアクションを使って操作するイベントが、あなたが定義したイベントメソッドと対立することはありません。たとえば、ムービーの再生を命令するボタンに 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の使用]-[ムービークリップとボタンの処理] をご覧ください。