 			notifyFilterChanged();
 		}
 	}
-	
-	public function clone():BitmapFilter 
+
+	//--------------------------------------------------------------------------
+	//
+	//  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.BevelFilter instance using the current 
+	 *  property values. 
+	 * 
+	 *  @return flash.filters.BevelFilter instance
+	 */
+	public function createBitmapFilter():BitmapFilter 
 	{
 		return new flash.filters.BevelFilter(distance, angle, highlightColor, highlightAlpha,
 											 shadowColor, shadowAlpha, blurX, blurY, strength,

		this.type = type;
		this.knockout = knockout;	
	}
	
	//----------------------------------
    //  angle

	}
	
	//----------------------------------
    //  blurX
    //----------------------------------
	
	private var _blurX:Number = 4.0;
	
	/**
	 *  The amount of horizontal blur. Valid values are 0 to 255. A blur of 1
	 *  or less means that the original image is copied as is. The default 
	 *  value is 4. Values that are a power of 2 (such as 2, 4, 8, 16, and 32) 
	 *  are optimized to render more quickly than other values.
	 */
	public function get blurX():Number
	{
		return _blurX;
	}
	
	public function set blurX(value:Number):void
	{
		if (value != _blurX)
		{
			_blurX = value;
			notifyFilterChanged();
		}
	}
	
	//----------------------------------
    //  blurY
    //----------------------------------
    
	private var _blurY:Number = 4.0;
	
	/**
	 *  The amount of vertical blur. Valid values are 0 to 255. A blur of 1 
	 *  or less means that the original image is copied as is. The default 
	 *  value is 4. Values that are a power of 2 (such as 2, 4, 8, 16, and 32)
	 *  are optimized to render more quickly than other values.
	 */
	public function get blurY():Number
	{
		return _blurY;
	}
	
	public function set blurY(value:Number):void
	{
		if (value != _blurY)
		{
			_blurY = value;
			notifyFilterChanged();
		}
	}
	
	//----------------------------------
    //  distance
    //----------------------------------
	
