网格检测仅在我打开控制台后才能工作

时间:2014-05-15 13:41:38

标签: javascript three.js developer-tools console.log raycasting

我用three.js编写了一个应用程序,当鼠标点击它们时,我想检测某些圈子。 问题是,只有当我打开(然后关闭或不关闭,并不重要)Chrome开发人员工具时,它才能正常工作!如果我没有检测到非常困难地点击圈子(一次是5次)!

我读了这个Why does JavaScript only work after opening developer tools in IE once?

我删除了控制台电话(即使我不在IE上运行它)。虽然,在我下载的three.js文件中有很多控制台电话,但我不认为这是问题所在。

我该怎么办?!

代码圈子的代码:

for (var i = 0; i <6; i++) {

                        for (var j = 0; j < 16; j++) {

                              var crcl = {};


                                crcl.obj = new THREE.Mesh( new THREE.CircleGeometry( 1.7, 30, 0, Math.PI * 2 ), mat);
                                crcl.obj.position.set(j*4.5+7, 277-i*3, 250);
                                crcl.obj.scale.set(1,1,1);

                                scene.add(crcl.obj);
                                SlotsToDetect.push(crcl.obj); // array to help detect click 
                                PlayingSlotMatrix[i][j]=crcl; // array that hold circles for future handling

                              }
 }

找到圈子的代码:

var intersectsSLOTS = raycaster.intersectObjects(SlotsToDetect, true); 
 if(intersectsSLOTS.length>0 ){

               clickedObject=intersectsSLOTS[0].object; 
               updateSlots(clickedObject.id);

  }

编辑:我想补充一点,有时我会收到错误&#34;无法读取属性&#39; getDescendants&#39;未定义&#34;对于delta intersectDescendants = function(object,raycaster,intersects){..}函数在Three.js文件中。

编辑2:Chrome根本不显示警告()。虽然,它显示了控制台调用。这是什么意思?

0 个答案:

没有答案