//事件
viewer.clock.onTick.addEventListener(onTick);
viewer.clock.onStop.addEventListener(onStop);
var isAction=false;
// 定义要执行的事件和对应的时间
var events = [
{ time: Cesium.JulianDate.fromDate(tlm.GetDateTime(2023, 11, 29, 8, 6, 0)), action: function () { $(".labelcontent").show();console.log("事件1"); } },
{ time: Cesium.JulianDate.fromDate(tlm.GetDateTime(2023, 11, 29, 8, 7, 0)), action: function () { $(".labelcontent").hide();console.log("事件2"); } },
{ time: Cesium.JulianDate.fromDate(tlm.GetDateTime(2023, 11, 29, 8, 8, 0)), action: function () { $(".labelcontent").show();console.log("事件3"); } }
];
var temp=[...events];
//事件方法
function onTick(clock) {
var currentTime = viewer.clock.currentTime;
if (viewer.clock.shouldAnimate == true) {
// console.log("时间:"+ currentTime);
// 检查每个事件的时间
for (var i = 0; i < temp.length; i++) {
var event = temp[i];
// 判断当前时间是否达到事件的时间
if (Cesium.JulianDate.greaterThanOrEquals(currentTime,event.time)) {
console.log("事件:"+ event.time);
// 执行事件
event.action();
// 可选择取消事件执行,以避免重复执行
temp.splice(i, 1); // 从事件列表中移除已执行的事件
}
}
// 如果所有事件都已执行完毕,可以选择停止监听onTick事件
if (temp.length === 0) {
viewer.clock.onTick.removeEventListener(arguments.callee);//
}
}
}
//事件停止
function onStop(clock) {
console.log("时间轴播放完成时候");
temp=[...events];
viewer.clock.onTick.addEventListener(onTick)
}

文章描述了如何使用Cesium库在时间轴上实现自定义事件,通过监听`onTick`事件并在特定时间触发JavaScript动作,如显示/隐藏元素。当时间轴播放完成时,事件处理逻辑会相应调整。
350

被折叠的 条评论
为什么被折叠?



