接口列表
| 接口名称 |
说明 |
| 初始化 |
初始化动画数据 |
| 播放 |
播放动画 |
| 暂停 |
暂停动画 |
| 继续播放 |
继续播放动画 |
| 设置进度 |
设置动画播放进度 |
| 切换步骤 |
切换动画步骤 |
| 设置速度 |
设置动画播放速度 |
| 上一步 |
切换到上一步骤动画 |
| 下一步 |
切换到下一步骤动画 |
| 循环播放 |
设置动画是否循环播放 |
| 自动漫游 |
设置动画是否自动漫游 |
| 退出动画 |
退出动画播放 |
| 动画监听 |
设置动画的事件监听 |
初始化动画数据
let animationPlayer = viewer.getAnimationPlayer();
//初始化动画仅需初始化一次即可
animationPlayer.getAnimation().then(() => {
//解析成功后需初始化动画播放器
animationPlayer.open();
}).catch(() => {
//初始化动画数据失败
});
播放动画
//第一次播放动画需要在解析成功后并初始化动画播放器后调用
animationPlayer.playAll();
animationPlayer.setIsPlaying(true);
//若想从某个步骤播放,则调用如下方法
animationPlayer.play(stepId);
//若想从某个步骤播放到某个步骤,则调用如下方法
//参数为步骤的索引,例如仅想播放第一步,则start为0,end为1,
//若想播放完这些步骤后不再重头播放,则需要设置为不循环播放
animationPlayer.play(start,end);
暂停动画
animationPlayer.pause();
animationPlayer.setIsPlaying(false);
继续播放动画
animationPlayer.resume();
animationPlayer.setIsPlaying(true);
设置动画进度
//percent为整体进度,取值范围0-100
animationPlayer.setPercent(percent);
animationPlayer.resume();
animationPlayer.setIsPlaying(true);
切换动画步骤
//直接播放相应的步骤
animationPlayer.play(stepId);
animationPlayer.setIsPlaying(true);
//或者使用如下方法
//首先获取所有的动画任务列表
let animationProcessList = animationPlayer.getTaskList();
let step;
for(let i=0;i<animationProcessList.length;i++){
let process = animationProcessList[i];
let stepList = process.getStepList();
for(let j=0;j<stepList.length;j++){
step = stepList[j];
break;
}
}
//参数为AnimationStep
animationPlayer.setActiveTask(step);
animationPlayer.play();
animationPlayer.setIsPlaying(true);
设置动画播放速度
//播放速度,number类型,0-10之间(不包含)
animationPlayer.setSpeed(speed);
切换上一步动画
//当播放第一个步骤时,切换到上一步骤动画无效
animationPlayer.playPrevious();
切换下一步动画
//当前播放最后一个步骤时,切换到下一步骤,会根据是否循环播放决定是切换到第一个步骤还是无效
animationPlayer.playNext();
设置循环播放
//参数isLoop为boolean类型
animationPlayer.setLoop(isLoop);
设置自动漫游
//参数autoWalkCamera为boolean类型
animationPlayer.setAutoWalkCamera(autoWalkCamera);
退出动画
//退出所有动画
M3D.Animation.SimulationAnimationManager.getInstance().exitAll();
//重置动画播放器
animationPlayer.reset();
//清理动画播放监听,若不需要清理则不用执行
animationPlayer.clearTaskListeners();
//设置为不正在播放动画
animationPlayer.setIsPlaying(false);
//退出透视投影
scene.getCurrentViewPort().getCamera().setOrthographic(true);
//将当前步骤设置为-1
M3D.Animation.SimulationAnimationManager.getInstance().getAnimationStepManager()
.getCurrentProcessManager().curProcessID = -1;
//执行复位命令
let commandManager = frame.getCommandsManager();
commandManager.execute('restore');