Virtual animation disc

I mentioned in my last post that I was working on a new Flash command that several people had requested, and that I’d like to have myself.  It feels good to be able to help people out with stuff like this, particularly when it also helps me 🙂  Anyway, I thought I’d talk about it a little.

Several graphics programs, particularly ones that deal with animation, have a feature where you can rotate the canvas to an arbitrary angle, in the same manner as an animation disc.  It’s very useful when you can’t get quite the right curve to a line unless your drawing is positioned at a good angle.  Unfortunately, Flash won’t do that.

So, I thought, could I do it manually?  The answer I came up with was: sort of.  Basically, I figured out a way to fake it.  It’s not perfect, though.

I implemented the functionality as a tool (accessed through the tools palette).  You use it similarly to the hand tool — click and drag to rotate all the elements on the main timeline (including any symbol you’re editing-in-place).

It works pretty well so far but the problem is that repeated rotation introduces more and more error in the transform matrix for each symbol, particularly the position.  It’s not a lot but it’s easily enough to be annoying if you’re doing precision positioning.

The other problem is that each time you use the tool it adds a bunch of entries to the history panel, meaning that to undo it you have to hit ctrl-Z like 20 or 30 times.  Not only that but any raw shapes you’re working on don’t correctly undo — they completely disappear when you undo back to before you used the rotation tool!  It’s clearly a bug with Flash’s undo system.  What I really wish, though, is that I could just tell Flash to treat each use of the tool as a single undo level — that’s how it treats commands in the Commands menu.  Does anyone know if there’s a way to do that?

What do you think?  Is this tool worth the negatives?  I think I can come up with a fix for the loss of precision but the undo thing is a big pain.

Leave a Reply

Your email address will not be published. Required fields are marked *