flash on 2009-9-12

by hacker_9p8x8mco
♥0 | Line 90 | Modified 2009-09-12 22:49:12 | MIT License
play

ActionScript3 source code

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