package flare.vis.controls
{
import flare.vis.events.SelectionEvent;
import flash.display.DisplayObject;
import flash.display.InteractiveObject;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.utils.Timer;
[Event("select", type="flare.vis.events.SelectionEvent")]
[Event("deselect", type="flare.vis.events.SelectionEvent")]
/**
* Interactive control for responding to mouse clicks events. Select event
* listeners can be added to respond to the mouse clicks. This control
* also allows the number of mouse-clicks (single, double, triple, etc) and
* maximum delay time between clicks to be configured.
* @see flare.vis.events.SelectionEvent
*/
public class ClickControl extends Control
{
private var _timer:Timer;
private var _cur:DisplayObject;
private var _clicks:uint = 0;
private var _clear:Boolean = false;
private var _evt:MouseEvent = null;
/** The number of clicks needed to trigger a click event. Setting this
* value to zero effectively disables the click control. */
public var numClicks:uint;
/** The maximum allowed delay (in milliseconds) between clicks.
* The delay determines the maximum time interval between a
* mouse up event and a subsequent mouse down event. */
public function get clickDelay():Number { return _timer.delay; }
public function set clickDelay(d:Number):void { _timer.delay = d; }
/**
* Creates a new ClickControl.
* @param filter a Boolean-valued filter function indicating which
* items should trigger hover processing
* @param numClicks the number of clicks
* @param onClick an optional SelectionEvent listener for click events
*/
public function ClickControl(filter:*=n