 package spark.effects
 {
 import flash.display.BitmapData;
+import flash.geom.Rectangle;
 import flash.utils.ByteArray;
 
 import mx.core.IUIComponent;

            throw new Error(resourceManager.getString("sparkEffects", "cannotOperateOn"));
        var bmData:BitmapData;
        var tempFilters:Array = target.filters;
        target.filters = [];
        
        try
        {
            if (target is GraphicElement)
                bmData = GraphicElement(target).captureBitmapData(true, 0, false);
            else
                bmData = BitmapUtil.getSnapshot(IUIComponent(target));
        }
        catch (e:SecurityError)
        {
            // Do nothing and let it return null.
        }
        
        target.filters = tempFilters;
        
        return bmData;
    }
    
    /**

        // We track visible and parent so that we can automatically
        // perform transitions from/to states where the target either
        // does not exist or is not visible
        // Note that 'bitmapInfo' is an Object map containing both a bitmap
        // and the visual bounds of that bitmap on the screen
        return ["bitmapInfo", "visible", "parent"];
    }

    /**
