BufferGeometry
Object3D
Raycaster
Camera
CubeCamera
PerspectiveCamera
OrthographicCamera
StereoCamera
Clock
Curve
CurvePath
Path
Shape
ShapePath
ArrowHelper
AxesHelper
BoxHelper
Box3Helper
CameraHelper
DirectionalLightHelper
GridHelper
PolarGridHelper
HemisphereLightHelper
PlaneHelper
PointLightHelper
SkeletonHelper
SpotLightHelper
Light
PointLight
RectAreaLight
SpotLight
DirectionalLight
HemisphereLight
LightShadow
PointLightShadow
AnimationLoader
AudioLoader
BufferGeometryLoader
CompressedTextureLoader
CubeTextureLoader
DataTextureLoader
FileLoader
ImageBitmapLoader
ImageLoader
Loader
LoaderUtils
MaterialLoader
ObjectLoader
TextureLoader
LoadingManager
Material
Box2
Box3
Color
Cylindrical
Euler
Frustum
Interpolant
Line3
MathUtils
Matrix3
Matrix4
Plane
Quaternion
AnimationAction
AnimationClip
AnimationMixer
AnimationObjectGroup
AnimationUtils
keyframeTrack
PropertyBinding
PropertyMixer
BooleanKeyframeTrack
QuaternionKeyframeTrack
StringKeyframeTrack
Audio
AudioAnalyser
AudioContext
AudioListener
PositionalAudio

PropertyBinding.Composite()

PropertyBinding.Composite是Three.js中的一个模块,用于将不同的属性绑定到不同的对象上,并将它们组合成一个单独的PropertyBinding。这个模块可以非常方便地用于对多个对象的多个属性进行动画处理。

构造函数

PropertyBinding.Composite(targetGroup, path, parsedPath)

参数

  • targetGroup:(Object) 包含一组对象的对象,在此组中的所有对象上进行绑定。
  • path:(String) 属性路径的字符串,用于绑定到组中的对象上。
  • parsedPath:(Array) 由属性分段路径的指针数组,用于解析目标属性路径。

代码示例

var group = new THREE.Group(); // 创建一个组
var mesh1 = new THREE.Mesh(...); // 创建一个三角形网格模型
var mesh2 = new THREE.Mesh(...); // 创建一个球体网格模型
var mesh3 = new THREE.Mesh(...); // 创建一个立方体网格模型

group.add(mesh1, mesh2, mesh3); // 添加这三个模型到组中

var composite = new THREE.PropertyBinding.Composite(group, "position.x", ["position", "x"]); // 绑定组中每一个模型的x轴位置属性

方法

PropertyBinding.Composite继承了PropertyBinding的所有方法。

.setNodeName(value)

设置节点名称。在组绑定时,PropertyBinding.Composite将其节点名称设置为其目标组中的第一个对象的名称。

.getValue(targetArray, offset)

获取绑定的属性值。

.setValue(value, targetArray, offset)

设置绑定的属性值。

.bind()

将绑定加入Three.js的内部跟踪列表,使其能够被渲染器使用。

.unbind()

从Three.js的内部跟踪列表中移除绑定,以便其内存可以被垃圾回收。

.unbind()

获取绑定的目标属性路径的描述。这个描述包含了绑定的每一个目标对象的名称和属性路径。

.unbind()

返回PropertyBinding的字符串表示形式。

结论

PropertyBinding.Composite模块使得在渲染动画时对多个对象的多个属性进行绑定非常方便,可以大大简化代码逻辑。同时,这个模块继承了PropertyBinding的所有方法,使其具有非常灵活的功能。如果你需要在Three.js中实现复杂的动画效果,那么PropertyBinding.Composite绝对是你的一个不错的选择。