easeljs.js
function BlurFilter( blurX, blurY, quality) {
		this.Filter_constructor();

		// public properties:
		/**
		 * Horizontal blur radius in pixels
		 * @property blurX
		 * @default 0
		 * @type Number
		 **/
		this._blurX = blurX;
		this._blurXTable = [];

		/**
		 * Vertical blur radius in pixels
		 * @property blurY
		 * @default 0
		 * @type Number
		 **/
		this._blurY = blurY;
		this._blurYTable = [];

		/**
		 * Number of blur iterations. For example, a value of 1 will produce a rough blur. A value of 2 will produce a
		 * smoother blur, but take twice as long to run.
		 * @property quality
		 * @default 1
		 * @type Number
		 **/
		this._quality;

		/**
		 * This is a template to generate the shader for {{#crossLink FRAG_SHADER_BODY}}{{/crossLink}}
		 */
		this.FRAG_SHADER_TEMPLATE = (
			"uniform float xWeight[{{blurX}}];" +
			"uniform float yWeight[{{blurY}}];" +
			"uniform vec2 textureOffset;" +
			"void main(void) {" +
				"vec4 color = vec4(0.0);" +

				"float xAdj = ({{blurX}}.0-1.0)/2.0;" +
				"float yAdj = ({{blurY}}.0-1.0)/2.0;" +
				"vec2 sampleOffset;" +

				"for(int i=0; i<{{blurX}}; i++) {" +
					"for(int j=0; j<{{blurY}}; j++) {" +
						"sampleOffset = vRenderCoord + (textureOffset * vec2(float(i)-xAdj, float(j)-yAdj));" +
						"color += texture2D(uSampler, sampleOffset) * (xWeight[i] * yWeight[j]);" +
					"}" +
				"}" +

				"gl_FragColor = color.rgba;" +
			"}"
		);

		// update the filter using the setters
		if(isNaN(quality) || quality < 1){ quality = 1; }
		this.setQuality(quality|0);
	}
function BlurFilter( blurX, blurY, quality) {
		this.Filter_constructor();

		// public properties:
		/**
		 * Horizontal blur radius in pixels
		 * @property blurX
		 * @default 0
		 * @type Number
		 **/
		this._blurX = blurX;
		this._blurXTable = [];

		/**
		 * Vertical blur radius in pixels
		 * @property blurY
		 * @default 0
		 * @type Number
		 **/
		this._blurY = blurY;
		this._blurYTable = [];

		/**
		 * Number of blur iterations. For example, a value of 1 will produce a rough blur. A value of 2 will produce a
		 * smoother blur, but take twice as long to run.
		 * @property quality
		 * @default 1
		 * @type Number
		 **/
		this._quality;

		/**
		 * This is a template to generate the shader for {{#crossLink FRAG_SHADER_BODY}}{{/crossLink}}
		 */
		this.FRAG_SHADER_TEMPLATE = (
			"uniform float xWeight[{{blurX}}];" +
			"uniform float yWeight[{{blurY}}];" +
			"uniform vec2 textureOffset;" +
			"void main(void) {" +
				"vec4 color = vec4(0.0);" +

				"float xAdj = ({{blurX}}.0-1.0)/2.0;" +
				"float yAdj = ({{blurY}}.0-1.0)/2.0;" +
				"vec2 sampleOffset;" +

				"for(int i=0; i<{{blurX}}; i++) {" +
					"for(int j=0; j<{{blurY}}; j++) {" +
						"sampleOffset = vRenderCoord + (textureOffset * vec2(float(i)-xAdj, float(j)-yAdj));" +
						"color += texture2D(uSampler, sampleOffset) * (xWeight[i] * yWeight[j]);" +
					"}" +
				"}" +

				"gl_FragColor = color.rgba;" +
			"}"
		);

		// update the filter using the setters
		if(isNaN(quality) || quality < 1){ quality = 1; }
		this.setQuality(quality|0);
	}
constructor: 
Applies a box blur to DisplayObjects. Note that this filter is fairly CPU intensive, particularly if the quality is
set higher than 1.

<h4>Example</h4>
This example creates a red circle, and then applies a 5 pixel blur to it. It uses the {{#crossLink "Filter/getBounds"}}{{/crossLink}}
method to account for the spread that the blur causes.

var shape = new createjs.Shape().set({x:100,y:100});
shape.graphics.beginFill("#ff0000").drawCircle(0,0,50);

var blurFilter = new createjs.BlurFilter(5, 5, 1);
shape.filters = [blurFilter];
var bounds = blurFilter.getBounds();

shape.cache(-50+bounds.x, -50+bounds.y, 100+bounds.width, 100+bounds.height);

See {{#crossLink "Filter"}}{{/crossLink}} for an more information on applying filters.
@class BlurFilter
@extends Filter
@constructor
@param {Number} [blurX=0] The horizontal blur radius in pixels.
@param {Number} [blurY=0] The vertical blur radius in pixels.
@param {Number} [quality=1] The number of blur iterations.