習作2009/01/18

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 _Background3:BitmapData;

		private var total:uint=100;

		private var _dA:Array;

		private var _color:Array =  new Array(0xFF0000, 0x00FF00,0x0000FF,0xFFFF00,0x00FFFF,0xFF00FF,0xFFFFFF);
		private var _img:Array;

		private var bf:BlurFilter = new BlurFilter(5, 5, 1);

		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()*6-3;
				dA[3] = Math.random()*6-3;
				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(5, 5, 5);
				ball.graphics.endFill();
				var ballBitmapData:BitmapData = new BitmapData(10,10,true,0x00FFFFFF);

				ballBitmapData.draw(ball);
				this._img[s] = ballBitmapData;
			}

			this._Background = new BitmapData(stage.stageWidth ,stage.stageHeight,true,0x00000000);
			this._Background2 = new BitmapData(stage.stageWidth ,stage.stageHeight,true,0x00000000);
			this._Background3 = new BitmapData(stage.stageWidth ,stage.stageHeight,true,0x00000000);

			addChild( new Bitmap(this._Background3) );
			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;
			}

			this._Background3.draw(this._Background);
			this._Background3.applyFilter(this._Background3, this._Background3.rect, new Point(0,0), bf);

		}

		private function argbtohex(a:Number, r:Number, g:Number, b:Number):uint{
		     return (a<<24 | r<<16 | g<<8 | b)
		}

	}
}

習作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;
			}
		}

	}
}