ActionScript を使う
目次
関数をイベントメソッドにアサインする
ほとんどの ActionScript メソッドは、コールされた時にそれぞれ特有の働きをします。たとえば、ムービークリップオブジェクトの play メソッドは、[タイムライン] においてプレイヘッドを前に進めます。一方イベントメソッドは、それ独自では何もしない特別なメソッドです。イベントメソッドを使うには、関数を定義しメソッドにアサインする必要があります。
いったんイベントメソッドへのパスを書いた後は、等号記号( = )を使ってそのメソッドへの関数をアサインします。 on アクションや onClipEvent アクションの中にどんなコードでも書くことができるのと同様に、この関数の本文に対してどんなコードでも挿入することが可能です。以下の例は、イベント enterFrame がトリガーされた時にムービークリップを回転させる関数を定義するものです:
box.onEnterFrame = function () {
this._rotation += 2;
};
関数を閉じる中括弧の後にセミコロン ( ; ) を置くのは正しいシンタックスです。なぜなら、このコードは実際には一行で書くことが可能な一つの長いステートメントであるからです。
イベントメソッドに関数をアサインする:
- さきほど保存したファイルを開きます。
- タイムラインで Symbols レイヤーを選択します。
- [ウィンドウ]-[ライブラリ] を選び、second_movieclip シンボルをステージまでドラッグします。
- プロパティインスペクタで、インスタンスに box と名前を付けます。
- タイムラインの Actions レイヤーでフレーム 1 を選択し、[アクション] パネルがまだ開かれていない場合は [ウィンドウ]-[アクション] を選んで開きます。
[アクション] パネルをエキスパートモードにした状態で、以下のコードをスクリプトペインの既にあるコードの下にコピー&ペーストします。
box.onEnterFrame = function () { this._rotation += 2; };イベント enterFrame は、プレイヘッドがフレーム内にエンターするたびにトリガーされます。フレームが一つのムービーでは、プレイヘッドは繰り返し最初のフレームへとエンターし、enterFrame に対して幾度もトリガーします。これによってムービークリップは動き出します。
- [制御]-[ムービープレビュー] を選び、ムーピークリップがグルグルと回転するのを確認してください。
- SWF ウィンドウを閉じて作成環境へ戻ります。
- [ファイル]-[保存] を選択します。
メモ: このチュートリアルでは、オブジェクトに対して直接イベントメソッドをアサインする方法を取上げています。なお、オブジェクトのプロトタイプチェーンに対してイベントメソッドをアサインする方法もあります。これはより高度な手法です。詳細については、[Flash ヘルプ]-[Flash の使用]-[ActionScript 言語について]-[継承の作成]をご覧ください。