new LerpComponent()
提供物体插值计算的功能组件用于执行平滑的变换操作的物体插值计算功能组件。
Extends
Members
-
active :boolean
-
激活或停用组件。
- Overrides:
-
app :THING.App
-
获取应用程序。
- Overrides:
-
object :THING.BaseObject
-
获取对象。
- Overrides:
-
onActiveChange :OnActiveChangeComponentCallback
-
活动状态改变时的回调函数。
- Overrides:
-
onAfterAdd :OnAfterAddComponentCallback
-
添加之后。
- Overrides:
-
onAfterAddChild :OnAddChildComponentCallback
-
添加子对象之后的回调函数。
- Overrides:
-
onAfterRemove :OnAfterRemoveComponentCallback
-
移除之后。
- Overrides:
-
onAfterRemoveChild :OnRemoveChildComponentCallback
-
移除子对象之后的回调函数。
- Overrides:
-
onBeforeAdd :OnBeforeAddComponentCallback
-
添加之前。
- Overrides:
-
onBeforeAddChild :OnAddChildComponentCallback
-
添加子对象之前的回调函数。
- Overrides:
-
onBeforeRemove :OnBeforeRemoveComponentCallback
-
移除之前。
- Overrides:
-
onBeforeRemoveChild :OnRemoveChildComponentCallback
-
移除子对象之前的回调函数。
- Overrides:
-
onCopy :OnCopyComponentCallback
-
复制时的回调函数。
- Overrides:
-
onExport :OnExportComponentCallback
-
导出数据时。
- Overrides:
-
onImport :OnImportComponentCallback
-
导入数据时。
- Overrides:
-
onInit :OnInitComponentCallback
-
初始化时的回调函数。
- Overrides:
-
onLoadResource :OnLoadResourceComponentCallback
-
加载资源时的回调函数。
- Overrides:
-
onParentChange :OnParentChangeComponentCallback
-
改变父对象时的回调函数。
- Overrides:
-
onRefresh :OnRefreshComponentCallback
-
刷新时的回调函数。
- Overrides:
-
onResize :OnResizeComponentCallback
-
调整大小时的回调函数。
- Overrides:
-
onUnloadResource :OnUnloadResourceComponentCallback
-
卸载资源时的回调函数。
- Overrides:
-
onUpdate :OnUpdateComponentCallback
-
更新时的回调函数。
- Overrides:
-
onVisibleChange :OnVisibleChangeComponentCallback
-
可见性改变时的回调函数。
- Overrides:
Methods
-
fadeIn(param, trigger)
-
将对象淡入到完全不透明。
Parameters:
Name Type Description paramLerpArgs 淡入动作的参数。 triggerfunction 在淡入完成时调用的触发函数。 Example
let lerp = box.lerp; lerp.fadeIn({ from: { style: { opacity: 0 } } -
fadeInAsync(param) → {Promise}
-
异步将对象淡入。
Parameters:
Name Type Description paramLerpArgs 淡入动作的参数。 Returns:
Promise - 一个在淡入完成时解析的承诺。Example
let lerp = box.lerp; lerp.fadeInAsync({ from: { style: { opacity: 0 } -
fadeOut(param, trigger)
-
将对象淡出到完全透明。
Parameters:
Name Type Description paramLerpArgs 淡出动作的参数。 triggerfunction 在淡出完成时调用的触发函数。 Example
let lerp = box.lerp; lerp.fadeOut({ from: { style: { opacity: 1 } -
fadeOutAsync(param) → {Promise}
-
异步将对象淡出。
Parameters:
Name Type Description paramLerpArgs 淡出动作的参数。 Returns:
Promise - 一个在淡出完成时解析的承诺。Example
let lerp = box.lerp; lerp.fadeOutAsync({ from: { style: { opacity: 1 } -
movePath(value, param, trigger) → {void}
-
将物体沿指定路径移动
Parameters:
Name Type Description valueArray | object 目标路径坐标数组或包含移动参数的对象 paramobject 移动参数配置对象 Properties
Name Type Description pathArray.<Array.<number>> 移动路径坐标数组 timenumber 移动时间(毫秒) spaceTypeTHING.SpaceType 坐标空间类型 orientToPathboolean 是否朝向移动方向 orientToPathDegreenumber 朝向偏移角度,在朝向路径方向的基础上偏移的角度,正值为顺时针,负值为逆时针 timesnumber 循环次数 loopTypeTHING.LoopType 循环类型 onUpdatefunction 更新回调函数 onCompletefunction 完成回调函数 triggerfunction 触发器函数 Returns:
voidExample
// 基础用法 - 直接传入路径数组 object.lerp.movePath([ [0, 0, 0], [10, 10, 0], [10, 10, 10], ]); // 使用参数对象方式 object.lerp.movePath({ path: [ // 移动路径 [0, 0, 0], [10, 10, 0], [10, 10, 10], ], time: 2000, // 移动时间(毫秒) spaceType: THING.SpaceType.World, // 坐标空间类型 orientToPath: true, // 是否朝向移动方向 orientToPathDegree: 45, // 朝向偏移角度 times: 4, // 循环次数 loopType: THING.LoopType.PingPong, // 循环类型 onUpdate: (ev) => { // 更新回调 console.log(ev.from, ev.to, ev.fromIndex, ev.toIndex, ev.direction); console.log('Progress:', ev.progress); }, onComplete: () => { // 完成回调 console.log('Movement completed'); } }); -
moveTo(value, param, trigger) → {void}
-
将物体移动到指定位置
Parameters:
Name Type Description valueArray | object 目标位置坐标数组[x,y,z]或包含移动参数的对象 paramobject 移动参数配置对象 Properties
Name Type Description toArray.<number> 目标位置 targetArray.<number> 目标位置,与 to 参数作用相同 timenumber 移动时间(毫秒) spaceTypeTHING.SpaceType 坐标空间类型 orientToPathboolean 是否朝向移动方向 orientToPathDegreenumber 朝向偏移角度,在朝向路径方向的基础上偏移的角度,正值为顺时针,负值为逆时针 timesnumber 循环次数 loopTypeTHING.LoopType 循环类型 onUpdatefunction 更新回调函数 onCompletefunction 完成回调函数 triggerfunction 触发器函数 Returns:
voidExample
// 基础用法 - 移动到世界坐标系中的位置 object.lerp.moveTo([10, 0, 10]); // 使用参数对象方式 object.lerp.moveTo({ to: [10, 0, 10], // 目标位置 time: 2000, // 移动时间(毫秒) spaceType: THING.SpaceType.World, // 坐标空间类型 orientToPath: true, // 是否朝向移动方向 orientToPathDegree: 45, // 朝向偏移角度 times: 4, // 循环次数 loopType: THING.LoopType.PingPong, // 循环类型 onUpdate: (ev) => { // 更新回调 console.log(ev.from, ev.to, ev.direction); console.log('Progress:', ev.progress); }, onComplete: () => { // 完成回调 console.log('Movement completed'); } }); -
onAdd(object)
-
当添加组件时。
Parameters:
Name Type Description objectTHING.BaseObject 对象。 - Overrides:
-
onRemove()
-
当移除组件时。
- Overrides:
-
pause(name)
-
暂停插值
Parameters:
Name Type Description namestring 插值的名称, Example
let lerp = box.lerp; lerp.pause('move'); -
pauseAll()
-
暂停全部插值
Example
let lerp = box.lerp; lerp.pauseAll(); -
pauseFading()
-
暂停淡入淡出动作。
Example
let lerp = box.lerp; lerp.pauseFading(); -
resume(name)
-
恢复插值
Parameters:
Name Type Description namestring 插值的名称, Example
let lerp = box.lerp; lerp.resume('move'); -
resumeAll()
-
恢复全部插值
Example
let lerp = box.lerp; lerp.resumeAll(); -
resumeFading()
-
恢复淡入淡出动作。
Example
let lerp = box.lerp; lerp.resumeFading(); -
rotateTo(value, param, trigger) → {void}
-
将物体旋转到指定角度
Parameters:
Name Type Description valueArray | object 目标旋转值。可以是:- 欧拉角数组[x,y,z]表示旋转角度- 四元数数组[x,y,z,w]表示旋转- 包含旋转参数的对象 paramobject 旋转参数配置对象 Properties
Name Type Description toArray.<number> 目标旋转值,可以是欧拉角[x,y,z]或四元数[x,y,z,w] timenumber 旋转时间(毫秒) spaceTypeTHING.SpaceType 坐标空间类型,默认为 Local timesnumber 循环次数 loopTypeTHING.LoopType 循环类型 onUpdatefunction 更新回调函数 onCompletefunction 完成回调函数 triggerfunction 触发器函数 Returns:
voidExample
// 基础用法 - 使用欧拉角旋转(x,y,z) object.lerp.rotateTo([90, 0, 0]); // 绕x轴旋转90度 // 使用四元数旋转(x,y,z,w) object.lerp.rotateTo([0, 0, 0, 1]); // 使用参数对象方式 - 欧拉角 object.lerp.rotateTo({ to: [90, 0, 0], // 目标旋转角度 time: 2000, // 旋转时间(毫秒) spaceType: THING.SpaceType.World, // 坐标空间类型 times: 4, // 循环次数 loopType: THING.LoopType.PingPong, // 循环类型 onUpdate: (ev) => { // 更新回调 console.log(ev.from, ev.to, ev.direction); console.log('Progress:', ev.progress); }, onComplete: () => { // 完成回调 console.log('Rotation completed'); } }); // 在世界坐标系中旋转 object.lerp.rotateTo({ to: [90, 0, 0], time: 2000, spaceType: THING.SpaceType.World }); // 在本地坐标系中旋转(默认) object.lerp.rotateTo({ to: [90, 0, 0], time: 2000, spaceType: THING.SpaceType.Local }); // 相对于当前旋转进行旋转 object.lerp.rotateTo({ to: [90, 0, 0], time: 2000, spaceType: THING.SpaceType.Self }); -
scaleTo(value, param, trigger) → {void}
-
将物体缩放到指定大小
Parameters:
Name Type Description valueArray | object 目标缩放值数组[x,y,z]或包含缩放参数的对象 paramobject 缩放参数配置对象 Properties
Name Type Description toArray.<number> 目标缩放值 timenumber 缩放时间(毫秒) spaceTypeTHING.SpaceType 坐标空间类型,默认为 World timesnumber 循环次数 loopTypeTHING.LoopType 循环类型 onUpdatefunction 更新回调函数 onCompletefunction 完成回调函数 triggerfunction 触发器函数 Returns:
voidExample
// 基础用法 - 直接传入缩放值数组 object.lerp.scaleTo([2, 2, 2]); // 使用参数对象方式 object.lerp.scaleTo({ to: [2, 2, 2], // 目标缩放值 time: 2000, // 缩放时间(毫秒) spaceType: THING.SpaceType.World, // 坐标空间类型 times: 4, // 循环次数 loopType: THING.LoopType.PingPong, // 循环类型 onUpdate: (ev) => { // 更新回调 console.log(ev.from, ev.to, ev.direction); console.log('Progress:', ev.progress); }, onComplete: () => { // 完成回调 console.log('Scale completed'); } }); // 在本地坐标系中缩放 object.lerp.scaleTo({ to: [2, 2, 2], time: 2000, spaceType: THING.SpaceType.Local }); // 相对于当前缩放值进行缩放 object.lerp.scaleTo({ to: [2, 2, 2], time: 2000, spaceType: THING.SpaceType.Self }); -
stop(name)
-
停止插值
Parameters:
Name Type Description namestring 插值的名称, Example
let lerp = box.lerp; lerp.stop('move'); -
stopAll()
-
停止全部插值
Example
let lerp = box.lerp; lerp.stopAll(); -
stopFading()
-
停止淡入淡出动作。
Example
let lerp = box.lerp; lerp.stopFading(); -
to(param, name, trigger)
-
开始插值
Parameters:
Name Type Description paramLerpArgs 插值参数 namestring 插值的名称,停止插值时需要传入该参数 triggerfunction 触发器函数 Example
box.lerp.to({ from: { position: [0, 0, 0] }, to: { position: [10, 10, 10] }, time: 5000, loopType: THING.LoopType.PingPong, onUpdate: (e) => { console.log(e.from, e.to, e.direction); } })