ReadonlyonFires whenever currentDate changes (scrub or tick).
ReadonlyonFires once when the cursor crosses each milestone's date during forward playback (also fires for reverse jumps if the cursor lands exactly on or past a milestone it wasn't on before).
ReadonlyonFires when pause or end-of-schedule stops playback.
ReadonlyonFires when play starts playback.
Per-real-second day advance while playing is true.
ReadonlyscheduleReadonlyviewCurrent cursor date — read at any time, write to scrub.
Cursor date as epoch ms (cheaper than the Date getter when
the caller is already in ms units, e.g. binding a slider).
Cursor position as [0, 1] across the schedule's full range —
handy for binding to a <input type="range" min="0" max="1">.
Detach from the animation task runner. The view's ViewObjects are left in their last-applied state.
Jump to the schedule's next milestone after currentDate.
Returns the milestone task it landed on, or null if there
are no further milestones.
Pause playback. The cursor stays where it is.
Begin playback. No-op if already playing or destroyed.
Jump to the schedule's previous milestone before currentDate.
Move the cursor to a specific date (epoch ms). Clamped to the
schedule's [startDate, endDate]. Triggers a state re-apply
and an onDateChanged dispatch.
When
true, pending-task objects render as a low-opacity ghost rather than hidden.