static/ext/src/draw/Sprite.js
function() {
        var me = this;
        //create element if it doesn't exist.
        if (!me.el) {
            me.surface.createSpriteElement(me);
        }
        me.dd = new Ext.draw.SpriteDD(me, Ext.isBoolean(me.draggable) ? null : me.draggable);
        me.on('beforedestroy', me.dd.destroy, me.dd);
    }
function() {
        var me = this;
        //create element if it doesn't exist.
        if (!me.el) {
            me.surface.createSpriteElement(me);
        }
        me.dd = new Ext.draw.SpriteDD(me, Ext.isBoolean(me.draggable) ? null : me.draggable);
        me.on('beforedestroy', me.dd.destroy, me.dd);
    }
@property {Ext.dd.DragSource} dd
If this Sprite is configured {@link #draggable}, this property will contain
an instance of {@link Ext.dd.DragSource} which handles dragging the Sprite.

The developer must provide implementations of the abstract methods of {@link Ext.dd.DragSource}
in order to supply behaviour for each stage of the drag/drop process. See {@link #draggable}.