flash on 2010-11-29

by Mushus
♥0 | Line 66 | Modified 2010-12-16 20:19:21 | MIT License
play

ActionScript3 source code

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

package {
    import flash.display.Sprite;
    import flash.events.*;
    [SWF(backgroundColor = "0x000000", frame = "30")]
    //背景色黒
    public class FlashTest extends Sprite {
        public var testObj:eye = new eye(200,300);
        public var sprites:Array = [];
        public function FlashTest() {
            // write as3 code here..
            var x:Number,y:Number;
            for(y = 0; y < 20; y++) {
                for(x = 0; x < 15; x++) {
                    sprites[x + y * 15] = new eye( x * 40 + (y%2) * 20, y * 25)
                    addChild(sprites[x + y * 15]);
                    sprites[x + y * 15].lookAt(30,30);
                    sprites[x + y * 15].width = 25;
                    sprites[x + y * 15].height = 25;
                }
            }

            addEventListener(Event.ENTER_FRAME, loop);
        }
        public function loop(e:Event):void {
            var x:Number, y:Number;
            for(y = 0; y < 20; y++) {
                for(x = 0; x < 15; x++) {
                    sprites[x + y * 15].lookAt(stage.mouseX, stage.mouseY);
                }
            }
            
        }
    }
}

import flash.display.Graphics;
import flash.display.Sprite;
class eye extends Sprite {
    private var color0:uint = 0xffffff;
    //色1 : 黒
    private var color1:uint = 0x000000;
    //色2 : 白
    private var circle:Sprite = null;
    //何か
    public function eye(x:Number, y:Number) {
        this.x = x;
        this.y = y;
        
        //描く
        var g:Graphics = graphics;
        g.beginFill(color0);
        g.drawCircle(0,0,100);
        g.endFill();
        //黒円
        g.beginFill(color1);
        g.drawCircle(0,0,80);
        g.endFill();
        //白円
        
        circle = new Sprite();
        addChild(circle);
        g = circle.graphics;
        g.beginFill(color0);
        g.drawCircle(0,0,60);
        g.endFill();
        
        circle.x = 20;
    }
    public function lookAt(x:Number, y:Number):void {
        var tx:Number = x - this.x;
        var ty:Number = y - this.y;
        var l:Number = Math.sqrt(tx * tx + ty * ty);
        //長さ
        
        if(30 < l) {
            tx *= 30 / l;
            ty *= 30 / l;
            //l = 20;
        }
        //一定以上はみださないようにする
        circle.x = tx;
        circle.y = ty;
        
    }

    
    
    

}