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

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

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

Регистрация: Mar 2009
Сообщений: 51
Question Диспетчирезация события MouseEvent3D.MOUSE_UP.

Здравствуйте!

Возникла следующая проблема:
Я делаю перетаскивание изображения текстуры с панели на вьюпорт.
По плану, я должен определить, что изображение отпущено на вьюпорте и определить на каком объекте.

Изображению выставляю mouseEnable = false; и mouseChildren = false;
Затем подписываюсь stage.addEventListener(MouseEvent.MOUSE_UP, textureInViewHandler);
Проверяю if (e.target is View) то удаляю изображение и слушатель.
Также подписываюсь на scene.addEventListener(MouseEvent3D.MOUSE_UP, checkTextureInViewHandler);
И пока просто делаю trace(e.target);

Если перетаскиваем текстуру она благополучно удаляется, но на выходе ничего..
Если просто щелкаем по вьюпорту получаем [object3D null];

Почему событие не доходит до сцены?
Я пробовал еще лучами делать, но там есть ряд проблем с точностью пересечений..

Старый 01.06.2012, 08:03
Srednas вне форума Посмотреть профиль Отправить личное сообщение для Srednas Найти все сообщения от Srednas
  № 2  
Ответить с цитированием
Srednas

Регистрация: Nov 2010
Сообщений: 430
Попробуйте, как вариант, на 3д-объекте подписаться не на UP, а на MouseEvent3D.MOUSE_MOVE
что-то вроде:
Код AS3:
scene.addEventListener(MouseEvent3D.MOUSE_MOVE, checkTextureInViewHandler);
Как только событие произойдет, снимите слушатель:
Код AS3:
		private function checkTextureInViewHandler(e:MouseEvent3D):void{
				scene.removeEventListener(MouseEvent3D.MOUSE_MOVE, checkTextureInViewHandler);
				trace(e.target);
		}
__________________
Лучше спросить и выставить себя дураком на пять минут, чем не спросить и остаться дураком на всю жизнь.

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

Регистрация: Mar 2009
Сообщений: 51
Спасибо за совет) Я уже разобрался. Сделал вот так:
Код AS3:
private var _lastEtarget:Object3D = null;
 
scene.addEventListener(MouseEvent3D.MOUSE_MOVE, sceneMouseMoveHandler);
stage.addEventListener(MouseEvent.MOUSE_UP, stageMouseMoveHandler);
 
private function sceneMouseMoveHandler(e:MouseEvent3D):void {
 
	_lastETarget = e.target as Object3D;
 
}
 
private function stageMouseMoveHandler(e:MouseEvent3D):void {
 
	trace(_lastETarget);
 
}

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

Теги
event , MouseEvent3D , View
Опции темы
Опции просмотра

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

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


 


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


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