forked from: forked from: forked from: forked from: flash on 2011-1-22
forked from forked from: forked from: forked from: flash on 2011-1-22 (diff: 4)
ActionScript3 source code
/**
* Copyright omari ( http://wonderfl.net/user/omari )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/fsGJ
*/
// forked from hig_an's forked from: forked from: forked from: flash on 2011-1-22
// forked from hig_an's forked from: forked from: flash on 2011-1-22
// forked from hig_an's forked from: flash on 2011-1-22
// forked from hig_an's flash on 2011-1-22
package {
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.Event;
import flash.geom.Matrix;
import flash.events.MouseEvent;
import flash.ui.Mouse;
[SWF(backgroundColor='#000000', frameRate='30', width='465', height='465')]
public class Main extends Sprite {
private var numOfList:Number = 300;
private var circleSize:Number = 60;
private var sp:Sprite;
private var mt:Matrix;
private var bmpd:BitmapData;
private var circleList:Array;
private var spList:Array;
public function Main() {
spList = new Array();
circleList = new Array();
bmpd = new BitmapData(stage.stageWidth, stage.stageHeight, false,0xFFFFFF);
mt = new Matrix();
addChild(new Bitmap(bmpd));
addEventListener(Event.ENTER_FRAME, loop);
stage.addEventListener(MouseEvent.CLICK, reset);
for (var i:int = 0; i < numOfList; i++) {
circleList[i] = new Circle(i * 100 + circleSize, 100);
spList[i] = newFig(0, 0, circleSize - circleSize * i / numOfList, 0xFFFFFF * Math.random());
}
}
private function loop(e:Event):void {
bmpd.lock();
circleList[0].x = Math.abs(mouseX - stage.stageWidth);
circleList[0].y = Math.abs(mouseY - stage.stageHeight);
mt.identity()
mt.translate(circleList[0].x, circleList[0].y);
bmpd.draw(spList[0], mt);
for (var i:int = 1; i < circleList.length; i++) {
circleList[i].x += (circleList[i - 1].x -circleList[i].x) * 0.5;
circleList[i].y += (circleList[i - 1].y -circleList[i].y) * 0.5;
mt.identity()
mt.translate(circleList[i].x, circleList[i].y);
bmpd.draw(spList[i], mt);
}
bmpd.unlock();
}
private function newFig(x:Number,y:Number,size:Number,col:uint = 0xFFFFFF) :Sprite{
var s:Sprite = new Sprite()
s.graphics.beginFill(col);
s.graphics.drawCircle(x, y, size);
s.graphics.endFill();
return s;
}
private function reset(e:MouseEvent):void {
for (var i:int = 0; i < numOfList; i++) {
spList[i] = newFig(0, 0, circleSize - circleSize * i / numOfList, 0xFFFFFF * Math.random());
circleList[i].x = circleList[0].x;
circleList[i].y = circleList[0].y;
}
bmpd.fillRect(bmpd.rect, 0xFFFFFF);
}
}
}
class Circle{
public var x:Number;
public var y:Number;
public var vx:Number = 0.2;
public var vy:Number = 0.2;
public function Circle(xx:Number, yy:Number ) {
x = xx;
y = yy;
}
}