scheduling

用于在浏览器框架的不同阶段执行代码的各种实用工具和方便函数。调度模块允许您注册在每个动画帧中执行的任务。这可以用来同步更新与正在进行的视图动画,或手动调整范围或相机在每一帧动画视图。


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

方法概述

  • addFrameTask():注册一个框架任务。
  • schedule():调度回调函数在下一个web浏览器执行。

方法简介

  • addFrameTask(phases):注册一个框架任务。一个动画帧由不同的阶段组成,让不同的参与者在渲染MapView或SceneView之前、之后或期间执行代码。参数
    • phases:帧的每个阶段的回调。

// 动画场景视图摄像机标题在每一帧
var handle = scheduling.addFrameTask({
  update: function() {
    var camera = view.camera.clone();
    camera.heading += 0.2;
    view.camera = camera;
  }
});

// 一旦用户开始在视图中导航,就删除框架任务
watchUtils.whenOnce(view, "navigating", function() {
  handle.remove();
});
  • schedule(callback):调度回调函数在下一个web浏览器执行。与addFrameTask不同,调度回调将只运行一次。当您希望在单个javascript执行上下文上限制/累积功能时,为下一个执行滴轮安排一个任务可能非常有用。参数
    • callback:下一个点号要调用的函数。

var logErrorHandle;
function logError(error) {
  if (!logErrorHandle) {
    logErrorHandle = scheduling.schedule(function() {
      console.error(error);
      logErrorHandle = null;
    });
  }
});

类型定义

  • FrameTaskHandle:一个对象用于删除或暂停用addFrameTask()注册的框架任务。属性
    • pause:在每一帧暂停帧任务的执行。
    • resume:恢复框架任务的执行。
    • remove:删除框架任务。
  • PhaseCallback(event):在动画帧的特定阶段调用的函数。参数
    • event:带有计时信息的对象。
  • PhaseCallbacks:在动画帧的特定阶段被调用的一组回调函数。属性
    • prepare:呈现前的回调。
    • render:执行呈现逻辑的回调。
    • update:执行状态更新逻辑的回调。
  • PhaseEvent:带有计时信息的对象。属性
    • time:当前动画帧开始的绝对时间。
    • deltaTime:从最后一帧动画开始所经过的时间。
    • elapsedFrameTime:当前动画帧所花费的时间。这可以用于预算(例如,一些任务可能已经运行)。

版权声明:
作者:Gomo
链接:https://www.develophm.com/index.php/scheduling/918/
来源:开发之家
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>