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

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

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

Регистрация: Oct 2009
Сообщений: 145
Отправить сообщение для mr_pol с помощью ICQ
По умолчанию Как узнать скорость курсора?

Как узнать скорость курсора? Я думаю, отслеживать его координаты, например, раз в секунду с помощью setInterval и сравнивать с реальным положением курсора

Может есть какой-нибудь другой способ) буду рад, если кто-нибудь поделится хорошей идеей или готовым решением

Старый 05.01.2010, 13:01
Zik. вне форума Посмотреть профиль Отправить личное сообщение для Zik. Найти все сообщения от Zik.
  № 2  
Ответить с цитированием
Zik.
 
Аватар для Zik.

Регистрация: Nov 2007
Сообщений: 1,724
а в чем должна измерятся скорость? в пикселей/секундах?

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

Регистрация: Oct 2009
Сообщений: 145
Отправить сообщение для mr_pol с помощью ICQ
да! ...можно и километры в час

но думаю, не важно. мне бы сам способ измерения

Добавлено через 3 часа 1 минуту
нашел кое-что в гугле и сделал так:

Код AS1/AS2:
onEnterFrame = function () {
	sx = Math.abs(_root._xmouse-this.oldx);
	sy = Math.abs(_root._ymouse-this.oldy);
	speed = Math.round(Math.sqrt(Math.pow(sx, 2)+Math.pow(sy, 2), 2));
	this.oldx = _root._xmouse;
	this.oldy = _root._ymouse;
};
speed - типа скорость. но это не скорость курсора, а расстояние от начальной точки курсора до конечной на onEnterFrame. Как измерить скорость максимально точно?

Старый 05.01.2010, 20:05
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от mr_pol Посмотреть сообщение
speed - типа скорость. но это не скорость курсора
Вполне себе скорость. Просто единица времени равна частоте изменения кадров.

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

Регистрация: Oct 2009
Сообщений: 145
Отправить сообщение для mr_pol с помощью ICQ
В этом случае если двигать курсор медленно, то скорость эта зачастую равна 0.

Но я пока остановился на таком варианте:
Код AS1/AS2:
onEnterFrame = function () {
	sx = Math.abs(_root._xmouse-this.oldx);
	sy = Math.abs(_root._ymouse-this.oldy);
	speed = Math.floor(Math.sqrt(Math.pow(sx, 2)+Math.pow(sy, 2), 2));
	mc._x += (_xmouse-mc._x)/6;
	mc._y += (_ymouse-mc._y)/6;
	this.oldx = mc._x;
	this.oldy = mc._y;
};
где mc - мувик, таскающийся за курсором. У кого-нибудь есть другие варианты решения этой задачи?


Последний раз редактировалось mr_pol; 05.01.2010 в 20:50.
Старый 05.01.2010, 21:00
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Скорость нулевая, потому что округляется floor-ом и round-ом до целого.

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

Регистрация: Oct 2009
Сообщений: 145
Отправить сообщение для mr_pol с помощью ICQ
Да, округляется. Но даже и без них при fps = 30 скорость частенько равна 0. а второй вариант работает лучше

Старый 06.01.2010, 00:46
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 8  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Если второй вариант работает лучше, то чего вам еще надо?
Понятно, что при onEnterFrame скорость зачастую будет равна нулю, вы поставьте onMouseMove, и тогда не будет.
__________________
hauts.ru

Старый 06.01.2010, 01:09
aksios вне форума Посмотреть профиль Отправить личное сообщение для aksios Найти все сообщения от aksios
  № 9  
Ответить с цитированием
aksios
loading 50%
 
Аватар для aksios

Регистрация: Jun 2005
Адрес: I am where I should be
Сообщений: 3,567
Отправить сообщение для aksios с помощью ICQ
mr_pol, а зачем Вам это надо?

Старый 06.01.2010, 01:16
mr_pol вне форума Посмотреть профиль Отправить личное сообщение для mr_pol Найти все сообщения от mr_pol
  № 10  
Ответить с цитированием
mr_pol
 
Аватар для mr_pol

Регистрация: Oct 2009
Сообщений: 145
Отправить сообщение для mr_pol с помощью ICQ
Hauts, эффект один и тот же что при onEnterFrame, что и при onMouseMove. Только onMouseMove почему-то не 0 дает, а 1. я понятия не имею почему)

а я далеко не программист и второй вариант склепал своими кривыми ручками, поэтому и хотел бы услышать совет кого-нибудь более опытного.

Добавлено через 2 минуты
aksios, если это ваш ответ, то он меня не устраивает)

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

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

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


 


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


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