flash on 2012-6-4
♥0 |
Line 100 |
Modified 2012-06-09 22:42:51 |
MIT License
archived:2017-03-20 15:17:59
ActionScript3 source code
/**
* Copyright jokehn9 ( http://wonderfl.net/user/jokehn9 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/3EiO
*/
// forked from jokehn9's temp
package {
import flash.geom.ColorTransform;
import flash.geom.Matrix;
import flash.filters.BlurFilter;
import flash.geom.Point;
import flash.utils.Proxy;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.Event;
import flash.display.Shape;
import flash.display.Sprite;
public class FlashTest extends Sprite {
private var bitmapDat:BitmapData = new BitmapData(465,465,true,0x0);
private var bitmap:Bitmap = new Bitmap(bitmapDat);
private var dark:BitmapData = new BitmapData(465,465,false,0x0);
private var shape:Shape;
private var arr:Array = [];
private const num:int = 100;
private var canvas:BitmapData = new BitmapData(465,465,true,0x0);
private var toT:ColorTransform = new ColorTransform(0.5,0.5,0.5,0.9,0,0,0,0);
public function FlashTest() {
// write as3 code here..
shape = new Shape();
addChild(new Bitmap(dark));
var p:Particle = new Particle();
var rc1:uint = 0xffffff*Math.random();
var rc2:uint = 0xffffff*Math.random();
var rc3:uint = 0xffffff*Math.random();
for(var i:int = 0;i<num; i++) {
arr[i] = new Particle;
arr[i].x = arr[i].prevx = Math.random() * 465;
arr[i].y = arr[i].prevy = Math.random() * 465;
if(Math.random()*1 < 0.33) {
arr[i].color = rc1;
}
else if(Math.random()*1 > 0.66) {
arr[i].color = rc2;
}
else {
arr[i].color = rc3;
}
}
addChild(bitmap);
addEventListener("enterFrame",ff);
}
private function ff(e:Event):void {
//움직인다.
var p:Particle;
var dx:Number,dy:Number;
var d:Number = 0;
for(var i:int = 0; i<num;i++) {
p = arr[i];
dx = mouseX - p.x;
dy = mouseY - p.y;
d = Math.sqrt(dx*dx + dy*dy);
p.speedX += dx * 7 / d;
p.speedY += dy * 7/ d;
p.speedD = Math.sqrt(p.speedX*p.speedX + p.speedY * p.speedY);
p.ds = d;
p.x += p.speedX;
p.y += p.speedY;
}
//그린다
shape.graphics.clear();
//
shape.graphics.lineStyle(1,0x0);
for(i = 0; i< num;i++) {
shape.graphics.lineStyle(Math.abs(arr[i].speedD/8),arr[i].color,1);
shape.graphics.moveTo(arr[i].prevx,arr[i].prevy);
shape.graphics.lineTo(arr[i].x ,arr[i].y);
arr[i].prevx = arr[i].x
arr[i].prevy = arr[i].y
}
bitmapDat.draw(shape,shape.transform.matrix);
bitmapDat.colorTransform(bitmapDat.rect,toT);
bitmapDat.applyFilter(bitmapDat,bitmapDat.rect,new Point,new BlurFilter(3,3,1));
}
private function boom(e:Event):void {
var dx:Number, dy:Number = 0;
var mi:int = 0;
for(var i:int = 0; i<num;i++) {
if(Math.random() > 0.5) {
mi = 1;
}
else {
mi = -1;
}
arr[i].speedX = -60 * Math.random() + 30;
arr[i].speedY = arr[i].speedX * mi;
}
}
}
}
class Particle {
public var x:Number = 0;
public var y:Number = 0;
public var speedX:Number = 0;
public var speedY:Number = 0;
public var prevx:Number = 0;
public var prevy:Number = 0;
public var ds:Number = 0;
public var color:uint;
public var speedD:Number = 0;
}