|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Mar 2009
Сообщений: 51
|
Проблемы с MouseEvent3D.MOUSE_MOVE и object3D.localToGlobal(vector3D).
Здравствуйте!
У меня возникли проблемы с MouseEvent3D.MOUSE_MOVE и object3D.localToGlobal(vector3D). Помогите пожулуйста разобраться. Мне необходимо реализовать перетаскивание объектов на плоскости. Из моих тестов я понял, что просто по главному контейнеру scene перетаскивать объекты не получается. Поэтому я создал плоскость, которую в дальнейшем хочу сделать невидимой. Над плоскостью будут располагаться множество плоскостей с текстурами. Эти плоскости в не должны получать мышиные события, поэтому им я присвоил mouseEnabled = false; То есть есть сцена, главный контейнер - scene. Есть плоскость - debugPlane для того, чтобы координаты коректно брались. Без неё не выходит. И допустим пока 1 объект. Далее я назначил слушатели на главный контейнер. this._scene.addEventListener(MouseEvent3D.MOUSE_DOWN, onMouse3DDown); this._scene.addEventListener(MouseEvent3D.MOUSE_UP, onMouse3DUp); this._scene.addEventListener(MouseEvent3D.MOUSE_MOVE, onMouse3DMove); В обработчике onMouse3DMove я преобразовываю координаты в глобальные. (e:MouseEvent3D) var localVector = new Vector3D( e.localX, e.localY, e.localZ); var eventObj:Object3D = (e.target as Object3D); this._direction = eventObj.localToGlobal(localVector); Вроде все просто и должно работать. Но не все так просто. Видимо мало просто перевести координаты в глобальные. Также я заметил, что когда курсор на объекте, объект центрируется по курсору. Но, если курсор на плоскости - объект центрируется по курсору визуально со смещением по оси z. То есть курсор в ногах объекта. Но по оси z я не смещаю. Координаты x и y задаются не верно. Видимо нужно как-то дополнительно коректировать координаты? В чем могут быть ошибки? |
Часовой пояс GMT +4, время: 13:02. |
|
« Предыдущая тема | Следующая тема » |
Теги |
alternativa3d , localToGlobal , MouseEvent3D |
Опции темы | |
Опции просмотра | |
|
|