PDA

Просмотр полной версии : вопрос для програмистов


spayeler
29.08.2002, 13:35
есть мувик а1 и точка А на этом мувике
надо при нажатии на т.А увеличить м. а1 и сместить т.А в центр т.е. надо сделать обычный zoom

LostWarrior
29.08.2002, 13:41
Я не понимаю в чем проблема? Скалиш мувик, точке А присваеваеш координаты середины: _x=width/2; _y=height/2;

Или я опять что-то не так понял?

spayeler
29.08.2002, 13:47
пробовал, не работает вернее работает только при первом клике, а потом начинает глючить

JeeP
29.08.2002, 13:48
2LostWarrior:

наверное он не программист, потому и задает вопросы для программистов!!!

2spayeler:
используй _xscale & _yscale для зума!!!

LostWarrior
29.08.2002, 13:53
выложи исходник. Непонятно где вообще может глючить...

spayeler
29.08.2002, 13:56
да использую я xscale&yscale

on (release) {
setProperty ("_root.okno.foto", _xscale, 100*i);
setProperty ("_root.okno.foto", _yscale, 100*i);
xfoto = _root.okno.foto._x;
yfoto = _root.okno.foto._y;
_root.okno.foto._x = xfoto-_root.okno._xmouse*2;
_root.okno.foto._y = yfoto-_root.okno._ymouse*2;
i+=2;
}

только это не работает после первого клика

JeeP
29.08.2002, 13:59
i+=2; наверх!

LostWarrior
29.08.2002, 14:09
Ты его каждый раз скалиш все сильнее. Может в этом ошибка?

spayeler
29.08.2002, 14:13
2JeeP: i изначально =2 по этому нет разници

вот исходник

spayeler
29.08.2002, 14:23
2JeeP: i изначально =2 по этому нет разници

исходник сейчас выложить не могу много весит, уменьшу выложу

spayeler
29.08.2002, 14:29
2LostWarrior:
ошибка не в скале, а в расчете координат, только не могу понять где, смещение получается не точное и с каждім кликом погрешность все больше

LostWarrior
29.08.2002, 14:37
Сравни локальные и глобальные координаты. Или переводи все localToGlobal...

spayeler
29.08.2002, 15:05
вот исходник zoom (http://fenix.com.ua/my/zoom.zip)

C2Plus
29.08.2002, 17:23
CenterX и CenterY = координаты центра в руте.
ClickX и ClickY = куда пользователь ткнул в мувике в координатах мувика.

MC - мувиклип.

MC._xscale *=1.5;
MC._yscale *=1.5;

Compensate = new Object();
Compensate.x = ClickX;
Compensate.y = ClickY;
MC.localToGlobal(Compensate);

Compensate.x -= CenterX;
Compensate.y -= CenterY;

MC._X -= Compensate.X;
MC._Y -= Compensate.Y;



должно работать, у меня рабоатет так:
(скрипт на кнопке в скалируемом мувике)


on (press) {

this._xscale *=1.5;
this._yscale *=1.5;

Compensate = new Object();
Compensate.x = _xmouse;
Compensate.y = _ymouse;
this.localToGlobal(Compensate);

Compensate.x -= 100;
Compensate.y -= 100;

this._X -= Compensate.X;
this._Y -= Compensate.Y;
}

spayeler
29.08.2002, 17:42
2C2Plus:
у меня не работает, можно исходник?