flash on 2010-10-20

by yasnis
♥0 | Line 96 | Modified 2010-10-20 14:57:34 | MIT License
play

ActionScript3 source code

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

package {
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.display.Graphics;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        private var forcelist:Vector.<ForcePoint> = new Vector.<ForcePoint>();
        private var personlist:Vector.<Person> = new Vector.<Person>();
        public function FlashTest() {
            // write as3 code here..
            initForce();
            initStage();
            stage.addEventListener(MouseEvent.CLICK,stageClickHandler);
            addEventListener(Event.ENTER_FRAME,enterframeHandler);
        }
        private function initForce():void {
            
        }
        private function initStage():void {
            var g:Graphics = graphics;
            g.lineStyle(2,0);
            g.drawRect(0,0,stage.stageWidth,stage.stageHeight);
        }
        private function createNewPerson():Person{
            var p:Person = new Person();
            p.x = (stage.stageWidth>>1)+(Math.random()*2-1)*30;
            p.y = (stage.stageHeight>>1)+(Math.random()*2-1)*30;
            addChild(p);
            personlist.push(p);
            p.addEventListener(MouseEvent.CLICK,personClickHandler);
            return p;
        }
        private function removePerson(p:Person):void {
            removeChild(p);
            personlist.splice(personlist.indexOf(p),1);
        }
        private function enterframeHandler(e:Event):void{
            var a:Person;
            var b:Person;
            var dist:Number;
            for(var i:int = 0;i<personlist.length;i++){
                a = personlist[i];
                for(var j:int = i+1;j<personlist.length;j++){
                    b = personlist[j];
                    dist = a.getDistance(b);
                    if(dist<a.space+b.space){
                        
                    }
                }
            }
        }
        private function stageClickHandler(e:MouseEvent):void{
            createNewPerson();
        }
        private function personClickHandler(e:MouseEvent):void{
            removePerson(e.target as Person);
            e.stopPropagation();
        }
    }
}
import flash.display.Graphics;
import flash.display.Sprite;
class Person extends Sprite {
    public var space:Number = 60;
    function Person () {
        var g:Graphics = graphics;
        g.lineStyle(1,0);
        g.beginFill(0xffffff,1);
        g.drawCircle(0,0,40);
        
        g.beginFill(0,1);
        g.drawCircle(0,0,20);
        g.endFill();
        buttonMode = true;
    }
    public function getDistance(p:Person):Number{
        return Math.sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));
    }

}
class ForcePoint extends Sprite {
    private var _force:Number = 10;
    function ForcePoint(){
        force = _force;
    }
    private function updateView():void{
        var g:Graphics = graphics;
        g.clear();
        g.lineStyle(1,0xff0000);
        g.beginFill(0xff3333,1);
        g.drawCircle(0,0,force);
        g.endFill();
    }

    public function get force():Number {
        return _force;
    }
    public function set force(f:Number):void{
        _force = f;
        updateView();
    }


}