Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
e8eaefc3
T
three.js
项目概览
Ablesons
/
three.js
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
three.js
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e8eaefc3
编写于
8月 24, 2018
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
KMZLoader: Handle images with manager.setURLModifier.
上级
13e9ff25
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
41 addition
and
29 deletion
+41
-29
examples/js/loaders/KMZLoader.js
examples/js/loaders/KMZLoader.js
+41
-29
未找到文件。
examples/js/loaders/KMZLoader.js
浏览文件 @
e8eaefc3
...
...
@@ -28,63 +28,75 @@ THREE.KMZLoader.prototype = {
parse
:
function
(
data
)
{
var
zip
=
new
JSZip
(
data
);
// eslint-disable-line no-undef
var
manager
=
new
THREE
.
LoadingManager
();
manager
.
setURLModifier
(
function
(
url
)
{
// console.log( zip )
;
var
image
;
// var xml = new DOMParser().parseFromString( zip.file( 'doc.kml' ).asText(), 'application/xml' );
zip
.
filter
(
function
(
path
,
file
)
{
function
loadImage
(
image
)
{
if
(
path
.
substr
(
-
url
.
length
)
===
url
)
{
var
path
=
decodeURI
(
image
.
init_from
)
;
image
=
file
;
// Hack to support relative paths
path
=
path
.
replace
(
'
../
'
,
''
);
}
var
regex
=
new
RegExp
(
path
+
'
$
'
);
var
files
=
zip
.
file
(
regex
);
}
);
// console.log( image, files );
if
(
image
)
{
if
(
files
.
length
)
{
console
.
log
(
'
Loading
'
,
url
);
var
file
=
files
[
0
];
var
blob
=
new
Blob
(
[
file
.
asArrayBuffer
()
],
{
type
:
'
application/octet-binary
'
}
);
image
.
build
.
src
=
URL
.
createObjectURL
(
blob
);
var
blob
=
new
Blob
(
[
image
.
asArrayBuffer
()
],
{
type
:
'
application/octet-stream
'
}
);
return
URL
.
createObjectURL
(
blob
);
}
}
return
url
;
}
);
// load collada
//
var
collada
;
var
zip
=
new
JSZip
(
data
);
// eslint-disable-line no-undef
var
files
=
zip
.
file
(
/dae$/i
);
zip
.
filter
(
function
(
path
,
file
)
{
if
(
files
.
length
)
{
var
extension
=
file
.
name
.
split
(
'
.
'
).
pop
().
toLowerCase
();
var
file
=
files
[
0
];
switch
(
extension
)
{
var
collada
=
new
THREE
.
ColladaLoader
().
parse
(
file
.
asText
()
);
/*
case 'kml':
// fix images
var xml = new DOMParser().parseFromString( file.asText(), 'application/xml' );
var
images
=
collada
.
library
.
images
;
break;
*/
for
(
var
name
in
images
)
{
case
'
dae
'
:
loadImage
(
images
[
name
]
);
var
loader
=
new
THREE
.
ColladaLoader
(
manager
);
collada
=
loader
.
parse
(
file
.
asText
()
);
break
;
}
}
);
if
(
collada
)
{
return
collada
;
}
}
else
{
console
.
error
(
'
KMZLoader: Couldn
\'
t find .dae file.
'
);
console
.
error
(
'
KMZLoader: Couldn
\'
t find .dae file.
'
);
return
{
scene
:
new
THREE
.
Group
()
};
return
{
scene
:
new
THREE
.
Group
()
};
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录