Thanks for the quick reply. My situation is a little unique. Maybe if illustrate:-
1. Create a transformManager and setBounds.
2. Add a textField, move / scale / rotate it, set text.
3. If the user changes product, remove textField from stage, but keep in memory with x / y / rotation / text properties etc. Destroy current instance of transformManager
4. Create a new transformManager (with different size and setBounds based on new Product.
5. Add the textField back to the transformManager <-- (this is where my issue arises. Often the textField will now be too big and out of the bounds. I want to now determine how much I need to scale it down to fit and (with a bit of luck, scale the text accordingly.
I have been looking at the matrix.scale method, and I have had limited luck with it. Alas, i don't fully understand how to use it. So far I have:-
var plateRec:Rectangle = _plate.getBounds(this); // TransformManager Bounds
var tfRec:Rectangle = _tf.getBounds(_plate); // textField bounds
var matrx:Matrix = new Matrix();
matrx.scale((plateRec.width / tfRec.width),(plateRec.height / tfRec.height))
if(matrx.a < 1 && matrx.d < 1)
_tf.transform.matrix = matrx;
if(matrx.a < 1 && matrx.d > 1)
_tf.transform.matrix = new Matrix(matrx.a,0,0,1,0,0);
if(matrx.a > 1 && matrx.d < 1)
_tf.transform.matrix = new Matrix(1,0,0,matrx.d,0,0);
Thanks for your help so far.  I am using AS3 [/edit]