|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Mar 2009
Сообщений: 51
|
Диспетчирезация события 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]; Почему событие не доходит до сцены? Я пробовал еще лучами делать, но там есть ряд проблем с точностью пересечений.. |
|
|||||
Регистрация: Nov 2010
Сообщений: 430
|
Попробуйте, как вариант, на 3д-объекте подписаться не на UP, а на MouseEvent3D.MOUSE_MOVE
что-то вроде: Как только событие произойдет, снимите слушатель:
__________________
Лучше спросить и выставить себя дураком на пять минут, чем не спросить и остаться дураком на всю жизнь. |
|
|||||
Регистрация: Mar 2009
Сообщений: 51
|
Спасибо за совет) Я уже разобрался. Сделал вот так:
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 |
Опции темы | |
Опции просмотра | |
|
|