liquid k__ forked:0favorite:1lines:64license : MIT License modified : 2010-08-01 01:11:55 Embed Tweet package { import flash.display.*; import flash.events.*; import flash.geom.*; public class Main extends Sprite { private var canvas:BitmapData; private var canvasRect:Rectangle; private var ballBm:BitmapData; private var ballSize:int = 100; private var threthold:int; private var balls:Array; private var numBalls:uint = 100; public function Main():void { addChild(new Bitmap(canvas = new BitmapData(stage.stageWidth, stage.stageHeight))); canvasRect = canvas.rect; ballBm = createBallBm(); init(); } private function init():void { balls = new Array(); for (var i:uint = 0; i < numBalls; i ++) { balls.push(createBall()); } addEventListener(Event.ENTER_FRAME, h_enterFrame); } private function h_enterFrame(evt:Event):void { canvas.fillRect(canvasRect, 0xffffffff); for (var i:uint = 0; i < balls.length; i ++) { balls[i].x += balls[i].vx; balls[i].y += balls[i].vy; var mtx:Matrix = new Matrix(1,0,0,1,balls[i].x,balls[i].y); canvas.draw(ballBm,mtx); if ( balls[i].x < -ballSize / 2 || balls[i].x > stage.stageWidth + ballSize / 2 || balls[i].y < -ballSize / 2 || balls[i].y > stage.stageHeight + ballSize / 2) { balls[i] = createBall(); } } canvas.threshold(canvas,canvasRect,new Point(0,0),"<=", 0xff555555, 0xffff00ff); canvas.threshold(canvas,canvasRect,new Point(0,0),"!=", 0xffff00ff, 0xffffffff); } private function createBall():Object { var ball:Object = new Object; var ang:Number = Math.PI * 2 * Math.random(); var spd:Number = Math.random() * 5; ball.x = Math.random() * stage.stageWidth; ball.y = Math.random() * stage.stageHeight; ball.vx = Math.cos(ang) * spd; ball.vy = Math.sin(ang) * spd; return ball } private function createBallBm():BitmapData { var bm:BitmapData = new BitmapData(ballSize, ballSize,true,0x00000000); var temp:Sprite = new Sprite(); for (var i:int = ballSize / 2; i > 0; i -= 2) { var g:Graphics = temp.graphics; g.beginFill(0x000000, 1 / (ballSize / 4)); g.drawCircle(ballSize / 2, ballSize / 2, i); g.endFill(); } bm.draw(temp); return bm } } } Code Fullscreen Preview Fullscreen hacker_w7d9y.. : liquid threshold Object stageWidth BitmapData stageHeight graphics Matrix fillRect drawCircle addEventListener endFill beginFill draw Rectangle rect Bitmap push Point Math.cos addChild