イナヅマTVログ

ActionScript 2, mx ライブラリ使用メモ mx.transitions.OnEnterFrameBeacon

| 0件のコメント

ActionScript 2でfpsごとの処理をする時は onEnterFrame を使います。
問題はonEnterFrameMovieClip でしか有効にならないことと、たくさんの MovieClip インスタンスで onEnterFrame を使うと実行スピードが落ちてしまい、コマ落ち状態に陥りやすくなること。

mx.transitions.OnEnterFrameBeacon を使えば MovieClip を継承していないクラス内でも onEnterFrame が使えるようになります。

mx.transitions.OnEnterFrameBeacon_rootの深度:9876へcreateEmptyMovieClipで空のMovieClipを作成し、その MovieClipのonEnterFrame 関数から_global.MovieClip.broadcastMessage ("onEnterFrame")を実行します。

import mx.transitions.OnEnterFrameBeacon;
 
class BeaconTest {
	function BeaconTest () {
		OnEnterFrameBeacon.init();
		MovieClip.addListener(this);
	}
	private function onEnterFrame () {
	// do something
	}
}

onEnterFrame が必要なインスタンスは MovieClip.addListener(listener:Object) する。

var listener:Object = {};
listener.onEnterFrame = function () {
};
 
MovieClip.addListener(listener);

mx.events.EventDispatcher と組み合わせて使う。
などで、複数の onEnterFrame 関数を作らずにたったひとつの onEnterFrame で処理することが可能になります。

コメントを残す

必須欄は * がついています