« Action Script 3 デビューセミナー | メイン | 現時点での雑感 »

MouseEventにはまる

mixiの日記にもほぼ同じこと書いてますが後々の検索などはこちらに書いた方が良いかなと思うので書いておきます。エントリータグもできたし。

MouseEventにちょっとはまってしまいました。今までのFlashだとonMouseMoveとかonMouseUpとかどのMovieClip に書いてもステージの上というかSWF上であればイベント取れてたんでその感覚でやろうとShapeとかもない空のSpriteクラスにわりあててたら動かない。あれやこれややってたらどうやらインスタンスの上でのみイベントが発生するらしく最初は空だったんでヒット領域がないような状態だったみたい。 今日AS3系のblogをチェックしてたら参考になることがfladdict.netさんのところに書いてありました。
AS3メモ MouseEventについて ~ fladdict.net blog

試したソースはこんな感じ
ちなみに下のソースはダブルのクリックのイベントが何故か取れません。理由は不明。だけどAdobeのサンプルもダブルクリック動いてない気がする(^^;

[追記]
野中さんにコメントで指摘いただいたようにInteractiveObject.doubleClickEnabledプロパティがデフォルトではfalseのようで以下の一文を追加でダブルクリックは動作しました。
mcClass.doubleClickEnabled = true;



package {
import flash.display.*;
import flash.events.*;
public class MouseTest extends Sprite{
public function MouseTest(){
trace("constructe")
var mcClass:MovieClip = new myClass();//ライブラリのMovieClip
mcClass.doubleClickEnabled = true;//追加
mcClass.addEventListener( MouseEvent.MOUSE_UP, upListener );
mcClass.addEventListener( MouseEvent.MOUSE_MOVE, moveListener );
mcClass.addEventListener( MouseEvent.DOUBLE_CLICK, dClickListener );
addChild(mcClass);
}
public function upListener( _event:MouseEvent ){
trace("MOSE_UP ", _event)

}
public function moveListener( _event:MouseEvent ){
trace("MOUSE_MOVE " , _event );
}
public function dClickListener( _event:MouseEvent ){
trace("DOUBLE_CLICK " , _event );

}
}
}


※flaのDocument ClassにMouseTestを設定,ライブラリの絵を書いたMCのclassにmyClassを設定

トラックバック

このエントリーのトラックバックURL:
http://www2.infective.jp/mt/mtdayo-tb.cgi/542

この一覧は、次のエントリーを参照しています: MouseEventにはまる:

» MouseEvent:F-site投稿 from No Reason
先日のエントリーをもう少し簡単にしてF-siteに投稿。最初はDocumentC... [詳しくはこちら]

コメント

> ダブルのクリックのイベントが何故か取れません
_____
InteractiveObject.doubleClickEnabledプロパティの値を、trueに設定する必要があります。

野中さん
>InteractiveObject.doubleClickEnabledプロパティの値を、trueに設定する必要があります。

ありがとうございます!

クラスのコンストラクタのところに以下の一文を入れて動作することを確認しました。
mcClass.doubleClickEnabled = true;

コメントを投稿

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