Вообщем, такая проблема.
Есть клип Base.baseClip, я его уменьшаю или увеличиваю при вращении скрола. Как сделать так, чтобы объект, который находится под мышкой оставался на месте. То есть нужно как-то хитро сдвигать Base.baseClip, чтобы компенсировать увеличение.
Вот как поступаю я:
Tools.Zoom - функция масштабированияКод:mouseListener.onMouseWheel = function(delta:Number) { * *Tools.Zoom(2*delta); };
Всё это работает почти как надо. ПОЧТИ. Просто пи увеличении или уменьшении объект всё-таки сдвигается.Код:private static function Zoom(_zoomDec:Number) { ****var newScale:Number = Base.baseClip._xscale+_zoomDec; ****var oldX:Number=Base.baseClip._xmouse; ****var oldY:Number=Base.baseClip._ymouse; ****//не даём слишком увеличить или уменьшить клип * ****if (newScale>33 && newScale<300) { *Base.baseClip._yscale=Base.baseClip._xscale=newScale; ****} else { *return; ****} * * * * * * * *//компенсируем растяжение ****Base.baseClip._x-=oldX-Base.baseClip._xmouse; ****Base.baseClip._y-=oldY-Base.baseClip._ymouse; }
В чём же дело?
Я понимаю, что это скорее математика, чем Флеш, но может уже кто-то такое делал? Масштабирование я имею ввиду.
Или кто-то может привести формулы для масштабирования относительно центра.



