ate var randomSeed:Number;
private var image:BitmapData;
private var rect:Rectangle;
private var cTra:ColorTransform;
private var vectorList:Array;
private var num:uint = 10000;
public function Min() {
noise = new BitmapData(a_mc.width, a_mc.height, false, 0x000000);
randomSeed = Math.floor(Math.random() * 0xFFFF);
noise.perlinNoise(a_mc.width, a_mc.height, 4, randomSeed, false, false, 1 | 2 | 0 | 0 );
image = new BitmapData(465, 465, true, 0);
this.addChild(new Bitmap(image));
rect = new Rectangle( 0, 0, 465, 465 )
cTra = new ColorTransform(1, 1, 1, 0.9, 0, 0, 0, 0)
bd = new BitmapData(600, 450, true);
bds = new BitmapData(a_mc.width, a_mc.height, true,0x00FFFFFF);
bds.draw(a_mc);
var bp:Bitmap = new Bitmap();
bp.bitmapData = bd;
ps = new Array();
start(1);
this.removeChild(a_mc);
}
private function start(s:uint):void {
ns = s;
vectorList = [];
for (var i:int = s; i <= bds.width; i++) {
for (var j:int = 1; j <= bds.height; j++) {
vectorList.push(new Po(i, j, bds.getPixel32(i, j),bds.width,this));
}
}
this.addEventListener(Event.ENTER_FRAME, render);
}
private function render(event:Event):void {
image.colorTransform( rect, cTra );
image.lock();
var len:uint = vectorList.length;
for (var i:uint = 0; i < len; i++) {
var body:Po = vectorList[i];
body.speed += 0.4;
if(body.speed>0){
var col:Number = noise.getPixel(body.px, body.py);
body.ax += ((col >> 16 & 0xFF) - 128)/1000;
body.ay += ((col >> 8 & 0xFF) -128)/1000;
body.vx += body.ax;
body.vy += body.ay;
body.px += body.vx;
body.py += body.vy;
body.ax *= .975;
body.ay *= .975;
body.vx *= .92;
body.vy *= .92;
}
if (body.px < 0) {
vectorList.splice(i, 1);
len -= 1;
}
image.setPixel32( body.px, body.py+100, body.color );
}
image.unlock();
}
}
}
class Po {
public var x:Number;
public var y:Number;
public var color:uint;
public var speed:Number;
private var r:Number = 0;
private var by:Number;
public var vx:Number = 0;
public var vy:Number = 0;
public var ax:Number = 0;
public var ay:Number = 0;
public var px:Number;
public var py:Number;
public function Po(x:Number, y:Number, color:uint,w:Number,eventLis:Object) {
this.x = x;
this.y = y;
this.px = x;
this.py = y;
this.color = color;
this.speed = Math.random() * 15 - (w - x) / 3 -20;
this.by = y;
}
}
鼠标控制swf效果: s2wind-mouseControl.rar
关键词: |