習作2009/01/17
1月 18, 2009 · Posted in Flash
Action Script
package
{
import flash.display.*;
import flash.utils.*;
import flash.geom.*;
import flash.filters.*;
import flash.text.TextField;
import flash.events.*;
public class BallAnim extends Sprite
{
private var _Ball:BitmapData;
private var _Background:BitmapData;
private var _Background2:BitmapData;
private var total:uint=4000;
private var _dA:Array;
private var _color:Array = new Array(0xFF0000, 0x00FF00,0x0000FF,0xFFFF00,0x00FFFF,0xFF00FF);
private var _img:Array;
public function BallAnim()
{
init();
}
private function init():void{
this._dA = new Array();
for(var i:uint=0; i<total; i++){
var dA = new Array();
dA[0] = Math.random()*stage.stageWidth;
dA[1] = Math.random()*stage.stageHeight;
dA[2] = Math.random()*4-2;
dA[3] = Math.random()*4-2;
dA[4] = Math.round(Math.random()*(_color.length-1));
this._dA[i] = dA;
}
/////////////////////////
this._img = new Array();
for(var s:uint=0; s<_color.length; s++){
var ball:Sprite = new Sprite();
ball.graphics.beginFill(_color[s]);
ball.graphics.drawCircle(1, 1, 1);
ball.graphics.endFill();
var ballBitmapData:BitmapData = new BitmapData(2,2,true,0x00FFFFFF);
ballBitmapData.draw(ball);
this._img[s] = ballBitmapData;
}
this._Background = new BitmapData(stage.stageWidth ,stage.stageHeight,false,0x000000);
this._Background2 = new BitmapData(stage.stageWidth ,stage.stageHeight,false,0x000000);
addChild( new Bitmap(this._Background) );
addEventListener(Event.ENTER_FRAME, onAnim);
}
private function onAnim(e:Event):void{
this._Background.copyPixels(this._Background2, new Rectangle(0, 0, stage.stageWidth, stage.stageHeight), new Point(0, 0));
for(var i:uint=0; i<total; i++){
var pos:Point = new Point(this._dA[i][0], this._dA[i][1]);
this._Background.copyPixels(this._img[this._dA[i][4]], new Rectangle(0, 0, 10, 10), pos);
this._dA[i][0] += this._dA[i][2];
this._dA[i][1] += this._dA[i][3];
if(this._dA[i][0]<0 || this._dA[i][0] > stage.stageWidth) this._dA[i][2] = this._dA[i][2]*-1;
if(this._dA[i][1]<0 || this._dA[i][1] > stage.stageHeight) this._dA[i][3] = this._dA[i][3]*-1;
}
}
}
}

