scheduling

AMD: require(["geoscene/core/scheduling"], (scheduling) => { /* code goes here */ });
ESM: import * as scheduling from "@geoscene/core/core/scheduling";
类: geoscene/core/scheduling
起始版本:GeoScene Maps SDK for JavaScript 4.7

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

// Animate the scene view camera heading in every frame
let handle = scheduling.addFrameTask({
  update: function() {
    let camera = view.camera.clone();
    camera.heading += 0.2;
    view.camera = camera;
  }
});

// Remove frame task as soon as the user starts navigating in the view
reactiveUtils.whenOnce(() => view.navigating, () => handle.remove());

方法概述

名称 返回值类值 描述 对象
FrameTaskHandle

注册帧任务。

更多详情
scheduling
Object

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

更多详情
scheduling

方法详细说明

addFrameTask(phases){FrameTaskHandle}static

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

参数

帧的每个阶段的回调。

返回
类型 描述
FrameTaskHandle 用于移除、暂停或恢复帧任务的句柄。
示例
// Animate the scene view camera heading in every frame
let handle = scheduling.addFrameTask({
  update: function() {
    let camera = view.camera.clone();
    camera.heading += 0.2;
    view.camera = camera;
  }
});

// Remove frame task as soon as the user starts navigating in the view
reactiveUtils.whenOnce(() => view.navigating, () => handle.remove());
schedule(callback){Object}static

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

参数
callback Function

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

返回
类型 描述
Object 返回带有 remove() 方法的调度处理程序,可调用该方法以防止在下一个滴答声时调用回调。
属性 类型 描述
remove Function 调用时,从回调队列中移除回调。
示例
// Use scheduling.schedule to log an error message at most once per 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)

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

参数
optional

具有计时信息的对象。

PhaseCallbacks Object

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

属性
optional

在渲染之前调用的回调。

optional

执行渲染逻辑的回调。

optional

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

PhaseEvent Object

具有计时信息的对象。

属性
time Number

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

deltaTime Number

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

elapsedFrameTime Number

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

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。请参阅浏览器弃用帖子以获取更多信息