BitmapObject面白ぇ

ちょっと時間ができたのでFlash8をいじり始めてみました。

http://actionscript.jp/test/fla8test.html
※マウス位置に四角を描画、Y位置によってY方向のブラー制御、クリックで停止、再度クリックで色の範囲を変えて再度描画開始。

とりあえずBitmapObject面白い。フィルタ面白い。Flash8イカス。

適当なコードですが一応ソース

import flash.display.BitmapData;
import flash.filters.BitmapFilter;
import flash.filters.BlurFilter;
import flash.geom.Point;
class fla8test extends MovieClip {
	private var nWidth:Number = 550;
	private var nHeight:Number = 400;
	private var nBlurX:Number;
	private var nBlurY:Number;
	private var nBlurQ:Number = 1;
	private var nRangeR:Number;
	private var nRangeG:Number;
	private var nRangeB:Number;
	private var oBitmap:BitmapData;
	private var oFilter:BitmapFilter;
	private var bToggle:Boolean;
	public function fla8test() {
		oBitmap = new BitmapData(nWidth, nHeight, true, 0xFF000000);
		oFilter = new BlurFilter(nBlurX, nBlurY, nBlurQ);
		attachBitmap(oBitmap, 1);
		bToggle = false;
		this.onRelease = xRelease;
		xRelease();
	}
	private function xDraw() {
		var nR = Math.round(Math.random()*nRangeR);
		var nG = Math.round(Math.random()*nRangeG);
		var nB = Math.round(Math.random()*nRangeB);
		var nRGB = (nR << 16)+(nG << 8)+(nB);
		var nW = Math.round(Math.random()*90);
		var nX = _xmouse;
		var nY = _ymouse;
		for (var i = nX-nW; i<nX+nW; i++) {
			for (var k = nY-nW; k<nY+nW; k++) {
				oBitmap.setPixel(i, k, nRGB);
			}
		}
		xFilter();
	}
	private function xFilter() {
		nBlurX = 0;
		nBlurY = Math.abs( (_ymouse-(oBitmap.rectangle.height/2) )/2);
		oFilter = new BlurFilter(nBlurX, nBlurY, nBlurQ);
		oBitmap.applyFilter(oBitmap, oBitmap.rectangle, new Point(0, 0), oFilter);
	}
	private function xRelease() {
		if (bToggle) {
			this.onEnterFrame = null;
		} else {
			nRangeR=Math.random()*255;
			nRangeG=Math.random()*255;
			nRangeB=Math.random()*255;
			this.onEnterFrame = xDraw;
		}
		bToggle = !bToggle;
	}
}