Вы должны хранить все для каждого самолета внутри своего мувиклипа. Но все же полезно знать, как это сделать без встроенного scaleX / scaleY. С вашей текущей настройкой это можно сделать следующим образом (где плоскость - это ваша плоскость, масштаб - это коэффициент (между 0-1), к которому вы собираетесь масштабировать плоскость, а турель - это башня, которая должна масштабироваться относительно самолет):
function scalePlane(plane, turret, scale:Number):void {
//scaling coordinates:
var relativeX:Number = turret.x - plane.x;
var relativeY:Number = turret.y - plane.y;
var newRelativeX:Number = relativeX*scale;
var newRelativeY:Number = relativeY*scale;
turret.x = plane.x + newRelativeX;
turret.y = plane.y + newRelativeY;
//scaling size:
turret.scaleX *= scale;
turret.scaleY *= scale;
plane.scaleX *= scale;
plane.scaleY *= scale;
}
scalePlane(plane1, turret1, 0.9);
//overall scale is 0.9;
//next frame:
scalePlane(plane1, turret1, 0.9);
//now the overall scale is 0.81 because you are multiplying the scales
Я не проверял это, но это должно работать, пока у самолета и башни есть одни и те же родители. Обратите внимание, что масштаб в этом случае является относительным, поэтому вам, возможно, придется немного изменить свои вычисления. (если бы вы назвали этот код со шкалой 0,5 дважды, тогда плоскость имела бы шкалу 0,5 * 0,5 = 0,25)