8には、OnEnterFrameBeaconというクラスがあります。このクラスのOnEnterFrameBeacon.init()というメソッドを呼出すと、MovieClipにリスナーオブジェクトが登録でき,MovieClip.onEnterFrameイベントを受取れるようになります。その場合の利点としては、第1にMovieClip以外のオブジェクトを使ったスクリプトで、MovieClipインスタンスをつくらずにMovieClip.onEnterFrameイベントが受取れることです。第2に、複数のfunction(関数)を組合わせてMovieClip.onEnterFrameハンドラで処理をしたいとき、MovieClipインスタンスをいくつも使いたくないという場合も考えられます。本稿では、第1の場合のサンプルスクリプトをご紹介します。OnEnterFrameBeacon.init()メソッドOnEnterFrameBeacon.init()メソッドは、つぎのように呼出します。mx.transitions.OnEnterFrameBeacon;OnEnterFrameBeacon.init();OnEnterFrameBeaconクラスは、パッケージというディレクトリの中に格納されています。その場合、スクリプトの冒頭でimportステートメントにより、そのパッケージのパスを宣言する必要があります。OnEnterFrameBeaconクラスの場合は、mx.transitions.OnEnterFrameBeaconになります。パッケージパスを宣言したら、後はOnEnterFrameBeacon.init()メソッドを呼出すだけです。このとき、ターゲットのOnEnterFrameBeaconは、クラス名をそのまま指定します(OnEnterFrameBeaconのインスタンスは作成しません)。この2行のステートメントにより、MovieClipクラスにはaddListener()とremoveListenerのふたつのメソッドが追加され、リスナーオブジェクトを登録すればMovieClip.onEnerFrameイベントが受取れるようになります[*1]。リスナーでMovieClip.onEnerFrameイベントを受取る以下のスクリプトは、マウスボタンを押している間、ポインタのxy座標をTextFieldに表示します(図001)。MovieClipインスタンスを用いず、ひとつのリスナーオブジェクトですべての処理を行います(スクリプト001)。図001■マウスを押している間ポインタの座標を表示*画像をクリックすると、サンプルムービーが表示されます。nMouseY].toString();}作成したリスナーオブジェクトoListenerは、Mouseクラスに登録して、マウスイベントを受取ります。Mouse.onMouseDownイベントで、ポインタ座標表示用のTextFieldインスタンスを作成し、MovieClipクラスにリスナーオブジェクトを登録します。リスナーオブジェクトには、MovieClip.onEnterFrameハンドラも設定してあります。ハンドラ内では、TextFieldインスタンスの位置をマウスポインタに追随させるとともに、そのテキストにマウスポインタのxy座標を入力します。マウスボタンを放すと、リスナーオブジェクトに設定したMouse.onMouseUpイベントハンドラが呼出されます。ハンドラ内では、TextFieldインスタンスを消去するとともに、リスナーオブジェクトをMovieClipクラスから削除します。MovieClipインスタンスを使った場合の処理とは異なり、リスナーのMovieClip.onEnterFrameハンドラを削除する必要はありません。MovieClipクラスのリスナーからオブジェクトを削除すれば、MovieClip.onEnterFrameイベントは受取らないからです。(API)」の「例」でその内容を簡単に解説しています。この記事にコメントを書く記事に対するテクニカルな質問はご遠慮ください(利用規約)。StarlingフレームワークのTweenクラスによるアニメーションStarlingフレームワーク1.3が。