Actionscript 3.0: Scale Object from Center Point

Note: This is almost exactly the same solution I posted earlier for rotating an object around its center point (Actionscript 3.0: Rotate Around Center Point). I thought I’d post this slightly altered solution for people who need it.

Problem:

You need to scale a movieclip/sprite from its center point, but its registration point is at (0,0) and you can’t and/or don’t feel like putting this object in the center of a container movieclip and rotating that

Solution:

TCBWMO (Take care of business with the matrix object).
Read more

Flash/Actionscript: Innaccurate math results

Problem:

You’re working some math equations with Actionscript and tracing the results when you notice some results are off by a very small value.
output:
2
2.1
2.2
2.3
2.4
2.5000000001
2.6
2.7000000001
2.8
2.9
3

Solution:

This is called a floating point error and is apparently a normal computing error that affects all aspects of computing, not just flash. You can fix this by running the values through the correctFloatingPointError function I’ve posted below.
Read more

Using the free Flex 3 SDK with Flash Develop

Recently I got back into Flash and began to learn Actionscript 3.0. Things have definitely come a long way in the last few years, and I’ve become interested in Adobe’s quest to turn the Flash format into a full fledged rich internet application framework of sorts. I’m surprised, and personally impressed on how far all this has come. Here’s a couple things I’ve come to realize (or knew about, but never dived into) in the last year or so:

Read more

Actionscript 3.0: Rotate Around Center Point

Problem:

You need to rotate a movieclip/sprite around it’s center point, but its registration point is at (0,0) and you can’t and/or don’t feel like putting this object in the center of a container movieclip and rotating that.

Solution:

Use the transform matrix and show it who’s boss.

If you want to get this done simply and quickly, you can use this rotateAroundCenter function:

 private function rotateAroundCenter (ob:*, angleDegrees:Number, ptRotationPoint:Point) {
      var m:Matrix=ob.transform.matrix;
      m.tx -= ptRotationPoint.x;
      m.ty -= ptRotationPoint.y;
      m.rotate (angleDegrees*(Math.PI/180));
      m.tx += ptRotationPoint.x;
      m.ty += ptRotationPoint.y;
      ob.transform.matrix=m;
 }
Read more