    package flare.vis.controls
    {
        import flare.vis.data.DataSprite;

        import flash.display.InteractiveObject;
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.events.MouseEvent;

        /**
         * Interactive control for dragging items. A DragControl will enable
         * dragging of all Sprites in a container object by clicking and dragging
         * them.
         */
        public class DragControl extends Control
        {
            private var _cur:Sprite;
            private var _mx:Number, _my:Number;

            /** Indicates if drag should be followed at frame rate only.
             *  If false, drag events can be processed faster than the frame
             *  rate, however, this may pre-empt other processing. */
            public var trackAtFrameRate:Boolean = false;

            /** The active item currently being dragged. */
            public function get activeItem():Sprite { return _cur; }

            /**
             * Creates a new DragControl.
             * @param filter a Boolean-valued filter function determining which
             *  items should be draggable.
             */
            public function DragControl(filter:*=n