Наблюдаем классический вариант "борьба твинов".
Предлагаю такой вариант:

Код:
import mx.transitions.Tween;
import mx.transitions.easing.*;
easeType = Strong.easeOut;
zoomTime = 60;
var t1:Tween = new Tween(a, "_x", easeType, a._x, a._x, 1, false);
var t2:Tween = new Tween(a, "_y", easeType, a._y, a._y, 1, false);
var t3:Tween = new Tween(a, "_xscale", easeType, a._xscale, a._xscale, 1, false);
var t4:Tween = new Tween(a, "_yscale", easeType, a._yscale, a._yscale, 1, false);
function viewFullObject(object)
{
documentWidth = 550;
documentHeight = 400;
space = 20;
object.swapDepths(this.getNextHighestDepth());
if (object._width > object._height)
zoom = (documentWidth - space) / object._width;
else
zoom = (documentHeight - space) / object._height;
x = documentWidth / 2 - (object._width * zoom) / 2 - object._x * zoom;
y = documentHeight / 2 - (object._height * zoom) / 2 - object._y * zoom;
t1.continueTo(x, zoomTime);
t2.continueTo(y, zoomTime);
t3.continueTo(zoom * 100, zoomTime);
t4.continueTo(zoom * 100, zoomTime);
}
for (i = 0; i < 20; ++i)
{
_root.a[i].onRelease = function()
{
viewFullObject(this);
}
}
Только поставьте 31 кадр в секунду - я поставил useSecond в false, соответственно zoomTime = 60 кадров. Это, впрочем, непринципиально, можете юзать секунды.
upd: нет, это принципиально. Я вернул секунды и оно начало дергаться.