In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

flash on 2010-8-29

위치 조절되고, 크기조절되는 원. 
중심부 드레그 : 위치조절
테두리 드래그 ; 크기조절 
자식에게 전달되는 이벤트는 부모가 받을수있으므로,
본소스에서 사용된(자식이 별도의 이벤트를전달해주는)방식은
사실, 불필요한 요소입니다.  
이벤트 전달 순서 : capture->target->bubble 관련 정보를 참조할것.
Get Adobe Flash player
by sixgen 08 Oct 2010
    Embed
/**
 * Copyright sixgen ( http://wonderfl.net/user/sixgen )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/6n9N
 */

package {
    
    var asdf:uint
    // 위치 조절되고, 크기조절되는 원. 
    // 중심부 드레그 : 위치조절
    // 테두리 드래그 ; 크기조절 
    
    // 자식에게 전달되는 이벤트는 부모가 받을수있으므로,
    // 본소스에서 사용된(자식이 별도의 이벤트를전달해주는)방식은
    // 사실, 불필요한 요소입니다.  
    // 이벤트 전달 순서 : capture->target->bubble 관련 정보를 참조할것.
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.events.*;
    
    public class FlashTest2 extends Sprite {
        public var canvas:Canvas2D;
        public var t1:TextField;
        public var circleWg:Wiget;
        public var circleWg2:Wiget;
                 
        public function FlashTest2() {
            // write as3 code here..
            canvas = new Canvas2D;
           addChild(canvas);
            
            canvas.x = 10;
            canvas.y = 10;
            
            
            circleWg = new Wiget;
            canvas.addChild( circleWg);
            circleWg.x = 100;
            circleWg.y = 100;
                       
             circleWg2 = new Wiget;
            canvas.addChild( circleWg2);
            circleWg2.x =200;
            circleWg2.y = 140;                  
            
           // var canvass:Canvas2D = new Canvas2D(); 
           // canvass.addChild(canvas);
           // addChild(canvass);
             canvas.rotationX = -40;    
            
             
       }
       

    }
}
import flash.display.AVM1Movie;
import flash.display.Shape;

import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.display.Sprite;
import flash.events.*;

class Wiget extends Sprite{
    public var shape:Sprite;
    public var handleMove:Sprite;    //
    public var handleSize:Sprite;    //
    public var t:TextField;

    public var size:Number = 50;

    
    public function Wiget()
    {
        t = new TextField();
        t.autoSize = TextFieldAutoSize.CENTER;
        t.selectable = false;
        t.text = "text Label한글";
        addChild(t);
        //t.y = -70;
                
       shape = new Sprite();
       addChild(shape);
       
        handleSize = new Sprite();
        addChild(handleSize);        
              
       handleMove = new Sprite();
       addChild(handleMove);        
     
       //테두리영역 
       handleMove.addEventListener( MouseEvent.MOUSE_DOWN, onDownCenter);       
       handleSize.addEventListener( MouseEvent.MOUSE_DOWN, onDownOutLine);      
       addEventListener( MouseEvent.MOUSE_UP, onRelease);        
      addEventListener( MouseEvent.MOUSE_OUT, onRelease);   
       
       
        reDraw();
    }
   
   
   public function reDraw(e:Event = null):void
   {
       //redraw shape
       shape.graphics.clear();
       handleSize.graphics.clear();
       handleMove.graphics.clear();
       
       var outlineThickness:Number = 4;
       shape.graphics.beginFill( 0x113355, 0.5); 
       shape.graphics.lineStyle( outlineThickness, 0xffffff, 1, false);
       shape.graphics.drawCircle(0,0, size );
        
        
       handleSize.graphics.beginFill(0xffffff, 0);
       handleSize.graphics.drawCircle( 0, 0, size + outlineThickness /2);    
              
       handleMove.graphics.beginFill(0x113355, 0); 
       handleMove.graphics.drawCircle( 0, 0, size - outlineThickness);
       
       t.x = -(t.width / 2);       
       t.y = size + 3;
           
   }
    
   private function mouseDragFollower(e:MouseEvent):void
   {
       x = this.parent.mouseX;
       y = this.parent.mouseY;  
   }

    
    
   private function onDownCenter(e:MouseEvent):void
   {
       t.text = "moving"; 
       //startDrag();
       addEventListener( MouseEvent.MOUSE_MOVE , mouseDragFollower);
       parent.dispatchEvent( new WigetEvent( WigetEvent.MOVE, this)); 
   }
   private function onDownOutLine(e:MouseEvent):void
   {
       t.text = "OutLine pressed";

       //시작점의 r까지의깊이
      // d0 = size - Math.sqrt( cx * cx + cy * cy);
       //t.appendText( String(parent) );    
       
       parent.dispatchEvent( new WigetEvent( WigetEvent.RESIZE, this));
   }
   
   
   private function onRelease(e:MouseEvent):void
   {
       t.text = "";   
       //stopDrag(); 
        removeEventListener( MouseEvent.MOUSE_MOVE , mouseDragFollower);
   }
       
       

}

class Canvas2D extends Sprite{
    private var t:TextField;
    public var currentWg:Wiget;
    
    public var cx:Number;    //drag시작점
    public var cy:Number;
    private var d0:Number;    
        
    public function Canvas2D()
    {
        //사각형
        this.graphics.beginFill(0xcccccc,1);
        this.graphics.drawRect(0,0,400,400);
        this.graphics.endFill();
        
        t = new TextField();
        t.text = "hello";
        addChild(t);
            
        addEventListener( MouseEvent.MOUSE_UP, onRelease);        
       addEventListener( MouseEvent.ROLL_OUT, onRelease);              
        addEventListener( WigetEvent.RESIZE, startResize);
        addEventListener( WigetEvent.MOVE, onWigetMoveHandler);        
    } 
    
   private function onWigetMoveHandler(e:WigetEvent):void
   {
       addChild( e.wiget);
   }

   private function onRelease(e:MouseEvent):void 
   {
        t.text = "";
        removeEventListener(MouseEvent.MOUSE_MOVE, resizeHandler);
   }
       
    private function startResize(e:WigetEvent):void
    {
        addChild( e.wiget);  
        
        t.text = "resizing: "+ String(e.wiget.name);
        currentWg = e.wiget; 
                
        cx = currentWg.x;
        cy = currentWg.y;
        addEventListener(MouseEvent.MOUSE_MOVE, resizeHandler);
        
    }
    
    private function resizeHandler(e:MouseEvent):void
    {
       
       var r2:Number = ( mouseX - cx ) * ( mouseX - cx ) + ( mouseY - cy ) * ( mouseY - cy );       
       var r:Number = Math.sqrt(r2);
        //var line:Shape = new Shape;
       //addChild(line);
       //line.graphics.lineStyle( 2, 0);
       //line.graphics.lineTo( cx + r, 0);
       currentWg.size = r;
       currentWg.reDraw();
 
   }
    
}




class WigetEvent extends Event{
    public static const RESIZE:String = "resize";
    public static const MOVE:String = "move";
    public var message:String;
    public var wiget:Wiget;
    
    
    public function WigetEvent( eventMsg:String , wiget:Wiget )
    {
        super( eventMsg );
        this.message = eventMsg;
        this.wiget = wiget;
    }
    
    public override function clone():Event 
    { 
        return new WigetEvent( message, wiget); 
        
    } 
     
    public override function toString():String 
    { 
        return formatToString( "WigetEvent", "type", "bubbles", "cancelable", "eventPhase", "msg", "wiget"); 
    }
    
   
}