Yami
05.10.2009, 23:01
Здравствуйте! Есть такое дело:
Есть мувик (изображение), которое можно масштабировать (приближать/отдалять) при помощи скролла. Сперва была проблема с тем, что масштабировалось относительно левого-верхнего угла. Заморачиваться с точкой трансформации очень не хотелось и решил вопрос таким способом:
mouseListener.onMouseWheel = function (delta)
{
var oldx:Number;
var oldy:Number;
var dx:Number;
var dy:Number;
oldx = _root["layer0"]._xmouse;
oldy = _root["layer0"]._ymouse;
_root["layer0"]._xscale = _root["layer0"]._xscale + delta;
_root["layer0"]._yscale = _root["layer0"]._yscale + delta;
xm = _root["layer0"]._xmouse;
ym = _root["layer0"]._ymouse;
dx = xm - oldx;
dy = ym - oldy;
_root["layer0"]._x = _root["layer0"]._x + dx;
_root["layer0"]._y = _root["layer0"]._y + dy;
};
При первых шагах вроде все нормально но потом появляются погрешности, потом появляются огромные погрешности, потом - колоссальные и в итоге... лучше не видеть, что происходит...
Уже и пытался окрыгления вводить при получении координат мыши (никак не могу понять КАК они могут быть ДРОБНЫМИ? О_О)..
Есть мувик (изображение), которое можно масштабировать (приближать/отдалять) при помощи скролла. Сперва была проблема с тем, что масштабировалось относительно левого-верхнего угла. Заморачиваться с точкой трансформации очень не хотелось и решил вопрос таким способом:
mouseListener.onMouseWheel = function (delta)
{
var oldx:Number;
var oldy:Number;
var dx:Number;
var dy:Number;
oldx = _root["layer0"]._xmouse;
oldy = _root["layer0"]._ymouse;
_root["layer0"]._xscale = _root["layer0"]._xscale + delta;
_root["layer0"]._yscale = _root["layer0"]._yscale + delta;
xm = _root["layer0"]._xmouse;
ym = _root["layer0"]._ymouse;
dx = xm - oldx;
dy = ym - oldy;
_root["layer0"]._x = _root["layer0"]._x + dx;
_root["layer0"]._y = _root["layer0"]._y + dy;
};
При первых шагах вроде все нормально но потом появляются погрешности, потом появляются огромные погрешности, потом - колоссальные и в итоге... лучше не видеть, что происходит...
Уже и пытался окрыгления вводить при получении координат мыши (никак не могу понять КАК они могут быть ДРОБНЫМИ? О_О)..