The Sun

by 9re
♥0 | Line 47 | Modified 2011-02-19 23:24:16 | MIT License
play

ActionScript3 source code

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

package {
    import flash.display.BitmapData;
    import flash.display.Bitmap;
    import flash.events.Event;
    import flash.display.StageScaleMode;
    import flash.display.StageAlign;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        private static const LEFT:Number = -5, TOP:Number = 5,
                             RIGHT:Number = 5, BOTTOM:Number = -5,
                             K:Number = 6;
        private var _canvas:Bitmap;
        public function FlashTest() {
            addChild(_canvas = new Bitmap);
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }
        
        private function init(event:Event = null):void {
            if (event) removeEventListener(Event.ADDED_TO_STAGE, init);
            
            stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE;
            stage.addEventListener(Event.RESIZE, draw);
            stage.dispatchEvent(new Event(Event.RESIZE));
        }
        
        private function draw(e:Event):void {
            var bd:BitmapData = _canvas.bitmapData;
            if (bd) bd.dispose();
            
            var w:int = stage.stageWidth, h:int = stage.stageHeight;
            bd = new BitmapData(w, h);
            bd.lock();
            var r:Number, x:Number, y:Number;
            for (var i:int = 0; i < w; ++i) {
                r = i / w;
                x = (1 - r) * LEFT + r * RIGHT;
                for (var j:int = 0; j < h; ++j) {
                    r = j / h;
                    y = (1 - r) * TOP + r * BOTTOM;
                    if (y > Math.sin(K * Math.sqrt(x * x + y * y))) {
                        bd.setPixel(i, j, 0xff0000);
                    }
                }
            }
            bd.unlock();
            _canvas.bitmapData = bd;
        }
    }
}

Forked