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

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

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

Регистрация: Jan 2008
Сообщений: 35
По умолчанию Отследить перемещение объекта

Требуется создать событие, которое будет происходить при перемещении объекта.
Пробовал так:

Код:
override public function set x(value:Number):void{
			dispatchEvent(new Event('qwerty'));
}
событие происходит, но перестает изменяться координата.
Возможно, такое событие где-то уже есть и я просто его не нашел. Тогда буду благодарен за указание на него

Старый 30.03.2009, 16:14
Dimonte вне форума Посмотреть профиль Отправить личное сообщение для Dimonte Найти все сообщения от Dimonte
  № 2  
Ответить с цитированием
Dimonte

Регистрация: Jun 2008
Сообщений: 51
В вашем коде очень не хватает строки
Код:
_x = value;
тогда и координата будет меняться

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

Регистрация: Oct 2006
Адрес: Киев
Сообщений: 18
поробуйте так
function set tX(x:int):void{
dispatchEvent(new Event('onXChange'));
this.x = x;
}
ну и соответственно меняете не x, а tX
__________________
merlinds.com - мой блог

Старый 30.03.2009, 16:21
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 4  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
Код AS3:
public override function set x(value:Number):void{
	if ( super.x == value ) return;
	super.x = value;
	super.dispatchEvent(new Event('qwerty'));
}

Старый 30.03.2009, 16:31
iforev вне форума Посмотреть профиль Отправить личное сообщение для iforev Найти все сообщения от iforev
  № 5  
Ответить с цитированием
iforev

Регистрация: Jan 2008
Сообщений: 35
Спасибо, работает. Только решить задачу это не помогло. Я перемещаю объект с помощью startDrag и думал, что данное событие будет срабатывать постоянно при перемещении объекта, но так не происходит

Старый 30.03.2009, 16:37
Dimonte вне форума Посмотреть профиль Отправить личное сообщение для Dimonte Найти все сообщения от Dimonte
  № 6  
Ответить с цитированием
Dimonte

Регистрация: Jun 2008
Сообщений: 51
Функция set x вызывается только когда вы ставите вручную значение x.
Чтобы событие срабатывало при перемещении, вам, по-моему, придется вешать ENTER_FRAME эвент или подобный на перетаскиваемый объект.

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

Регистрация: Jan 2008
Сообщений: 35
ENTER_FRAME сейчас применяю, но хотелось чего-нибудь менее ресурсоемкого

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

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
можно с таким же успехом сделать
Код:
override public function startDrag():void
у кастомного класса и переписать как надо

Старый 30.03.2009, 16:41
Dimonte вне форума Посмотреть профиль Отправить личное сообщение для Dimonte Найти все сообщения от Dimonte
  № 9  
Ответить с цитированием
Dimonte

Регистрация: Jun 2008
Сообщений: 51
CrazyFlasher, а разве startDrag не вызывается единожды в, собственно, начале перетаскивания?

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

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
не...я имею ввиду полностью переписать на enter_frame и не вызывать super.startDrag

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

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

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


 


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


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