Author: Samuel Wan
Language: Flash 6 ActionScript
Dependancies: none
Developed: November 2001
Purpose:
Create a Dial component for Flash 6 beta. Dials are more space efficient than sliders in some situations, and allow users to specify ranges of the dial. The Dial Component can interact with its environment, either by specifying the TargetProperty parameter, or by registering a listener with its addListener() method and onDialChange() callback.
The interaction model for this dial comes from Propellerhead's REASON software, which simulates MIDI rack hardware. Dials are turned by clicking on the dial and dragging up and down.
Personal Notes:
The objective was to build a usable component within 10 hours. I had to reverse-engineer Nigel's scrollbar, in order to learn out how to detect drop-target instances in the editing environment. However, I didn't use any of Macromedia's FUIComponent classes because I wanted to keep things simple during my first attempt.
The strategy of defining functions within objects, rather than prototypes, comes from working with Branden Hall on his Java-like implementation of inheritance and centralized event handling for Flash 5 (ACK - Actionscript Component Kit).
Posted by samuel at April 5, 2002 05:41 PMI just used your Dial Comp. They're great !
I would like your permission to discuss them in my forthcoming book on MX Actionscript (in Dutch)..
You can see the in action at my personal website, www.actionscript.nl
Peer
Posted by: Peerless at April 12, 2002 06:16 PMWell the problem with this is that people don't turn dials by pushing up and down. Hence I think it misses the mark from a usability standpoint. Geometry needs to rescue dials with an arc detection design as the user moves mouse around the circle; perhaps by adding a dial arrow/button that the user could click on that would stay along a specific circle would change the dynamics of the dial to be more "real". As the user clicks and drags the arrow around this arc, then the button would rotate.