AS3: TransformManager
If you’ve ever had to make an application where the user can scale/rotate/distort objects on the stage you know its no easy task. Well, Jack Doyle, a good friend and the wonderful author of TweenLite/TweenFilterLite/TweenMax, has release an AS3 version of his TransformManager class that allows you to easily add this functionality to your projects.
Here is an excerpt taken directly from Jack’s post about the topic:
TransformManager makes it easy to add interactive scaling/rotating/moving of DisplayObjects to your Flash application. It uses an intuitive interface that’s similar to most modern drawing applications. When the user clicks on a managed DisplayObject, a selection box will be drawn around it along with 8 handles for scaling/rotating. When the mouse is placed just outside of any of the scaling handles, the cursor will change to indicate that they’re in rotation mode. Just like most other applications, the user can hold down the SHIFT key to select multiple items, to constrain scaling proportions, or to limit the rotation to 45 degree increments.
As you can see it is a very powerful tool and the AS3 version packs on a bunch of new features that do not exist in its AS2 counterpart. As with his tweening family classes, Jack has put countless hours into TransformManager and has chosen to release it not as open source but rather for a nominal fee. He currently has a sale going on until August 2nd for $199 and then the class jumps to its original price, $299. If you’re thinking that is a rather steep price for such a utility, let me give you my experience with it.
To quickly note, I used the AS2 version of TransformManager on a project recently that was, in itself, a living nightmare. I had to do about 100 other things at once and had a very small window of time to do them in. I was rather worried about the request to be able to upload heads and edit them as I hadn’t done that before. My worry wasn’t about how to do it, however, yet trying to fit it into the time frame that I was given to complete the project as a whole. Jack pointed me over to the TransformManager and I was literally done with the task within an hour (and it only took an hour because I had to add some conditional logic in my application to work around some of the other stuff I was doing). It literally saved me a couple of days of work I’d imagine and to compare the time it saved me to the time I would have had to invest into it to make something similar (and probably not as small/polished/feature-filled as this) it almost comes out to be priceless. Trust me when I tell you that the price you pay for the ability to do this up front is going to come back to you tenfold when used in a project.
I’d also like to point out that the AS2 version is still free. If you’re working with AS3, however, you just absolutely NEED to buy this class and add it to what is probably your code bank immediately.
If you found this post useful, please consider leaving a comment, subscribing to the feed, or making a small donation.
5 Comments
Hey Melvyn,
I just took a quick look at Senocular’s and it is I think more comparable to Jack’s AS2 TransformManager (which is also free) than his AS3 version. One thing I noticed right away was that it had no ability to do multiple selections. Nice tool, nonetheless.
Well, first let me admit that Senocular’s AS3 tool blows my old AS2 one out of the water
He’s really quite a code genius and I’ve got nothin’ but respect for him.
His AS3 TransformTool differs from my AS3 TransformManager in several ways. His offers skewing and the ability to interactively move the registration point around. Pretty cool. However, my AS3 TransformManager offers a few unique things:
1) Multiple selections (this was the biggest challenge for me)
2) Easily control transformations via code, like scaleSelection(0.5, 0.8) or rotateSelection(2.8) or moveSelection(30, 490). You could even use TweenLite to change values over time, like TweenLite.to(manager, 2, {selectionScaleX:1.5, selectionScaleY:2});
3) Resize textfields without distorting the text inside of them
4) DELETE/BACKSPACE key functionality
5) Arrow key functionality (for movement)
6) Constrained horizontal/vertical movement with the SHIFT key
7) Documentation
There are probably more differences, but those are a few that came to mind. I’m no expert on his TransformTool either, so some of my assertions above may not be entirely accurate.
Senocular’s tool is very well-built, so if you don’t need the extra features that my AS3 TransformManager offers, heck, why pay for it? But one of my goals is to build stuff that’s very easy to use, and I’d like to think that TransformManager’s price is well worth it when you consider all the time and effort it’ll save you, plus I’m pretty sure it’s the only tool around that offers multiple selections.
I figured Jack would point out the differences rather than me trying to write them all down
I do have to add to my original message, however, that I have nothing but the utmost respect for Senocular and his genius coding skills. He has helped me a bunch of times before on forums and by offering his code to the public and is one of the key reasons why I started to blog the way I do today. Plus, when he was living in Maryland back in the day, I gave him shit for being so good and not working at a larger company that would give him more exposure. I’m, like, a prophet… or something.













Indeed, Jack Doyle’s Transform Tool looks really good! Never tried it but I use Tweenlite everyday so I assume it rocks too.
But I’d like to mention the tool I use from Senocular (AS3), which apparently does exactly the same job, and is totally free. It’s quite easy to customize and extend.
http://www.senocular.com/demo/TransformToolAS3/TransformTool.html
and an example for Flex: http://joelhooks.com/examples/transformTool/
ps: Thank you Matt for all your classes! It saved me some hours of work a few times