In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

絵具が混ざり合うような感じ

ボールとボールがくっつく。
@author SIBA
Get Adobe Flash player
by siba2260 27 Jan 2009
    Embed
package {
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.GradientType;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.filters.BlurFilter;
	import flash.geom.Point;

	/**
	 * ボールとボールがくっつく。
	 * @author SIBA
	 */
	public class Main01 extends Sprite
	{
		
		// ----------------------------
		//	定数
		// ----------------------------
		
		private var BALL_NUMBER:int = 100;				// 表示するボールの数
		
		
		// ----------------------------
		//	メンバ変数
		// ----------------------------
		
		private var balls:Array = [];					// ボールを格納している配列
		private var ballLayer:Sprite = new Sprite();	// ボールを置くコンテナ
		private var dispImage:Bitmap;
		
		
		// ----------------------------
		//	初期化
		// ----------------------------
		
		public function Main01()
		{
			// ボールを置くコンテナを設定
			ballLayer.filters = [new BlurFilter(30, 30, 1)];
			addChild(ballLayer);
			
			// 表示するイメージを設定
			dispImage = new Bitmap(new BitmapData(stage.stageWidth, stage.stageHeight, true, 0x00FFFFFF));
			addChild(dispImage);
			
			// ボールを作成
			for (var i:int=0; i<BALL_NUMBER; i++)
			{
				var ball:Sprite = new Sprite();
				ball.graphics.beginFill(Math.random()*0xFFFFFF);
				ball.graphics.drawCircle(0, 0, 30);
				ball.graphics.endFill();
				
				ball.x = Math.random()*stage.stageWidth;
				ball.y = Math.random()*stage.stageHeight;
				
				balls[balls.length] = ball;
				ballLayer.addChild(ball);
			}
			
			addEventListener(Event.ENTER_FRAME, onEnterFrame);
		}
		
		
		// ----------------------------
		//	イベント
		// ----------------------------
		
		private function onEnterFrame(event:Event):void {
			// ボールの移動
			for (var i:int=0; i<BALL_NUMBER; i++)
			{
				var ball:Sprite = balls[i] as Sprite;
				ball.x += Math.random()*2-1;
				ball.y += Math.random()*2-1;
			}
			
			// 画像の変更
			const bitmapData:BitmapData = dispImage.bitmapData;
			bitmapData.fillRect(bitmapData.rect, 0x00FFFFFF);
			bitmapData.draw(ballLayer);
			bitmapData.threshold(bitmapData, bitmapData.rect, new Point(), "<", 0x80000000, 0xFFFFFFFF, 0xFF000000, true);
		}
		
	}
}