Events
API
鼠标事件
// 由 ScreenSpaceEventHandler 进行监听const handler = new Cesium.ScreenSpaceEventHandler(viewer.canvas);
// 事件类型由 ScreenSpaceEventType 维护,包含了移动端事件handler.setInputAction(() => {}, Cesium.ScreenSpaceEventType.LEFT_CLICK);Entity 事件
// 监听实体属性或者子属性的变化entity.definitionChanged.addEventListener(() => {});
// 监听位置属性的变化entity.position.definitionChanged.addEventListener(() => {});相机事件
// 通过 screenSpaceCameraController 来对相机的操作进行设置// 只能鼠标中键和双指头能缩放地图viewer.scene.screenSpaceCameraController.zoomEventTypes = [ CameraEventType.WHEEL, CameraEventType.PINCH,];
// camera出现变化,例如移动,改变视角,缩放viewer.camera.changed;viewer.camera.moveEnd;viewer.camera.moveStart;对于缩放,并不是每次缩放都会触发 changed 事件,而是当缩放结束后,会将视角的变化值和 percentageChanged( [0, 1],默认 0.5) 进行比对,如果变化值大于 percentageChanged,才会触发 changed 事件。如果你想更加精确的监听事件,可以将 camera.percentageChanged 设置小一点
场景事件
// 场景和模型数据更新前触发,例如可以处理基于时间的动画数据scene.preUpdate;// 所有场景和模型数据更新完毕scene.postUpdate;
// 渲染前,此时还可以更改渲染状态,例如物体的材质等等scene.preRender;// 渲染后,此时可以做一些统计,清理工作scene.postRender;
scene.terrainProviderChanged;
// 场景模式切换,例如从3D切换到2Dscene.morphStart;scene.morphComplete;
scene.renderError;Imagery 事件
ImageryProvider.errorEvent;Terrain 事件
Terrain.errorEvent;Terrain.readyEvent;