I have searched and searched for a way to do this, with no luck. I want to build an interactive gearshift/lever object, which would move along a path shaped like so:

          |       |       |
          |       |       |
At the top of each vertical section would be a menu option, and the lever would move up and down the verticals and across the horizontal.

I know that startDrag() can only constrain to rectangles. I did find one script on Actionscript.org that constrained a draggable button to a curve, but it was extremely complicated algebra and geometry and I didn't understand the code at all.

The only idea I had was this:
1. Start the gearshift at the top left
2. If the gearshift is moved to the intersection of the left vertical and the horizontal, call stopDrag() on the vertical constraint and do a startDrag() with a horizontal constraint.
3. When the gearshift gets to the middle vertical, call stopDrag() and do a startDrag() with another vertical constraint.
4. Repeat ad infitum

The problems are - I couldn't figure out how to code this, and it forces the user to use the lever in a specific order, which breaks the concept. Is there any way to do this at all? Maybe using duplicateMovie or something like that? Thanks very much for your help.