I agree with the suggestions to not use CLICK or DOUBLE_CLICK on something that also has MOUSE_DOWN and MOUSE_UP. The CLICK events are a convenience for designers, and when you start writing fine-grained behaviors they just get in the way. GUI stuff always has a lot of fiddly tuning involved to feel good. Example:
HorizSlider.hxThis is code describing a horizontal slider bar in the little GUI I rolled up for Fireball. You'll notice that I wrap Flash mouse events into my own input event system so that I can do mock events, and I have the widgets poll for events rather than attach listeners, so that I can disable behavior by changing which loop I'm using, rather than changing state on a bunch of free-floating objects.
To get the slider's behavior close to that of a Windows-type bar, I have to consider multiple concerns:
Am I touching the bar, or the slider on the bar?
Where did I touch the bar?
Am I dragging the slider(i.e. did my mouse down start on the slider, and are consecutive moments occurring while the mouse is down?)
If I'm using the keyboard, is the slider focused, and how much do I move it?
And then I have stuff to draw it. This is the part that I dislike the most since it gets really specific to one graphic design idea and to Flash's graphics APIs.
I can easily imagine that if I wanted behaviors for click, double-click, and drag all at once, I'd be keeping some timers around as well as the held state.