forked from: Mainオブジェクトがマウスイベントを受け取らない?
Mainオブジェクトがマウスイベントを受け取らない理由が知りたいです・・・。
* 良かったらコメントかforkで教えてもらえないでしょうか。
Mainオブジェクトがマウスイベントを受け取らない理由はいまいちわかりませんでした。
とりあえずわかったのは
Mainの子のイベント や
dispatchEvent(new MouseEvent("click"))で直接イベントを呼び出した場合は反応する。
Mainの形がおかしいわけじゃない。
つまりメインのwidth,heightはちゃんと440になっていて、
hitTestPoint(420,420,true)などもtrueを返す。
/**
* Copyright shohei909 ( http://wonderfl.net/user/shohei909 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/gPoj
*/
// forked from kihon's Mainオブジェクトがマウスイベントを受け取らない?
/*
* Mainオブジェクトがマウスイベントを受け取らない理由が知りたいです・・・。
* 良かったらコメントかforkで教えてもらえないでしょうか。
*/
/*
Mainオブジェクトがマウスイベントを受け取らない理由はいまいちわかりませんでした。
とりあえずわかったのは
Mainの子のイベント や
dispatchEvent(new MouseEvent("click"))で直接イベントを呼び出した場合は反応する。
Mainの形がおかしいわけじゃない。
つまりメインのwidth,heightはちゃんと440になっていて、
hitTestPoint(420,420,true)などもtrueを返す。
*/
package
{
import flash.display.Sprite;
import flash.events.*;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.geom.Point;
import flash.display.MovieClip;
public class Main extends Sprite
{
private var tf:TextField;
public function Main()
{
// 何か描画しておく
graphics.beginFill(0x30);
graphics.drawRect(0, 0, 440, 440);
graphics.endFill();
var child:Sprite = new Sprite;
child.graphics.beginFill(0xFFCCDD);
child.graphics.drawRect(0, 0, 400, 400);
child.graphics.endFill();
addChild(child);
// 確認用テキスト
tf = new TextField();
tf.defaultTextFormat = new TextFormat("", 12, 0x0, true);
tf.autoSize = "left";
tf.y = 200;
child.addChild(tf);
// MainオブジェクトにMouseEvent.CLICKイベントを受け取らせるように設定する
addEventListener(MouseEvent.CLICK, onMouseClick);
//これを入れるとonMouseClickは呼び出される。
//dispatchEvent(new MouseEvent("click"));
//hitTestはtrueを返す
tf.appendText( "\nhitTestPoint: " + hitTestPoint(420,420,false));
//getObjectsUnderPointでもMainは確認できる
tf.appendText( "\ngetObjectsUnderPoint: " + stage.getObjectsUnderPoint(new Point(420,420)));
}
// これが何故か呼ばれない(Mainオブジェクトがマウスイベント発行元にならない)
private function onMouseClick(event:MouseEvent):void
{
tf.text = "Mainがマウスイベントを受け取りました。"+Math.random();
}
}
}