如何在铯Js中创建一个单独的时钟并使用自定义控制进行控制



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

我想应用一个单独的Clock,而不是使用默认的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将跳过实体的渲染。

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

这是沙堡链接。这是一个源代码。

最新更新