/**
* Copyright hacker_9p8x8mco ( http://wonderfl.net/user/hacker_9p8x8mco )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/6zJ4
*/
package
{
import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.display.Stage;
import flash.events.EventPhase;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
[SWF(width="800",height="300",frameRate="24")]
public class DomTest extends Sprite
{
private var outTf:TextField;
public function DomTest()
{
var sp1 :Sprite = addChild(createRectSprite("sp1",30,30,240,240,0xFF0000)) as Sprite;
var sp1_1:Sprite = sp1.addChild(createRectSprite("sp1_1", 30,30,75,180,0x00FF00)) as Sprite;
var sp1_2:Sprite = sp1.addChild(createRectSprite("sp1_2",135,30,75,180,0x0000FF)) as Sprite;
var sp1_1_1:Sprite = sp1_1.addChild(createRectSprite("sp1_1_1", 10,30,55,120,0xFFCC00)) as Sprite;
var sp1_2_1:Sprite = sp1_2.addChild(createRectSprite("sp1_2_1", 10,30,55, 50,0x00FFCC)) as Sprite;
var sp1_2_2:Sprite = sp1_2.addChild(createRectSprite("sp1_2_2", 10,95,55, 55,0xCC00FF)) as Sprite;
outTf = addChild(new TextField()) as TextField;
outTf.autoSize = TextFieldAutoSize.LEFT;
outTf.multiline = true;
outTf.x = 300;
outTf.mouseEnabled = false;
// �L���v�`���[�t�F�[�Y�C�x���g�ݒ�
stage.addEventListener(MouseEvent.CLICK,clickClearTextHandler,true,1);
stage.addEventListener(MouseEvent.CLICK,clickHandler,true);
this.addEventListener(MouseEvent.CLICK,clickHandler,true);
sp1.addEventListener(MouseEvent.CLICK,clickHandler,true);
sp1_1.addEventListener(MouseEvent.CLICK,clickHandler,true);
sp1_2.addEventListener(MouseEvent.CLICK,clickHandler,true);
sp1_1_1.addEventListener(MouseEvent.CLICK,clickHandler,true);
sp1_2_1.addEventListener(MouseEvent.CLICK,clickHandler,true);
sp1_2_2.addEventListener(MouseEvent.CLICK,clickHandler,true);
// �o�u�����O�t�F�[�Y�C�x���g�ݒ�
stage.addEventListener(MouseEvent.CLICK,clickClearTextHandler,false,1);
stage.addEventListener(MouseEvent.CLICK,clickHandler,false);
this.addEventListener(MouseEvent.CLICK,clickHandler,false);
sp1.addEventListener(MouseEvent.CLICK,clickHandler,false);
sp1_1.addEventListener(MouseEvent.CLICK,clickHandler,false);
sp1_2.addEventListener(MouseEvent.CLICK,clickHandler,false);
sp1_1_1.addEventListener(MouseEvent.CLICK,clickHandler,false);
sp1_2_1.addEventListener(MouseEvent.CLICK,clickHandler,false);
sp1_2_2.addEventListener(MouseEvent.CLICK,clickHandler,false);
}
private function createRectSprite(
name:String
,x:Number
,y:Number
,width:Number
,height:Number
,color:uint):Sprite
{
var sp:Sprite = new Sprite();
sp.x = x;
sp.y = y;
sp.graphics.beginFill(color);
sp.graphics.drawRect(0,0,width,height);
sp.name = name;
var tf:TextField = sp.addChild(new TextField()) as TextField;
tf.autoSize = TextFieldAutoSize.LEFT;
tf.text = name;
tf.mouseEnabled = false;
return sp;
}
private function clickClearTextHandler(event:MouseEvent):void
{
switch(event.eventPhase){
case EventPhase.CAPTURING_PHASE:
case EventPhase.AT_TARGET :
outTf.text = "";
}
}
private function clickHandler(event:MouseEvent):void
{
var target:DisplayObject = event.target as DisplayObject;
var targetName:String = target as Stage?"stage":target.name;
var phase:String = "";
switch(event.eventPhase){
case EventPhase.CAPTURING_PHASE:phase="capturing_phase";break;
case EventPhase.AT_TARGET :phase="target_phase" ;break;
case EventPhase.BUBBLING_PHASE :phase="bubbling_phase" ;break;
}
var currentTarget:DisplayObject = event.currentTarget as DisplayObject;
var currentTargetName:String = currentTarget as Stage?"stage":currentTarget.name;
var string:String = "[target]"+targetName+",[phase]"+phase+",[currentTarget]"+currentTargetName+"\n";
outTf.appendText(string);
}
}
}