blender+Three.js 三维数据可视化--模型在IE11下加载
接上一篇,项目测试,在IE11中加载模型不显示,查看console log,是对Uint8Array的解析出了问题,IE11的Uint8Array对象一些方法没有实现,打开FBXLoader.js,修改3391行的getString方法,给Uint8Array对象打个补丁:getString: function ( size ) {var a = new Uint8Array( size );fo
·
接上一篇,项目测试,在IE11中加载模型不显示,查看console log,是对Uint8Array的解析出了问题,IE11的Uint8Array对象一些方法没有实现,打开FBXLoader.js,修改3391行的getString方法,给Uint8Array对象打个补丁:
getString: function ( size ) {
var a = new Uint8Array( size );
for ( var i = 0; i < size; i ++ ) {
a[ i ] = this.getUint8();
}
if (!Uint8Array.prototype.indexOf) {
Uint8Array.prototype.indexOf = function(searchElement, fromIndex) {
var k;
if (this == null) {
throw new TypeError('"this" is null or not defined');
}
var o = Object(this);
var len = o.length >>> 0;
// 4. If len is 0, return -1.
if (len === 0) {
return -1;
}
var n = fromIndex | 0;
if (n >= len) {
return -1;
}
while (k < len) {
if (k in o && o[k] === searchElement) {
return k;
}
k++;
}
return -1;
};
}
if(!Uint8Array.prototype.slice){
Uint8Array.prototype.slice = function(){
return new Uint8Array(this).subarray(this.arguments);
}
};
var nullByte = a.indexOf( 0 );
if ( nullByte >= 0 ) a = a.slice( 0, nullByte );
return THREE.LoaderUtils.decodeText( a );
}
判断是否有indexOf和slice方法,没有就加一个。Ctrl+F5刷新,模型加载。
Three.js 0.91.0版本,模型由blender-2.93.6生成,只导出网格(Mesh)。
更多推荐
已为社区贡献1条内容
所有评论(0)