Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.05.2007, 09:49
_MKR_ вне форума Посмотреть профиль Отправить личное сообщение для _MKR_ Найти все сообщения от _MKR_
  № 1  
Ответить с цитированием
_MKR_
 
Аватар для _MKR_

Регистрация: May 2007
Сообщений: 8
Отправить сообщение для _MKR_ с помощью ICQ
По умолчанию Тормоза при реализации эффекта от движения мыши

Нужен мудрый совет.
А суть дела такова: в презентации хочу сделать фоновую сеточку, состоящую из клипа полоски(клип Line), которая при наведении мыши должна проигрываться (в моем случае вспыхивать и плавно гаснуть: менять прозрачность).Возникает ряд косяков:
косяк №1 скрипт сильно грузит камень, т.к. каждой копией клипа Line при движении мыши происходит проверка положения курсора относительно точки регистрации.(для вертикальных: по y, для горизонтальных соответственно по X). И линий конечно же много (не один десяток).

косяк №2 При резком движении мыши координаты не успевают обсчитываться и некоторые линии не загораются(не проигрываются).

Что я сделал: для того чтобы мышка не "проскакивала" мои линии, я увеличил рассояние между линиями и увеличил границы в которых линия должна работать:

Код:
onClipEvent (mouseMove) {
  XM=this._xmouse;
  
  if(XM>-25 and XM<25)  //к своему стыду незнаю функцию модуля :confused:   
  {play()}
}
.
Но это непомогло, при резком перемещении курсора бяка получается.

Я решил подойти с другой стороны(как планировал с самого начала):
активную область линии сделать кнопкой и при on(RollOver) мой клип Line должен был Play(); 8-) заменил курсор, чтобы не появлялать "ручка" при наведении, но все равно - ТОРМОЗА. (как еже поизвращенней можно извратиться?)

Что делать, как быть? Я все сильней и сильней хочу теперь сделать эту сеточку.

P.S.: Можно сделать функцию которая будет отслеживать положение курсора и писать его в переменные XM и YM (например), затем сравнивать его положением каждой линии и при выполнении условия заставлять нужную линию проигрываться? (возникает геморой с адресацией на каждую линию и указанием координат).


Последний раз редактировалось _MKR_; 22.05.2007 в 12:17.
Старый 22.05.2007, 11:26
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
_MKR_, оформите в своем посте код тегами [code][/code].

Старый 22.05.2007, 11:30
Double вне форума Посмотреть профиль Отправить личное сообщение для Double Найти все сообщения от Double
  № 3  
Ответить с цитированием
Double
 
Аватар для Double

Регистрация: Mar 2001
Сообщений: 1,147
я бы сделал вот как:
а) линии разместил бы в координатах 5..15..25..и т.д.
б) обозвал бы их h0..h1..h2..и т.д. и v0..v1..v2..и т.д.
в)на маус_мув поставил бы что-то вот такое:
Код:
_root["h"+Math.round(_xmouse/10)].play();
_root["v"+Math.round(_ymouse/10)].play();
вроде должно работать и не тормозить. возможно, перед применением придётся обработать напильником
__________________
Кто говорит, тот не знает. Кто знает, тот не говорит.

Старый 22.05.2007, 12:17
_MKR_ вне форума Посмотреть профиль Отправить личное сообщение для _MKR_ Найти все сообщения от _MKR_
  № 4  
Ответить с цитированием
_MKR_
 
Аватар для _MKR_

Регистрация: May 2007
Сообщений: 8
Отправить сообщение для _MKR_ с помощью ICQ
попробовал.работает.вроде бы не тупит.но все равно иногда курсор проскакивает линии. спасибо.

Старый 22.05.2007, 12:35
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 5  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
добавить
Код:
updateAfterEvent();

Старый 22.05.2007, 12:38
_MKR_ вне форума Посмотреть профиль Отправить личное сообщение для _MKR_ Найти все сообщения от _MKR_
  № 6  
Ответить с цитированием
_MKR_
 
Аватар для _MKR_

Регистрация: May 2007
Сообщений: 8
Отправить сообщение для _MKR_ с помощью ICQ
И что это даст если не секрет? плавность движения курсора?

Старый 22.05.2007, 12:41
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 7  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
принудительную перерисовку экрана после события.
Хотя может и не помочь в данном случае.
PS - модуль = Math.abs(число)

Старый 22.05.2007, 12:52
_MKR_ вне форума Посмотреть профиль Отправить личное сообщение для _MKR_ Найти все сообщения от _MKR_
  № 8  
Ответить с цитированием
_MKR_
 
Аватар для _MKR_

Регистрация: May 2007
Сообщений: 8
Отправить сообщение для _MKR_ с помощью ICQ
код у меня получился следующий:
Код:
onClipEvent (mouseMove) {
XM=Math.round(_xmouse/50);
YM=Math.round(_ymouse/50);
_root["h"+XM].play();
_root["v"+YM].play();
updateAfterEvent();
}
но проблема с проскакиванием курсора через линии осталась.

Старый 22.05.2007, 14:05
Double вне форума Посмотреть профиль Отправить личное сообщение для Double Найти все сообщения от Double
  № 9  
Ответить с цитированием
Double
 
Аватар для Double

Регистрация: Mar 2001
Сообщений: 1,147
можно решить проблему двумя путями:
а) сделать компьютер на лампах, аналоговый. пускай в нём не будет дискретности;
б) запоминать предыдущее положение мышки и если какой-то (какие-то) десяток проскочили, "поджигать" его принудительно.
__________________
Кто говорит, тот не знает. Кто знает, тот не говорит.

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:56.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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