 
 package mx.filters
 {
+
+import flash.events.Event;	
+import flash.events.EventDispatcher;
 import flash.filters.BitmapFilter;
 import flash.filters.ColorMatrixFilter;
+import mx.filters.IFlexBitmapFilter;
+
+/**
+ *  @review 
+ *  Dispatched when a property value has changed. 
+ */ 
+[Event(name="change", type="flash.events.Event")]
 
 /**
  *  @review 

 * 
 *  @see flash.filters.ColorMatrixFilter
 */
public class ColorMatrixFilter extends BaseFilter implements IBitmapFilter
{
	public function ColorMatrixFilter(matrix:Array = null)
	{
		if (matrix != null)
		{
			this.matrix = matrix;
		} 
	}
	
	//----------------------------------
    //  matrix
    //----------------------------------
	
	private var _matrix:Array =  [1,0,0,0,0,0,
								  1,0,0,0,0,0,
								  1,0,0,0,0,0,
								  1,0];
	
	/**
	 *  @review

			notifyFilterChanged();
		}
	}

	//--------------------------------------------------------------------------
	//
	//  Methods
	//
	//--------------------------------------------------------------------------
    
    /**
     * @private
     * Notify of a change to our filter, so that filter stack is ultimately 
     * re-applied by the framework.
     */ 	
	private function notifyFilterChanged():void
	{
		dispatchEvent(new Event(Event.CHANGE));
	}

	//--------------------------------------------------------------------------
	//
	//  IFlexBitmapFilter 
	//
	//--------------------------------------------------------------------------	

	/**
	 *  Creates a flash.filters.ColorMatrixFilter instance using the current 
	 *  property values. 
	 * 
	 *  @return flash.filters.ColorMatrixFilter instance
	 */	
	public function createBitmapFilter():BitmapFilter 
	{
		return new flash.filters.ColorMatrixFilter(_matrix);
	}
}
}
