Commit Graph

12 Commits

Author SHA1 Message Date
Yanzhen Yu
a31efdc169 close #274 implement the new state management proposal 2026-04-01 12:00:00 +08:00
yz-yu
2a6e2e0ef9 Live mode 2 (#226)
* refactoring play, pause, resume, load style sheet to subscribe style code

* support live mode in state machine

* 1. upgrade @xstate/fsm
2. add toggle interact methods to the player
2026-04-01 12:00:00 +08:00
yz-yu
689840d237 start to support live mode (#73)
1. add a liveMode flag to config, when liveMode is set, the timer
will keep running even though all the actions casted
2. add a public method addEvent, which will cast newly added event
in sync
3. move mouse in sync mode with the latest position info
2026-04-01 12:00:00 +08:00
Yanzhen Yu
e8fea1f93b export timer to public API 2026-04-01 12:00:00 +08:00
Yanzhen Yu
73983e7e78 add skipInactive option
Skip inactive time is an important and useful feature. We consider
user interaction events as active, and check next user interaction
event after apply incremental snapshot.
If next user interaction event has a time gap larger than the
threshold, we will set a dynamic speed value which will skip the
inactive time interval in about 5 seconds.
2026-04-01 12:00:00 +08:00
Yanzhen Yu
a3757fc8cf fix timer requestAnimationFrame call may not stop after clear
Before this patch, the checker in the timer will stop only when
actions array is empty.
When we call play more than once, it will clear the timer first,
then  push filtered new actions and start the timer again. If
all of this happened in a frame, the checker which should be
cleared may found actions array is not empty and keep check.
So this patch we use timer.raf to hold raf's handle and cancel
it when clear was called.
2026-04-01 12:00:00 +08:00
Yanzhen Yu
4e636e1b6e fix timer clear method with do not reassign actions pointer 2026-04-01 12:00:00 +08:00
edwardwu
05530551df resolve #4 Improve timer's performance by storing all callbacks in an array (#5) 2026-04-01 12:00:00 +08:00
Yanzhen Yu
cd0889e9c5 implemented the play any offset feature 2026-04-01 12:00:00 +08:00
Yanzhen Yu
f75748674f impl dynamic config and pause. Bump 0.3.0 2026-04-01 12:00:00 +08:00
Yanzhen Yu
f7e4a90751 apply viewport resize and input event changes 2026-04-01 12:00:00 +08:00
Yanzhen Yu
499d84fc70 use raf to impl a more accurate timer and replay events async 2026-04-01 12:00:00 +08:00