Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Лупа которая плавно догоняет курсор... (http://www.flasher.ru/forum/showthread.php?t=115027)

zveryuka 16.08.2008 13:19

Лупа которая плавно догоняет курсор...
 
Вложений: 1
Вот чего пытаюсь добиться:)
тоесть когда выводиш курсор за пределы флеша, а потом наводиш опять на рабочую область лупа плавно подлетает к курсору.)
есть код на мувиклипе(лупе)

Код:

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

Вложений: 1
нашел я решение проблемы:) и оказалось очень просто...

берем 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

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


Часовой пояс GMT +4, время: 02:42.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.