Blog.Ks-Product.com

初音ミクの消失PV(特別編集版)が初音ミクVISION(DVD)に収録されます!詳しくはこちら! 設定不要!プリロード機能付きロールオーバープラグイン jquery.automaticRollover 有名動画サイトの動画の埋め込みが簡単に行える! jquery.createvideo

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);
}

コメント(1)

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

コメントを投稿する

※投稿されたコメントは管理人が承認するまで反映されません。
またHTMLタグはご利用できません。コメント上にHTMLタグを表示させたい場合は全角でご入力ください。

お名前
URL
コメント
名前:
kakeru ( twitter
職業:
フロントエンドエンジニア
生年月日:
1983年4月19日

HTML、CSS、JavaScript、ActionScript、デザイン、映像制作(After Effects、CINEMA 4D)で遊んでます。
最近はjQueryを使ったプログラミングに色んな意味ではまってます。ライブラリ作ってます。

好きなK-POPはf(x)、Brown eyed girls、4minute、B2ST、2PM、KARA、SNSD、Sunny hillということで、K-POPの話題を中心に発信中!

お問い合わせはこちらからどうぞ。
kakeru[at]ks-product.com
([at]を@に置き換えてください)