forked from: 100の目

by aobyrne forked from 100の目 (diff: 22)
♥0 | Line 83 | Modified 2014-03-31 14:27:19 | MIT License
play

ActionScript3 source code

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

// forked from yanbaka's 100の目
package
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.filters.BlurFilter;
    
    [SWF(width = "465", height = "465", backgroundColor = "0x000000", frameRate = "30")]
    public class Eyes extends Sprite
    {
        private const NUM:uint = 100;

        private var count:uint;

        private var eyes:Array = [];
        
        public function Eyes()
        {
            init();
            
            var eye:Eye;
            var col:uint=10;
            var radius:uint=10;
            for (var i:uint=0; i<NUM; i++)
            {
                eye = new Eye(radius);
                var div:uint = i/col;
                var mod:uint = i%col;
                eye.x = radius+1+mod*50;
                eye.y = radius+1+div*50;
                addChild(eye);
                eyes.push(eye);
            }
            
            addEventListener(Event.ENTER_FRAME, loop);
        }
        
        private function loop(e:Event):void
        {
            count++;
            var eye:Eye;
            var dx:Number;
            var dy:Number;
            var angle:Number;
            var vx:Number;
            var vy:Number;
            var dist:Number;
            var div:uint=10;
            var of:Number=count/10;
            for (var i:uint = 0; i<NUM; i++)
            {
                eye = eyes[i];
                dx = mouseX - eye.x;
                dy = mouseY - eye.y;
                angle = Math.atan2(dy, dx);
                dist = Math.sqrt(dx*dx + dy*dy);
                vx = Math.cos(angle+of)*dist/div;
                vy = Math.sin(angle+of)*dist/div;
                eye.getEyeball().x = vx;
                eye.getEyeball().y = vy;
                
            }            
        }

    }
}
    import flash.display.Sprite;
    

class Eye extends Sprite
{
    private var eyeball:Sprite;
    private var msk:Sprite;
    
    public function Eye(radius:Number):void
    {
        graphics.beginFill(0xDDDDDD);
        graphics.drawCircle(0, 0, radius);
        graphics.endFill();
        
        eyeball = new Sprite();
        eyeball.graphics.beginFill(0x333333);
        eyeball.graphics.drawCircle(0, 0, radius*0.5);
        eyeball.graphics.endFill();
        addChild(eyeball);
        
        msk = new Sprite();
        msk.graphics.beginFill(0xFFFFFF);
        msk.graphics.drawCircle(0, 0, radius);
        msk.graphics.endFill();
        addChild(msk);
        eyeball.mask = msk;
    }
    
    public function getEyeball():Sprite
    {
        return eyeball;
    }
}