Âîîáùåì, òàêàÿ ïðîáëåìà.
Åñòü êëèï Base.baseClip, ÿ åãî óìåíüøàþ èëè óâåëè÷èâàþ ïðè âðàùåíèè ñêðîëà. Êàê ñäåëàòü òàê, ÷òîáû îáúåêò, êîòîðûé íàõîäèòñÿ ïîä ìûøêîé îñòàâàëñÿ íà ìåñòå. Òî åñòü íóæíî êàê-òî õèòðî ñäâèãàòü Base.baseClip, ÷òîáû êîìïåíñèðîâàòü óâåëè÷åíèå.
Âîò êàê ïîñòóïàþ ÿ:
CODE

mouseListener.onMouseWheel = function(delta:Number) {
Tools.Zoom(2*delta);
};

Tools.Zoom - ôóíêöèÿ ìàñøòàáèðîâàíèÿ
CODE
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;
}

Âñ¸ ýòî ðàáîòàåò ïî÷òè êàê íàäî. ÏÎ×ÒÈ. Ïðîñòî ïè óâåëè÷åíèè èëè óìåíüøåíèè îáúåêò âñ¸-òàêè ñäâèãàåòñÿ.
 ÷¸ì æå äåëî?
ß ïîíèìàþ, ÷òî ýòî ñêîðåå ìàòåìàòèêà, ÷åì Ôëåø, íî ìîæåò óæå êòî-òî òàêîå äåëàë? Ìàñøòàáèðîâàíèå ÿ èìåþ ââèäó.
Èëè êòî-òî ìîæåò ïðèâåñòè ôîðìóëû äëÿ ìàñøòàáèðîâàíèÿ îòíîñèòåëüíî öåíòðà.