Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Ablesons
three.js
提交
b67cca36
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,发现更多精彩内容 >>
提交
b67cca36
编写于
7月 25, 2015
作者:
B
Ben Houston
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
more minor bug fixing with Animation.
上级
1e219a67
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
33 addition
and
11 deletion
+33
-11
examples/webgl_animation_track_clip_mixer.html
examples/webgl_animation_track_clip_mixer.html
+6
-2
src/animation/AnimationClip.js
src/animation/AnimationClip.js
+21
-4
src/animation/KeyframeTrack.js
src/animation/KeyframeTrack.js
+2
-1
src/animation/PropertyBinding.js
src/animation/PropertyBinding.js
+4
-4
未找到文件。
examples/webgl_animation_track_clip_mixer.html
浏览文件 @
b67cca36
...
...
@@ -258,9 +258,13 @@
mixer
=
new
THREE
.
AnimationMixer
(
mesh
);
var
rotateClip
=
THREE
.
AnimationClip
.
CreateRotationAnimation
(
10
);
//var clip = THREE.AnimationClip.CreateShakeAnimation( 10, new THREE.Vector3( 10, 10, 10 ) );
//var clip = THREE.AnimationClip.CreatePulsationAnimation( 10, 100 );
//var clip = THREE.AnimationClip.CreateRotationAnimation( 10, 'x' );
var
clip
=
THREE
.
AnimationClip
.
CreateScaleAxisAnimation
(
10
,
'
x
'
);
mixer
.
addAction
(
new
THREE
.
AnimationAction
(
rotateClip
,
0
,
1
,
1
,
true
)
);
mixer
.
addAction
(
new
THREE
.
AnimationAction
(
clip
,
0
,
1
,
1
,
true
)
);
}
...
...
src/animation/AnimationClip.js
浏览文件 @
b67cca36
...
...
@@ -211,6 +211,23 @@ THREE.AnimationClip.CreateRotationAnimation = function( period, axis ) {
return
clip
;
};
THREE
.
AnimationClip
.
CreateScaleAxisAnimation
=
function
(
period
,
axis
)
{
var
keys
=
[];
keys
.
push
(
{
time
:
0
,
value
:
0
}
);
keys
.
push
(
{
time
:
period
,
value
:
360
}
);
axis
=
axis
||
'
x
'
;
var
trackName
=
'
.scale[
'
+
axis
+
'
]
'
;
var
track
=
new
THREE
.
KeyframeTrack
(
trackName
,
keys
);
var
clip
=
new
THREE
.
AnimationClip
(
'
scale.x
'
,
10
,
[
track
]
);
console
.
log
(
'
scaleClip
'
,
clip
);
return
clip
;
};
THREE
.
AnimationClip
.
CreateShakeAnimation
=
function
(
duration
,
shakeScale
)
{
var
keys
=
[];
...
...
@@ -228,14 +245,14 @@ THREE.AnimationClip.CreateShakeAnimation = function( duration, shakeScale ) {
var
track
=
new
THREE
.
KeyframeTrack
(
trackName
,
keys
);
var
clip
=
new
THREE
.
AnimationClip
(
'
shake
'
+
duration
,
trackName
,
[
track
]
);
var
clip
=
new
THREE
.
AnimationClip
(
'
shake
'
+
duration
,
duration
,
[
track
]
);
console
.
log
(
'
shakeClip
'
,
clip
);
return
clip
;
};
THREE
.
AnimationClip
.
CreatePulsationAnimation
=
function
(
node
,
duration
,
pulseScale
)
{
THREE
.
AnimationClip
.
CreatePulsationAnimation
=
function
(
duration
,
pulseScale
)
{
var
keys
=
[];
...
...
@@ -249,11 +266,11 @@ THREE.AnimationClip.CreatePulsationAnimation = function( node, duration, pulseSc
}
var
trackName
=
node
.
name
+
'
.scale
'
;
var
trackName
=
'
.scale
'
;
var
track
=
new
THREE
.
KeyframeTrack
(
trackName
,
keys
);
var
clip
=
new
THREE
.
AnimationClip
(
'
scale
'
+
duration
,
trackName
,
[
track
]
);
var
clip
=
new
THREE
.
AnimationClip
(
'
scale
'
+
duration
,
duration
,
[
track
]
);
console
.
log
(
'
scaleClip
'
,
clip
);
return
clip
;
...
...
src/animation/KeyframeTrack.js
浏览文件 @
b67cca36
...
...
@@ -14,7 +14,7 @@ THREE.KeyframeTrack = function ( name, keys ) {
this
.
keys
=
keys
||
[];
// time in seconds, value as value
// TODO: sort keys via their times
this
.
keys
.
sort
(
function
(
a
,
b
)
{
return
a
.
time
<
b
.
time
;
}
);
//
this.keys.sort( function( a, b ) { return a.time < b.time; } );
};
...
...
@@ -27,6 +27,7 @@ THREE.KeyframeTrack.prototype = {
if
(
this
.
keys
.
length
==
0
)
throw
new
Error
(
"
no keys in track named
"
+
this
.
name
);
console
.
log
(
"
keys
"
,
this
.
keys
);
// before the start of the track, return the first key value
if
(
this
.
keys
[
0
].
time
>=
time
)
{
...
...
src/animation/PropertyBinding.js
浏览文件 @
b67cca36
...
...
@@ -17,7 +17,7 @@ THREE.PropertyBinding = function ( rootNode, trackName ) {
this
.
nodeName
=
parseResults
.
nodeName
;
this
.
material
=
parseResults
.
material
;
this
.
propertyName
=
parseResults
.
propertyName
||
null
;
this
.
property
ArrayIndex
=
parseResults
.
propertyArrayIndex
||
-
1
;
this
.
property
SubElement
=
parseResults
.
propertySubElement
||
-
1
;
this
.
node
=
THREE
.
PropertyBinding
.
findNode
(
rootNode
,
this
.
nodeName
);
...
...
@@ -51,9 +51,9 @@ THREE.PropertyBinding.prototype = {
}
// access a sub element of the property array (only primitives are supported right now)
if
(
this
.
propertyArrayIndex
>=
0
)
{
console
.
log
(
'
update property array
'
+
this
.
propertyName
+
'
[
'
+
this
.
property
ArrayIndex
+
'
] via assignment.
'
);
nodeProperty
[
this
.
property
ArrayIndex
]
=
value
;
if
(
(
this
.
propertySubElement
.
length
&&
this
.
propertySubElement
.
length
>
0
)
||
this
.
propertySubElement
>=
0
)
{
console
.
log
(
'
update property array
'
+
this
.
propertyName
+
'
[
'
+
this
.
property
SubElement
+
'
] via assignment.
'
);
nodeProperty
[
this
.
property
SubElement
]
=
value
;
}
// must use copy for Object3D.Euler/Quaternion
else
if
(
nodeProperty
.
copy
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录