     //  source
     //----------------------------------
 
+	private var _source:Object;
+
     [Inspectable(category="General")]
 
     /**

		// sharing a display object. 
		if (displayObject)
			g.clear();
        
        g.lineStyle();
        _fill.x = drawX;
        _fill.y = drawY;
        _fill.smooth = smooth;
        _fill.repeat = false;
        _fill.scaleX = 1;
        _fill.scaleY = 1;
        var fillWidth:Number;
        var fillHeight:Number;
    
        switch(_resizeMode)
        {
            case _NORMAL_UINT:
                fillWidth = Math.min(unscaledWidth, source.width);
                fillHeight = Math.min(unscaledHeight, source.height);
            break;

            case _REPEAT_UINT:
                if (source)
                {
                    _fill.repeat = true;
                    fillWidth = unscaledWidth;
                    fillHeight = unscaledHeight;
                }    
            break;

            case _SCALE_UINT:
                if (source)
                {
                    _fill.scaleX = unscaledWidth / source.width;
                    _fill.scaleY = unscaledHeight / source.height;
                    fillWidth = source.width;
                    fillHeight = source.height;
                }
            break;
        }

        _fill.begin(g, new Rectangle(0, 0, fillWidth, fillHeight));
        g.drawRect(drawX, drawY, unscaledWidth, unscaledHeight);
        _fill.end(g);
    }
    
    //--------------------------------------------------------------------------
    //
    //  IAssignableDisplayObject Implementation
    //
    //--------------------------------------------------------------------------

}


            {
                bitmapData = new BitmapData(tmpSprite.width, tmpSprite.height, true, 0);
                bitmapData.draw(tmpSprite, new Matrix());
                
                if (tmpSprite.scale9Grid)
                {
	                _scaleGridLeft = tmpSprite.scale9Grid.left;
	                _scaleGridRight = tmpSprite.scale9Grid.right;
	                _scaleGridTop = tmpSprite.scale9Grid.top;
	                _scaleGridBottom = tmpSprite.scale9Grid.bottom;
                }
            }       
            
            _source = bitmapData;
            
            // Flush the cached scale grid points
            cachedSourceGrid = null;
            cachedDestGrid = null;
            
            invalidateSize();
            invalidateDisplayList();
        }
