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

forked from: 円と線と動く円

/**
 * Copyright bradsedito ( http://wonderfl.net/user/bradsedito )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/w4mE
 */





package 
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;    
    
    [SWF(width=465,height=465,backgroundColor=0xFFFFFF,frameRate=60)]
    
  
    public class FlashTest extends Sprite 
    {
        public  var sw:Number=stage.stageWidth;
        public  var sh:Number=stage.stageHeight;
        public  var myArray:Array = new Array();
        public  var max:Number=15;
        public  var myLine:Sprite =new Sprite();
     
        
        public function FlashTest() {
            for (var n:Number=0; n<max; n++) {
    var myCircle:Sprite = new Sprite();
    with (myCircle.graphics) {
        beginFill(0x999999,1);
        drawCircle(0,0,5);
        endFill();
    }
    myCircle.x=Math.random()*sw;
    myCircle.y=Math.random()*sh;
    addChild(myCircle);
    myArray.push(myCircle);
    myArray[n].addEventListener(MouseEvent.MOUSE_DOWN,xDown);
}

stage.addEventListener(Event.ENTER_FRAME,xEnter);
function xEnter(e:Event):void {
    myLine.graphics.clear();
    for (var nn:Number =0; nn<max; nn++) {
        if (nn==max-1) {
            with (myLine.graphics) {
                lineStyle(1,0xCCCCCC,1);
                moveTo(myArray[nn].x,myArray[nn].y);
                lineTo(myArray[0].x,myArray[0].y);
            }
        } else {
            with (myLine.graphics) {
                lineStyle(1,0xCCCCCC,1);
                moveTo(myArray[nn].x,myArray[nn].y);
                lineTo(myArray[nn + 1].x,myArray[nn + 1].y);
            }
        }
        addChild(myLine);
    }
}

//Rectとなっているのは最初は四角形にしていたのですが
//Circleのほうが動きが良いので、その部分だけ変えたからです。
var myRect:Sprite = new Sprite();
with (myRect.graphics) {
    beginFill(0x0099CC,1);
    drawCircle(0,0,7);
    endFill();
}
myRect.x = myArray[0].x;
myRect.y = myArray[0].y;
addChild(myRect);

var num:Number =0;
myRect.addEventListener(Event.ENTER_FRAME,xRect);
function xRect(e:Event):void {
    var speed:Number = 4;
    var dx:Number = myArray[num + 1].x-myRect.x;
    var dy:Number=myArray[num + 1].y-myRect.y;
    
    var r:Number = Math.atan2(myArray[num +1].y -myRect.y,myArray[num +1].x - myRect.x)*180/Math.PI;
    myRect.x += speed * Math.cos(r/180*Math.PI);
    myRect.y += speed * Math.sin(r/180*Math.PI);
    if ((Math.abs(dx) < 2) &&(Math.abs(dy) < 2)) {
        num++;
        if (num == 9) num=-1;
    }
}


function xDown(e:MouseEvent):void {
    e.target.startDrag();
    e.target.addEventListener(MouseEvent.MOUSE_MOVE, xMove);
    stage.addEventListener(MouseEvent.MOUSE_UP, xUp);
}
function xMove(e:MouseEvent):void {
    e.updateAfterEvent();
}
function xUp(e:MouseEvent):void {
    e.target.stopDrag();
    e.target.removeEventListener(MouseEvent.MOUSE_MOVE, xMove);
    stage.removeEventListener(MouseEvent.MOUSE_UP, xUp);
}
            
            
        }
    }
}