У меня есть приложение с одной страницей, в котором много вещей, используя durandal. На одной странице у меня есть ссылка, которая ведет к другой странице, где отображается 3D-модель. OrbitControls используются, чтобы сделать поворот модели и т. Д. Это забирает мой левый клик по умолчанию и правый щелчок. После того, как вы оставите эту страницу, она по-прежнему поддерживает привязки мыши, а мой левый клик и правый щелчок становятся бесполезными для некоторых видов использования, таких как: выбор тега, означающий, что входные теги не могут быть снова доступны.Выпуск OrbitControls в threejs
Я мог бы освободить привязки и сбросить их, если бы знал, как это сделать. Существует функция деактивации, которая вызывается, когда это 3d-окно закрывается, но я не знаю, какой кусок кода писать там. Любая помощь была бы чрезвычайно полезна. Я сомневаюсь, что любой код будет полезен, поэтому я не стану его использовать.
Спасибо!
Благодаря запросу, здесь упрощено ViewModel:
define(['services/logger'], function (logger) {
var vm = {
attached: attached
};
return vm;
function attached(view) {
var camera, cameraTarget, scene, renderer, controls;
init();
animate();
function init() {
...
controls = new THREE.OrbitControls(camera);
...
}
function animate(){...}
function render(){...}
}
}
View является чрезвычайно сложным, но вставили здесь в полном объеме:
<div id="canvasDiv" style="overflow: hidden; width:100%; height:100%">
</div>
Обновлен вопрос с упрощенной моделью просмотра. Я только начал использовать Три дня назад, поэтому на самом деле не могу ответить подробно, что происходит. Мне не нужны реальные привязки из-за того, что я делаю только предварительный просмотр модели, а не редактора. – Dominictus
Обновлено мое сообщение выше – Hans
Я посмотрел немного дальше, я перечитал ваш вопрос и увидел, что у вас уже есть деактивировать обратный вызов. Я googled OrbitControls. Это то, что вы используете? http://tileableart.com/code/natureof/js/three/js/controls/OrbitControls.js Причина: Я просмотрел этот файл для addEventListener. Есть шесть случаев. Вам нужно снова удалить этих прослушивателей событий в своем деактивирующем обратном вызове, и щелчки мышью (и другие события) должны быть снова вашими :) – Hans