Capítulo 779 de 859

Chapter 779: Timer

Core Idea

This class is an alternative to Clock with a different API design and behavior. The goal is to avoid the conceptual flaws that became apparent in Clock over time.

  • Timer has an update() method that updates its internal state. That makes it possible to call getDelta() and getElapsed() multiple times per simulation step without getting different values.
  • The class can make use of the Page Visibility API to avoid large time delta values when the app is inactive (e.g. tab switched or browser hidden).

Code Examples

const timer = new Timer();
timer.connect( document ); // use Page Visibility API
  • What it demonstrates: Typical usage of Timer.

Reference Tables

Constructor

Signature
new Timer()

Methods

MethodDescription
.connect( document : Document )Connect the timer to the given document.Calling this method is not mandatory to use the timer but enables the usage of the Page Visibility API to avoid large time delta values.
.disconnect()Disconnects the timer from the DOM and also disables the usage of the Page Visibility API.
.dispose()Can be used to free all internal resources. Usually called when the timer instance isn't required anymore.
.getDelta() : numberReturns the time delta in seconds.
.getElapsed() : numberReturns the elapsed time in seconds.
.getTimescale() : numberReturns the timescale.
.reset() : TimerResets the time computation for the current simulation step.
.setTimescale( timescale : number ) : TimerSets the given timescale which scale the time delta computation in update().
.update( timestamp : number ) : TimerUpdates the internal state of the timer. This method should be called once per simulation step and before you perform queries against the timer (e.g. via getDelta()).

Key Takeaways

  1. Key methods: connect, disconnect, dispose, getDelta.

Connects To