 import flash.display.Sprite;
 import flash.events.Event;
 import flash.events.EventDispatcher;
+import flash.events.IEventDispatcher;
 import flash.geom.ColorTransform;
 import flash.geom.Matrix;
 import flash.geom.Point;
 import flash.geom.Rectangle;
 import flash.geom.Transform;
 
-import flex.filters.BaseFilter;
-import flex.filters.IBitmapFilter;
 import flex.geom.Transform;
 import flex.graphics.IDisplayObjectElement;
 import flex.graphics.IGraphicElement;

        var i:int = 0;
        var oldFilters:Array = _filters ? _filters.slice() : null;
        var len:int = oldFilters ? oldFilters.length : 0;
        var edFilter:EventDispatcher;

        for (i = 0; i < len; i++)
        {
            if (oldFilters[i] is IBitmapFilter)
            {
                edFilter = value[i] as EventDispatcher;
                if (edFilter)
                {
                    edFilter.removeEventListener(BaseFilter.FILTER_CHANGED_TYPE,
                                                 filterChangedHandler);
                }
            }
        }

        _clonedFilters = [];

        {
            if (value[i] is IBitmapFilter)
            {
                edFilter = value[i] as IEventDispatcher;
                if (edFilter)
                    edFilter.addEventListener(BaseFilter.CHANGE, filterChangedHandler);
                _clonedFilters.push(IBitmapFilter(value[i]).clone());
            }
            else
