Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
车家大少爷
three.js
提交
8ed5ffc2
T
three.js
项目概览
车家大少爷
/
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,发现更多精彩内容 >>
提交
8ed5ffc2
编写于
5月 27, 2013
作者:
M
Mr.doob
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
First go at LoadingManager. See #3442.
上级
b823215f
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
211 addition
and
156 deletion
+211
-156
examples/js/loaders/OBJLoader.js
examples/js/loaders/OBJLoader.js
+11
-27
examples/webgl_loader_obj.html
examples/webgl_loader_obj.html
+18
-10
src/loaders/GeometryLoader.js
src/loaders/GeometryLoader.js
+13
-26
src/loaders/ImageLoader.js
src/loaders/ImageLoader.js
+8
-21
src/loaders/LoadingManager.js
src/loaders/LoadingManager.js
+148
-0
src/loaders/LoadingMonitor.js
src/loaders/LoadingMonitor.js
+0
-45
src/loaders/MaterialLoader.js
src/loaders/MaterialLoader.js
+12
-26
utils/build/includes/common.json
utils/build/includes/common.json
+1
-1
未找到文件。
examples/js/loaders/OBJLoader.js
浏览文件 @
8ed5ffc2
...
...
@@ -2,46 +2,30 @@
* @author mrdoob / http://mrdoob.com/
*/
THREE
.
OBJLoader
=
function
()
{};
THREE
.
OBJLoader
=
function
(
manager
)
{
this
.
manager
=
(
manager
!==
undefined
)
?
manager
:
THREE
.
DefaultLoadingManager
;
};
THREE
.
OBJLoader
.
prototype
=
{
constructor
:
THREE
.
OBJLoader
,
addEventListener
:
THREE
.
EventDispatcher
.
prototype
.
addEventListener
,
hasEventListener
:
THREE
.
EventDispatcher
.
prototype
.
hasEventListener
,
removeEventListener
:
THREE
.
EventDispatcher
.
prototype
.
removeEventListener
,
dispatchEvent
:
THREE
.
EventDispatcher
.
prototype
.
dispatchEvent
,
load
:
function
(
url
,
callback
)
{
var
scope
=
this
;
var
request
=
new
XMLHttpRequest
();
request
.
addEventListener
(
'
load
'
,
function
(
event
)
{
var
response
=
scope
.
parse
(
event
.
target
.
responseText
);
scope
.
dispatchEvent
(
{
type
:
'
load
'
,
content
:
response
}
);
this
.
manager
.
add
(
url
,
'
text
'
,
function
(
event
)
{
if
(
callback
)
callback
(
response
);
if
(
callback
!==
undefined
)
{
},
false
);
var
geometry
=
scope
.
parse
(
event
.
target
.
responseText
);
callback
(
geometry
);
request
.
addEventListener
(
'
progress
'
,
function
(
event
)
{
scope
.
dispatchEvent
(
{
type
:
'
progress
'
,
loaded
:
event
.
loaded
,
total
:
event
.
total
}
);
},
false
);
request
.
addEventListener
(
'
error
'
,
function
()
{
scope
.
dispatchEvent
(
{
type
:
'
error
'
,
message
:
'
Couldn
\'
t load URL [
'
+
url
+
'
]
'
}
);
},
false
);
}
request
.
open
(
'
GET
'
,
url
,
true
);
request
.
send
(
null
);
}
);
},
...
...
examples/webgl_loader_obj.html
浏览文件 @
8ed5ffc2
...
...
@@ -73,23 +73,32 @@
// texture
var
manager
=
new
THREE
.
LoadingManager
();
manager
.
addEventListener
(
'
load
'
,
function
(
event
)
{
console
.
log
(
'
loading
'
,
event
.
loaded
/
event
.
total
);
}
);
manager
.
addEventListener
(
'
complete
'
,
function
(
event
)
{
console
.
log
(
'
loading complete
'
);
}
);
var
texture
=
new
THREE
.
Texture
();
var
loader
=
new
THREE
.
ImageLoader
();
loader
.
addEventListener
(
'
load
'
,
function
(
event
)
{
var
loader
=
new
THREE
.
ImageLoader
(
manager
);
loader
.
load
(
'
textures/ash_uvgrid01.jpg
'
,
function
(
image
)
{
texture
.
image
=
event
.
content
;
texture
.
image
=
image
;
texture
.
needsUpdate
=
true
;
}
);
loader
.
load
(
'
textures/ash_uvgrid01.jpg
'
);
// model
var
loader
=
new
THREE
.
OBJLoader
();
loader
.
addEventListener
(
'
load
'
,
function
(
event
)
{
var
object
=
event
.
content
;
var
loader
=
new
THREE
.
OBJLoader
(
manager
);
loader
.
load
(
'
obj/male02/male02.obj
'
,
function
(
object
)
{
object
.
traverse
(
function
(
child
)
{
...
...
@@ -104,8 +113,7 @@
object
.
position
.
y
=
-
80
;
scene
.
add
(
object
);
});
loader
.
load
(
'
obj/male02/male02.obj
'
);
}
);
//
...
...
src/loaders/GeometryLoader.js
浏览文件 @
8ed5ffc2
...
...
@@ -2,43 +2,30 @@
* @author mrdoob / http://mrdoob.com/
*/
THREE
.
GeometryLoader
=
function
()
{};
THREE
.
GeometryLoader
.
prototype
=
{
constructor
:
THREE
.
GeometryLoader
,
THREE
.
GeometryLoader
=
function
(
manager
)
{
addEventListener
:
THREE
.
EventDispatcher
.
prototype
.
addEventListener
,
hasEventListener
:
THREE
.
EventDispatcher
.
prototype
.
hasEventListener
,
removeEventListener
:
THREE
.
EventDispatcher
.
prototype
.
removeEventListener
,
dispatchEvent
:
THREE
.
EventDispatcher
.
prototype
.
dispatchEvent
,
load
:
function
(
url
)
{
var
scope
=
this
;
var
request
=
new
XMLHttpRequest
();
this
.
manager
=
(
manager
!==
undefined
)
?
manager
:
THREE
.
DefaultLoadingManager
;
request
.
addEventListener
(
'
load
'
,
function
(
event
)
{
var
response
=
scope
.
parse
(
JSON
.
parse
(
event
.
target
.
responseText
)
);
};
scope
.
dispatchEvent
(
{
type
:
'
load
'
,
content
:
response
}
);
THREE
.
GeometryLoader
.
prototype
=
{
},
false
);
constructor
:
THREE
.
GeometryLoader
,
request
.
addEventListener
(
'
progress
'
,
function
(
event
)
{
load
:
function
(
url
,
callback
)
{
scope
.
dispatchEvent
(
{
type
:
'
progress
'
,
loaded
:
event
.
loaded
,
total
:
event
.
total
}
)
;
var
scope
=
this
;
},
false
);
this
.
manager
.
add
(
url
,
'
text
'
,
function
(
event
)
{
request
.
addEventListener
(
'
error
'
,
function
(
)
{
if
(
callback
!==
undefined
)
{
scope
.
dispatchEvent
(
{
type
:
'
error
'
,
message
:
'
Couldn
\'
t load URL [
'
+
url
+
'
]
'
}
);
var
geometry
=
scope
.
parse
(
JSON
.
parse
(
event
.
target
.
responseText
)
);
callback
(
geometry
);
},
false
);
}
request
.
open
(
'
GET
'
,
url
,
true
);
request
.
send
(
null
);
}
);
},
...
...
src/loaders/ImageLoader.js
浏览文件 @
8ed5ffc2
...
...
@@ -2,9 +2,9 @@
* @author mrdoob / http://mrdoob.com/
*/
THREE
.
ImageLoader
=
function
()
{
THREE
.
ImageLoader
=
function
(
manager
)
{
this
.
crossOrigin
=
null
;
this
.
manager
=
(
manager
!==
undefined
)
?
manager
:
THREE
.
DefaultLoadingManager
;
};
...
...
@@ -12,32 +12,19 @@ THREE.ImageLoader.prototype = {
constructor
:
THREE
.
ImageLoader
,
addEventListener
:
THREE
.
EventDispatcher
.
prototype
.
addEventListener
,
hasEventListener
:
THREE
.
EventDispatcher
.
prototype
.
hasEventListener
,
removeEventListener
:
THREE
.
EventDispatcher
.
prototype
.
removeEventListener
,
dispatchEvent
:
THREE
.
EventDispatcher
.
prototype
.
dispatchEvent
,
load
:
function
(
url
,
image
)
{
load
:
function
(
url
,
callback
)
{
var
scope
=
this
;
if
(
image
===
undefined
)
image
=
new
Image
();
image
.
addEventListener
(
'
load
'
,
function
()
{
scope
.
dispatchEvent
(
{
type
:
'
load
'
,
content
:
image
}
);
},
false
);
image
.
addEventListener
(
'
error
'
,
function
()
{
this
.
manager
.
add
(
url
,
'
image
'
,
function
(
image
)
{
scope
.
dispatchEvent
(
{
type
:
'
error
'
,
message
:
'
Couldn
\'
t load URL [
'
+
url
+
'
]
'
}
);
if
(
callback
!==
undefined
)
{
},
fals
e
);
callback
(
imag
e
);
if
(
scope
.
crossOrigin
)
image
.
crossOrigin
=
scope
.
crossOrigin
;
}
image
.
src
=
url
;
}
)
;
}
...
...
src/loaders/LoadingManager.js
0 → 100644
浏览文件 @
8ed5ffc2
/**
* @author mrdoob / http://mrdoob.com/
*/
THREE
.
LoadingManager
=
function
()
{
var
scope
=
this
;
var
list
=
[],
cache
=
{};
var
isLoading
=
false
;
var
loaded
=
0
,
total
=
0
;
var
crossOrigin
=
null
;
var
load
=
function
()
{
var
item
=
list
[
0
];
if
(
cache
[
item
.
url
]
===
undefined
)
{
switch
(
item
.
type
)
{
case
'
image
'
:
var
image
=
document
.
createElement
(
'
img
'
);
image
.
addEventListener
(
'
load
'
,
function
(
event
)
{
if
(
item
.
onLoad
!==
undefined
)
{
item
.
onLoad
(
this
);
}
cache
[
item
.
url
]
=
this
;
onLoad
(
item
);
},
false
);
if
(
crossOrigin
!==
null
)
image
.
crossOrigin
=
crossOrigin
;
image
.
src
=
item
.
url
;
break
;
default
:
var
request
=
new
XMLHttpRequest
();
request
.
addEventListener
(
'
load
'
,
function
(
event
)
{
if
(
item
.
onLoad
!==
undefined
)
{
item
.
onLoad
(
event
);
}
cache
[
item
.
url
]
=
event
;
onLoad
(
item
);
},
false
);
request
.
open
(
'
GET
'
,
item
.
url
,
true
);
request
.
send
(
null
);
break
;
}
}
else
{
if
(
item
.
onLoad
!==
undefined
)
{
item
.
onLoad
(
cache
[
item
.
url
]
);
}
onLoad
(
item
);
}
list
.
shift
();
};
var
onLoad
=
function
(
item
)
{
loaded
++
;
scope
.
dispatchEvent
(
{
type
:
'
load
'
,
item
:
item
,
loaded
:
loaded
,
total
:
total
}
);
if
(
loaded
===
total
)
{
isLoading
=
false
;
scope
.
dispatchEvent
(
{
type
:
'
complete
'
}
);
}
else
{
load
();
}
};
this
.
add
=
function
(
url
,
type
,
onLoad
,
onProgress
,
onError
)
{
total
++
;
list
.
push
(
{
url
:
url
,
type
:
type
,
onLoad
:
onLoad
,
onProgress
:
onProgress
,
onError
:
onError
}
);
if
(
isLoading
===
false
)
{
isLoading
=
true
;
load
();
}
};
this
.
setCrossOrigin
=
function
(
value
)
{
crossOrigin
=
value
;
};
};
THREE
.
LoadingManager
.
prototype
=
{
constructor
:
THREE
.
LoadingManager
,
addEventListener
:
THREE
.
EventDispatcher
.
prototype
.
addEventListener
,
hasEventListener
:
THREE
.
EventDispatcher
.
prototype
.
hasEventListener
,
removeEventListener
:
THREE
.
EventDispatcher
.
prototype
.
removeEventListener
,
dispatchEvent
:
THREE
.
EventDispatcher
.
prototype
.
dispatchEvent
};
THREE
.
DefaultLoadingManager
=
new
THREE
.
LoadingManager
();
src/loaders/LoadingMonitor.js
已删除
100644 → 0
浏览文件 @
b823215f
/**
* @author mrdoob / http://mrdoob.com/
*/
THREE
.
LoadingMonitor
=
function
()
{
var
scope
=
this
;
var
loaded
=
0
;
var
total
=
0
;
var
onLoad
=
function
(
event
)
{
loaded
++
;
scope
.
dispatchEvent
(
{
type
:
'
progress
'
,
loaded
:
loaded
,
total
:
total
}
);
if
(
loaded
===
total
)
{
scope
.
dispatchEvent
(
{
type
:
'
load
'
}
);
}
};
this
.
add
=
function
(
loader
)
{
total
++
;
loader
.
addEventListener
(
'
load
'
,
onLoad
,
false
);
};
};
THREE
.
LoadingMonitor
.
prototype
=
{
constructor
:
THREE
.
LoadingMonitor
,
addEventListener
:
THREE
.
EventDispatcher
.
prototype
.
addEventListener
,
hasEventListener
:
THREE
.
EventDispatcher
.
prototype
.
hasEventListener
,
removeEventListener
:
THREE
.
EventDispatcher
.
prototype
.
removeEventListener
,
dispatchEvent
:
THREE
.
EventDispatcher
.
prototype
.
dispatchEvent
};
src/loaders/MaterialLoader.js
浏览文件 @
8ed5ffc2
...
...
@@ -2,44 +2,30 @@
* @author mrdoob / http://mrdoob.com/
*/
THREE
.
MaterialLoader
=
function
()
{};
THREE
.
MaterialLoader
=
function
(
manager
)
{
this
.
manager
=
(
manager
!==
undefined
)
?
manager
:
THREE
.
DefaultLoadingManager
;
};
THREE
.
MaterialLoader
.
prototype
=
{
constructor
:
THREE
.
MaterialLoader
,
addEventListener
:
THREE
.
EventDispatcher
.
prototype
.
addEventListener
,
hasEventListener
:
THREE
.
EventDispatcher
.
prototype
.
hasEventListener
,
removeEventListener
:
THREE
.
EventDispatcher
.
prototype
.
removeEventListener
,
dispatchEvent
:
THREE
.
EventDispatcher
.
prototype
.
dispatchEvent
,
load
:
function
(
url
)
{
load
:
function
(
url
,
callback
)
{
var
scope
=
this
;
var
request
=
new
XMLHttpRequest
();
request
.
addEventListener
(
'
load
'
,
function
(
event
)
{
var
response
=
scope
.
parse
(
JSON
.
parse
(
event
.
target
.
responseText
)
);
scope
.
dispatchEvent
(
{
type
:
'
load
'
,
content
:
response
}
);
},
false
);
request
.
addEventListener
(
'
progress
'
,
function
(
event
)
{
scope
.
dispatchEvent
(
{
type
:
'
progress
'
,
loaded
:
event
.
loaded
,
total
:
event
.
total
}
);
},
false
);
this
.
manager
.
add
(
url
,
'
text
'
,
function
(
event
)
{
request
.
addEventListener
(
'
error
'
,
function
(
)
{
if
(
callback
!==
undefined
)
{
scope
.
dispatchEvent
(
{
type
:
'
error
'
,
message
:
'
Couldn
\'
t load URL [
'
+
url
+
'
]
'
}
);
var
material
=
scope
.
parse
(
JSON
.
parse
(
event
.
target
.
responseText
)
);
callback
(
material
);
},
false
);
}
request
.
open
(
'
GET
'
,
url
,
true
);
request
.
send
(
null
);
}
);
},
...
...
utils/build/includes/common.json
浏览文件 @
8ed5ffc2
...
...
@@ -41,7 +41,7 @@
"src/loaders/Loader.js"
,
"src/loaders/ImageLoader.js"
,
"src/loaders/JSONLoader.js"
,
"src/loaders/LoadingM
onito
r.js"
,
"src/loaders/LoadingM
anage
r.js"
,
"src/loaders/GeometryLoader.js"
,
"src/loaders/MaterialLoader.js"
,
"src/loaders/SceneLoader.js"
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录