分散&整列

by yuugurenote
分散&整列

クリックで分散と整列します。
♥0 | Line 60 | Modified 2012-06-23 15:17:20 | MIT License
play

ActionScript3 source code

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

package {
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.events.Event;
    import flash.geom.Point;

    [SWF(width=465,height=465,backgroundColor=0xFFFFFF,frameRate=60)]
    public class AS120623_01 extends Sprite {
        public var sw:Number=stage.stageWidth;
        public var sh:Number=stage.stageHeight;
        public var max:Number=400;
        public var myFlag:Boolean=false;
        public var myArray:Array = new Array();
        public var mySet:Array = new Array();
        public var myPos:Array = new Array();
        public var _myCircle1:myCircle1;

        public function AS120623_01() {

            for (var i:Number=0; i<max; i++) {
                _myCircle1=new myCircle1();
                _myCircle1.x=Math.random()*sw;
                _myCircle1.y=Math.random()*sh;
                addChild(_myCircle1);
                myArray.push(_myCircle1);
                mySet.push( new Point(i%20*10+140,Math.floor(i/20)*10+140));
                myPos.push(new Point(Math.random()*sw,Math.random()*sh))
            }

            stage.addEventListener(MouseEvent.MOUSE_DOWN,xDown);
            addEventListener(Event.ENTER_FRAME,xEnter);
        }
        public function xDown(e:MouseEvent):void {
            if (! myFlag) {
                myFlag=true;
            } else {
                myFlag=false;
            }
        }
        public function xEnter(e:Event):void {
            if (myFlag) {
                for (var i:Number=0; i<max; i++) {
                    myArray[i].x += (mySet[i].x - myArray[i].x)/8;
                    myArray[i].y += (mySet[i].y - myArray[i].y)/8;
                }
            } else {
                for (var j:Number=0; j<max; j++) {
                    myArray[j].x += (myPos[j].x - myArray[j].x)/8;
                    myArray[j].y += (myPos[j].y - myArray[j].y)/8;                
                }
            }
        }
    }
}

import flash.display.Sprite;
import flash.events.Event;
class myCircle1 extends Sprite {
    public var _r:Number;
    public function myCircle1() {
        this.graphics.beginFill(0xCCCCCC,1);
        this.graphics.drawCircle(0,0,5);
        this.graphics.endFill();
    }
}

Forked