scheduling

AMD: require(["geoscene/core/scheduling"], (scheduling) => { /* 代码 */ });
ESM: import * as scheduling from "@geoscene/core/core/scheduling";
对象: geoscene/core/scheduling
起始版本: GeoScene API for JavaScript 4.22

各种实用程序和便利功能,用于在浏览器框架的各个阶段执行代码。scheduling 模块允许您注册在每个动画帧中执行的任务。这可用于将更新与视图的持续动画同步,或通过调整每一帧中的范围或照相机来手动为视图添加动画效果。

// 在每一帧中设置场景视图摄影机标题的动画
let handle = scheduling.addFrameTask({ update: function() { let camera = view.camera.clone(); camera.heading += 0.2; view.camera = camera; } }); // 一旦用户开始在视图中导航,就删除帧任务
watchUtils.whenOnce(view, "navigating", function() { handle.remove(); });

方法列表

名称 返回值类型 描述 对象
FrameTaskHandle更多信息

注册帧任务。

更多信息scheduling
Object更多信息

计划在下一次 Web 浏览器计时执行 callback 函数。

更多信息scheduling

方法详细说明

addFrameTask(phases){FrameTaskHandle}static

注册帧任务。动画帧由不同的阶段组成,以允许不同的参与者在 MapView 或 SceneView 的渲染之前、之后或期间执行代码。

参数:

帧的每个阶段的回调。

返回值:
类型 描述
FrameTaskHandle 用于删除、暂停或恢复帧任务的句柄。
示例代码:
// 在每一帧中设置场景视图摄影机标题的动画
let handle = scheduling.addFrameTask({ update: function() { let camera = view.camera.clone(); camera.heading += 0.2; view.camera = camera; } }); // 一旦用户开始在视图中导航,就删除帧任务
watchUtils.whenOnce(view, "navigating", function() { handle.remove(); });
schedule(callback){Object}static

计划在下一次 Web 浏览器计时执行 callback 函数。与 addFrameTask 不同,计划的 callback 只运行一次。当您想要在单个 javascript 执行上下文中限制/累积功能时,为下一个执行周期计划任务可能很有用。

参数:
callback Function

要在下一个滴答声时调用的函数。

返回值:
类型 描述
Object 调度处理程序,其中包含一个 remove() 方法,该方法可以调用该方法以防止在下一个价格变动时调用回调。
属性 类型 描述
remove Function 调用时,从回调队列中删除回调。
示例代码:
// 使用日程安排。计划每个tick最多记录一次错误消息
let logErrorHandle; function logError(error) { if (!logErrorHandle) { logErrorHandle = scheduling.schedule(function() { console.error(error); logErrorHandle = null; }); } });

类型定义

FrameTaskHandle Object

用于删除或暂停使用 addFrameTask() 注册的帧任务的对象。

属性:
pause Function

暂停执行每一帧的帧任务。

resume Function

恢复执行帧任务。

remove Function

删除框架任务。

PhaseCallback(event)

在动画帧的特定阶段调用的函数。

参数:
event PhaseEvent
optional

具有计时信息的对象。

PhaseCallbacks Object

将在动画帧的特定阶段调用的一组回调

属性:
prepare PhaseCallback
optional

在呈现之前调用的回调。

render PhaseCallback
optional

用于执行呈现逻辑的回调。

update PhaseCallback
optional

用于执行状态更新逻辑的回调。

PhaseEvent Object

具有计时信息的对象。

属性:
time Number

当前动画帧开始时的绝对时间。

deltaTime Number

自上一个动画帧以来经过的时间。

elapsedFrameTime Number

在当前动画帧中花费的时间量。这可用于预算编制(例如,某些任务可能已经运行)。

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.