The Sun
♥0 |
Line 47 |
Modified 2011-02-19 23:24:16 |
MIT License
archived:2017-03-09 19:30:18
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;
}
}
}