Javascript 如何在Cesium Js中创建单独的时钟并使用自定义控件进行控制

Javascript 如何在Cesium Js中创建单独的时钟并使用自定义控件进行控制,javascript,html5-canvas,cesium,Javascript,Html5 Canvas,Cesium,我在一个模拟项目中工作,我需要在不同的实体上应用动画。项目要求是创建自定义控件以播放/暂停动画。实体正在使用插值路径在其上移动。如图所示 我想应用一个单独的时钟,而不是使用默认的viewer.Clock。因此,我尝试修改上面的示例。这是你的电话号码 我创建了一个单独的时钟,如下所示: var start = Cesium.JulianDate.fromDate(new Date(2015, 2, 25, 16)); var stop = Cesium.JulianDate.addSeconds(

我在一个模拟项目中工作,我需要在不同的实体上应用动画。项目要求是创建自定义控件以播放/暂停动画。实体正在使用插值路径在其上移动。如图所示

我想应用一个单独的时钟,而不是使用默认的viewer.Clock。因此,我尝试修改上面的示例。这是你的电话号码

我创建了一个单独的时钟,如下所示:

var start = Cesium.JulianDate.fromDate(new Date(2015, 2, 25, 16));
var stop = Cesium.JulianDate.addSeconds(
  start,
  360,
  new Cesium.JulianDate()
);

//Make sure viewer is at the desired time.
var clock = new Cesium.Clock();
clock.startTime = start.clone();
clock.stopTime = stop.clone();
clock.currentTime = start.clone();
clock.clockRange = Cesium.ClockRange.LOOP_STOP;
clock.multiplier = 10;
clock.shouldAnimate = true;
var clockViewModel = new Cesium.ClockViewModel(clock);
var viewModel = new Cesium.AnimationViewModel(clockViewModel);
试着这样称呼他们:

Sandcastle.addDefaultToolbarButton("Start", function () {
  viewModel.pauseViewModel.command();
});

Sandcastle.addDefaultToolbarButton("Stop", function () {
  viewModel.pauseViewModel.command();
});

但动画还没有开始。也没有得到任何例外。请纠正我。

为什么动画没有开始?

请注意,动画是使用CesiumJS中的查看器时钟执行的。
在代码查看器中,时钟与自定义时钟不同。
我的意思是观众的时钟是2021年,而你的时钟是2015年。
因此,实体(Cesium_Air.glb)的可用性将为false,最后,ModelVisualizer将跳过实体的渲染

解决方案
您应该将查看器的时钟与自定义时钟同步,以便实体的可用性变为真实

这是一本书。
这是一个。

给你。非常感谢您提供的示例代码和一个很好的解释。