2015-05-21 4 views
0

Кажется, что он делает то, что он должен делать, - пересекая сцену и обновляя сетки - однако, это не перечисление всех моих сеток на сцене - хотя они визуализируются (причудливый). Это также дает мне сообщения об ошибках, говорящие, что он не может пересечь сцену (хотя это и работает). Моя работа - мусор. Я предполагаю, что я просто приближаюсь к этому неправильно. Какие-либо предложения?Траверс не определен и производительность отстает THREE.js Часы? * хотя он работает *

Вот ссылка на пробег образца. http://codepen.io/wpdildine/pen/ZGprWp

function checkSec(prevSec){ 
    var mat = new THREE.MeshPhongMaterial({ color: 0xff9000 }); 
    var curTime = new Date(); 

    if (prevSec != curTime.getSeconds() || prevSec == null){ 
     scene.traverse(function(children){ 
      if (children instanceof THREE.Mesh && children.name == 'sec'){ 
       scene.remove(children)  
      } 
     });   
     prevSec = curTime.getSeconds(); 
     prevSec = setZeros(prevSec); 
     var secGeometry = new THREE.TextGeometry(":" + prevSec, {size:5, height:1}); 
     var sec = new THREE.Mesh(secGeometry, mat); 
     sec.name = 'sec'; 
     sec.position.set(10,0,0); 
     scene.add(sec); 
    }   
} 

ответ

1

Вы не должны пересечь сцену вообще, если вы сделаете переменные hour, min и sec глобальные переменные. Тогда вам просто придется позвонить:

scene.remove(hour); 

просто, прежде чем добавить новую hour сетку. То же самое для min и sec.

Также вы не должны иметь .shadowMapEnabled, когда вы не отрисовки теней.

+0

Я сделал настройки в соответствии с вашими спецификациями, и все, кажется, работает (я не могу поместить его в переменную, поскольку он должен быть в массиве для меня, чтобы удалить его). Тем не менее, я получаю случайные сбои, и я не могу понять, почему его пожирает столько ресурсов ... –

+0

, какая переменная должна быть массивом? – gaitat

+0

Мешевые объекты. –

Смежные вопросы