![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jul 2011
Сообщений: 79
|
Здравствуйте.
Реализую метод Drag&Drop.Проблема в следующем. Когда работаешь просто во флэше без 3D. Объект отрисовывается на плоскости и чтобы его переместить мышью методом Drag&Drop достаточно присвоить значения x,y мыши объекту. В случае с 3D когда присваиваешь объекту он в локальных координатах перемещается(То бишь там 3 координаты и расположены они как в 3DMax),а мне нужно чтобы он перемещался как в случае с 2D.А чтобы например передвинуть в глубь поворачиваешь камеру и двигаешь. Как это сделать? Сейчас сделано следующее: private function OnMouseDown3D(e:MouseEvent3D):void { trace("mousedown3d") stage.removeEventListener(MouseEvent.MOUSE_DOWN, OnMouseDown); stage.removeEventListener(Event.ENTER_FRAME, OnMouseMove); object = e.target as Mesh; stage.addEventListener(Event.ENTER_FRAME, OnMouseMove3D); } //Обработка события мыши private function OnMouseMove3D(e:Event):void { trace("mousedmove3d") controller.stopMouseLook(); object.x = scene.mouseX; object.y = scene.mouseY; } //Обработка события мыши private function OnMouseUp3D(e:MouseEvent3D):void { trace("mouseup3d") stage.removeEventListener(Event.ENTER_FRAME, OnMouseMove3D); stage.addEventListener(MouseEvent.MOUSE_DOWN, OnMouseDown); controller.startMouseLook(); } Последний раз редактировалось dimarik; 03.08.2011 в 17:10. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вопрос действительно связан с Alternativa3D 8?
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jul 2011
Сообщений: 79
|
Да.
Добавлено через 50 часов 49 минут Товарищи не у кого нет идей по этому поводу? Есть идея вычислить расстояние до плоскости отображения 2D объектов от камеры и вычислить расстояние от камеры до плоскости расположения 3D объекта. потом делать таким образом У объекта работаем с плоскостью XZ (y в 3D Max вроде глубину означает). Соответственно у объекта X = X мышки а Y = -Z объекта т.к. во флэш как я понимаю Y направлен из верхнего левого угла вниз а X в право. получаем Только как вот вычислить эти расстояние не могу понять. До плоскости 2D нужно через view порт колдовать,а вот как вычислить до плоскости объекта не знаю. |
![]() |
![]() |
Часовой пояс GMT +4, время: 05:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|