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

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

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

Регистрация: Sep 2005
Сообщений: 11
По умолчанию обработка onMouseMove

вот такое дело, так как событие onMouseMove является глобальным, то возникает достаточно часто. В случае, когда нужно сделать перетаскиванье мышью какого-то элемента можно написать что-то вроде этого:

Код:
var x : Number = 0;

clip.onPress = function ()
{
	this._parent.x = this._xmouse;
}

clip.onMouseMove = function() 
{	
	if (this._parent.x != 0)
	{
		this._parent.clip._x += this._xmouse - this._parent.x;
	}
}

clip.onMouseUp = function ()
{
	this._parent.x = 0;
}
но в этом случае событие onMouseMove все равно будет очень часто вызываться в пустую - примерно в 99.99% случаев, не лучше ли использовать вариант:
Код:
var x : Number = 0;

clip.onPress = function ()
{
	this.onMouseMove = this._parent.clipOnMouseMove;
	this._parent.x = this._xmouse;
}

function clipOnMouseMove() 
{	
	this._parent.clip._x += this._xmouse - this._parent.x;
}

clip.onMouseUp = function ()
{
	this.onMouseMove = null;
}
не знаю, може это уже обсуждалось. посоветуйте какой подход рациональнее использовать.

Старый 21.08.2007, 16:25
Infectedcell вне форума Посмотреть профиль Отправить личное сообщение для Infectedcell Посетить домашнюю страницу Infectedcell Найти все сообщения от Infectedcell
  № 2  
Ответить с цитированием
Infectedcell
 
Аватар для Infectedcell

Регистрация: Mar 2006
Адрес: Москва
Сообщений: 415
а принципиально отказываться от
Код:
startDrag()
stopDrag()
?
__________________
Mix: Хобби | Работа | undefined

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

Регистрация: Apr 2007
Сообщений: 1,369
Для перетаскивание есть
Код:
this.startDrag()

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

Регистрация: Sep 2005
Сообщений: 11
а при драге событие перемещения объекта можно отлавливать только onMouseMove или при перемещениии генерится другое событие(честно юзал поиск =))?

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Не, не генерится. Если не хотите все время просчитывать что-то связанное с движениями мыши, а хотите делать это только при драге, создавайте при нажатии специальный листенер а при отпускании удаляйте его. Функцию счета свяжите с событием в этом листенере. Тогда считаться будет только при драге.
Код:
var DragListener:Object = new Object();
my_mc.onPress = function(){
this.startDrag();
Mouse.addListener(DragListener);
}
my_mc.onRelease =  my_mc.onReleaseOutside = function(){
this.stopDrag();
Mouse.removeListener(DragListener);
}
DragListener.onMouseMove = function(){
trace('чего-то считаем, пока объект тащится');
}
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 22.08.2007 в 02:06.
Создать новую тему Ответ Часовой пояс GMT +4, время: 02:10.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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