BlurFilterの勉強

by demouth
♥0 | Line 42 | Modified 2009-12-04 01:46:27 | MIT License
play

ActionScript3 source code

/**
 * Copyright demouth ( http://wonderfl.net/user/demouth )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/jTQS
 */

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" applicationComplete="this.init()" layout="absolute">
	<mx:Script>
		<![CDATA[
		import flash.display.Graphics;
		import flash.filters.BlurFilter;
		
		private var blur:BlurFilter;
		
		/**
		 * 四角く見えてしまう値を調べてみる。
		 * quality=1だと半径の5倍位?
		 */
		
		private function init():void
		{
			this.blur = new BlurFilter();
			this.draw();
			this.changeBlur();
		}
		
		private function draw():void
		{
			var g:Graphics = this.canvas.graphics;
			g.clear();
			g.beginFill(0);
			g.drawCircle(300, 200, this.radius.value);
			g.endFill();
		}
		
		private function changeBlur():void
		{
			this.blur.blurX = this.blurX.value;
			this.blur.blurY = this.blurY.value;
			this.blur.quality = this.blurQuality.value;
			this.canvas.filters = [this.blur];
		}
			
		]]>
	</mx:Script>
	<mx:Canvas id="canvas" />
	<mx:VBox y="50">
		<mx:Label text="radius" />
		<mx:HSlider id="radius" minimum="0" maximum="500" value="30" change="draw()" liveDragging="true" />
		<mx:Label text="blurX" />
		<mx:HSlider id="blurX"  minimum="0" maximum="500" value="150" change="changeBlur()" liveDragging="true"/>
		<mx:Label text="blurY" />
		<mx:HSlider id="blurY"  minimum="0" maximum="500" value="150" change="changeBlur()" liveDragging="true"/>
		<mx:Label text="blurQuality" />
		<mx:HSlider id="blurQuality"  minimum="0" maximum="10" snapInterval="1" value="1" change="changeBlur()" liveDragging="true"/>
	</mx:VBox>
</mx:Application>