PDA

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


zveryuka
16.08.2008, 13:19
Вот чего пытаюсь добиться:)
тоесть когда выводиш курсор за пределы флеша, а потом наводиш опять на рабочую область лупа плавно подлетает к курсору.)
есть код на мувиклипе(лупе)

onClipEvent (mouseMove) {
xm = _root._xmouse;
ym = _root._ymouse;
_x = xm;
_y = ym;
mc._x = -xm;
mc._y = -ym;
updateAfterEvent();
}

onClipEvent (enterFrame) {
//Движение по оси X
mx = _root._xmouse;
if (mx<_x) {
dx = _x-mx;
} else {
dx = mx-_x;
}
moveSpeedx = dx/3;
if (mx<_x) {
_x = _x-moveSpeedx;
} else {
_x = _x+moveSpeedx;
}

//Движение по оси Y
my = _root._ymouse;
if (my<_y) {
dy = _y-my;
} else {
dy = my-_y;
}
moveSpeedy = dy/3;
if (my<_y) {
_y = _y-moveSpeedy;
} else {
_y = _y+moveSpeedy;
}
}

но при

_x = xm;
_y = ym;

лупа прыгает на курсор,

когда убираю эттот код
_x = xm;
_y = ym;

при вождении курсора маскируемая картинка начинает дергаться...никак немогу с этими дерганиями спраавиться...

в АS не силен, код склепал с разных исходников

вот мой исходник...

zveryuka
17.08.2008, 12:11
нашел я решение проблемы:) и оказалось очень просто...

берем movieclip с лупой (назовем его для удобства "masker" и на нем пишеться код

onClipEvent(enterFrame)
{
dx = _root._xmouse - _x;
_x = _x + dx / 3;
dy = _root._ymouse - _y;
_y = _y + dy / 3;
}

этот же movieclip делаем маской картинки которую мы хотим показывать(конвертим предварительно наш рисунок в graphic).
при этих действиях будет на экране плавать только линза.

Чтобы лупа была у нас во всей красе берем с библиотеки тот же movieclip с нарисованной лупой вставляем в новый layer, (назовем его "loupe") выравниваем по координатам на равне с movieclip "masker" и прописываем на нем тот же код

onClipEvent(enterFrame)
{
dx = _root._xmouse - _x;
_x = _x + dx / 3;
dy = _root._ymouse - _y;
_y = _y + dy / 3;
}

Теперь на главной сцене в фрейме на котором размещены все наши данные пишем код
stop();
Mouse.hide();
push ctr+enter

исходник прилагается....