Javascript ThreeJS:IE11在Render()上崩溃;
当我使用WebGL编程时,Internet Explorer 11出现了一些奇怪的问题。我在所有浏览器中都运行得很好,但当我突然改变4个网格的位置时。。。IE决定崩溃(在调试模式下,不指向代码中的任何特定内容) 我和你一起跑IE 11 GL版本-WebGL 0.93 着色语言版本-WebGL GLSL ES 0.93 我得到以下错误: iexplore.exe中0x03F6435B(mshtml.dll)处未处理的异常:0xC0000005:访问冲突写入位置0xBF35051C。 (5)最后一个调用堆栈: mshtml.dll!CMarkupPointer::RemoveMeFromList(void)未知 mshtml.dllJavascript ThreeJS:IE11在Render()上崩溃;,javascript,internet-explorer,crash,three.js,webgl,Javascript,Internet Explorer,Crash,Three.js,Webgl,当我使用WebGL编程时,Internet Explorer 11出现了一些奇怪的问题。我在所有浏览器中都运行得很好,但当我突然改变4个网格的位置时。。。IE决定崩溃(在调试模式下,不指向代码中的任何特定内容) 我和你一起跑IE 11 GL版本-WebGL 0.93 着色语言版本-WebGL GLSL ES 0.93 我得到以下错误: iexplore.exe中0x03F6435B(mshtml.dll)处未处理的异常:0xC0000005:访问冲突写入位置0xBF35051C。 (5)最后一个
CBackgroundInfo::Property(int)':
7'::`fieldDefaultValue'(void)的动态atexit析构函数未知
mshtml.dll!CMarkupPointer::MoveToPointer(类CMarkupPointer常量*)未知
mshtml.dll!CDisplayPointer::MoveToPointer(类CDisplayPointer*)未知
mshtml.dll!cselectracker::DoSelection(类CEditEvent*,int,int*)未知
以下是创建网格的代码:
function PrepareFlowArrows(l_vDiffuser) {
var m_vExtraLoader = new THREE.JSONLoader();
m_vExtraLoader.load('3D_Control/models/FlowArrow.js', callbackLoadFlowArrows(l_vDiffuser));
}
// Callback function for FlowArrows when loading models
function callbackLoadFlowArrows(l_vDiffuser) {
return function (geometry) {
var l_vRotation = 0;
for (var i = 0; i < 4; i++) {
if (i == 0)
l_vRotation = -1.5707; //-1.5707;
else if (i == 1)
l_vRotation = 3.1414;//3.1414;
else if (i == 2)
l_vRotation = 1.5707;//1.5707;
else
l_vRotation = 0;
var l_vMaterial = new THREE.MeshBasicMaterial(); // SETTINGS COLORS MANUALLY (way more nicer with textures though)
l_vMaterial.color.r = 0;
l_vMaterial.color.g = 255;
l_vMaterial.color.b = 0;
var m_vTempFlowArrowMesh = new THREE.Mesh(geometry, l_vMaterial);
m_vTempFlowArrowMesh.scale.x = m_vTempFlowArrowMesh.scale.y = m_vTempFlowArrowMesh.scale.z *= 25;
m_vTempFlowArrowMesh.position.set(0, 0, 0);
m_vTempFlowArrowMesh.rotation.y = l_vRotation;
l_vDiffuser.AddFlowArrow(m_vTempFlowArrowMesh);
m_vScene.add(m_vTempFlowArrowMesh);
}
}
}
请注意,该代码在Chrome、Opera和Firefox中运行良好。我能不能重写一下这个代码,这样IE就不会崩溃
编辑
有趣的事。。。如果我加一行
m_vTempFlowArrowMesh.visible = false;
在callbackLoadFlowArrows中。。。它不再崩溃,即使它更新了箭头。IE团队无法(出于某些尴尬的原因)重现此错误
尽管我已经向他们发送了大约3x800mb的崩溃转储文件以及IE客户端的信息文件,但他们无法找到问题所在
所以。。。他们结束了这个问题,因为它在他们眼中不再重要
GG微软
叹息
m_vTempFlowArrowMesh.visible = false;