Download: Source only | Source + Examples

This update consolidates some of the changes people have requested and some refactoring.

Usage:
// Only need one instance per project
var fts:FreeTransformManager = new FreeTransformManager(false);
// Register any DisplayObject and you are done. handles are activated when user clicks on testObj
fts.registerSprite(box);

You can also use the functions below to manually set the properties. These functions trigger the FreeTransformEvent so it should work seamlessly with the handles. For more information, download the example to take a look at how they are used.

public function setWidth(w:Number):void {};
public function setHeight(h:Number):void {);
public function setSize(w:Number, h:Number):void {};
public function setRotateDeg(r:Number):void {);
public function setRotateDeg(r:Number):void {};
public function setScale(s:Number):void {};
public function setRotate(r:Number):void {};
public function setPos(x:Number, y:Number):void {};



Other users:
// Listen to ON_TRANSFORM event.
fts.addEventListener(FreeTransformEvent.ON_TRANSFORM, onTransform);
// Manually activate the handlers on a DisplayObject
activateSprite(sourceSprite:DisplayObject):void
// Deactivate a DisplayObject
deregisterSprite(sourceSprite:DisplayObject):void
// Update the handlers after the DisplayObject is modified externally
updateAfterChange():void
// Whether to show tracking points and angle lines
property showInterestingStuff
// Hides handlers. But they will be visible again the next time the user clicks on a registered DisplayObject
hideHandlers():void

Properties exposed by event:
targetObject:DisplayObject // The DisplayObject that is in focus.
x:Number // X position
y:Number // Y position
rotation:Number // Rotation in radians
rotationInDeg:Number // Rotation in degrees
scale:Number // Scale (1 = 100%)

Styling properties:
handleOutlineColor:uint;
handleFillColor:uint;
boundingBoxOutlineColor:uint;
handleRadius:Number;
handleOutlineThickness:Number;
boundingBoxOutlineThickness:Number;

css.php