TOPページ > 記事詳細 :: as2.0でas3.0的イベント実装方法

本文開始▼

« FlashやAjaxコンテンツでもHTML同等のSEO効果が得られる様に!? | メイン

2008年07月23日

as2.0でas3.0的イベント実装方法

いまさらですが、as3.0のイベント設定に使用されているaddEventListenerをas2.0でも使用する方法を紹介します。
addEventListenerはEventDispatcherクラスのメソッドで、as3.0の場合MovieClipクラスはEventDispatcherクラスを継承しているのでaddEventListenerを使うことができるのですが、as2.0では継承していないためデフォルトでは使用できません。EventDispatcherクラスに関する情報があまり出回ってなかったので、自分の場合は習得に手間取りましたが、覚えるべきことは多くないです。

下記のソースはclickイベントをムービークリップに実装してるだけです。
このソースの肝となる部分は最初の2行だけですね。「mx.events.LowLevelEvents;」の部分で

・mouseMove
・mouseDown
・mouseUp
・mouseOver
・mouseOut
・mouseDownSomewhere
・mouseUpSomewhere

以上のイベントが使えるようになります。(UIEventDispatcherクラス単体ではload、unload、keyDown、keyUpイベントしか使えません。ちなみに、UIEventDispatcherクラスはEventDispatcherクラスのサブクラスです。)
「mx.events.UIEventDispatcher.initialize(this);」の部分でムービークリップにEventDispatcherクラスの機能を追加しています。「mx.events.LowLevelEvents;」は「mx.events.UIEventDispatcher.initialize(this);」の前に書く必要がありますので注意。イベントの種類は違いますが、これでas3.0のようにイベントを設定できるようになります。


//ムービークリップ1フレーム目に記述

mx.events.LowLevelEvents;
mx.events.UIEventDispatcher.initialize(this);


addEventListener("mouseDown",this);
addEventListener("mouseUp",this);
addEventListener("mouseOut",this);

function click(evt){
	trace(evt.type);
}

function mouseDown(evt){
	addEventListener("click",this);
}

function mouseUp(evt){
	dispatchEvent({type:"click"});
}

function mouseOut(evt){
	removeEventListener("click",this);
}

トラックバック

このエントリーのトラックバックURL:
http://ks-product.com/mt/mt-tb.cgi/142

コメント (1)

Googleでここに行き着きました。
UIコンポーネントのイベントが取れなくてaddListenerとか、あらゆる苦労をしても、できなかったのですが助かりました。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)





search 検索


Valid CSS!
Valid XHTML 1.0 Transitional

本文終了▲