19 lines
542 B
JavaScript
19 lines
542 B
JavaScript
import { frame, cancelFrame } from '../frameloop/frame.mjs';
|
|
|
|
function observeTimeline(update, timeline) {
|
|
let prevProgress;
|
|
const onFrame = () => {
|
|
const { currentTime } = timeline;
|
|
const percentage = currentTime === null ? 0 : currentTime.value;
|
|
const progress = percentage / 100;
|
|
if (prevProgress !== progress) {
|
|
update(progress);
|
|
}
|
|
prevProgress = progress;
|
|
};
|
|
frame.preUpdate(onFrame, true);
|
|
return () => cancelFrame(onFrame);
|
|
}
|
|
|
|
export { observeTimeline };
|