whole_func_string: 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);
      }
func_code_string: 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);
      }
func_documentation_string: @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}.