|
|
d54568e03d
|
fix: defer play() via setTimeout(0) after seek in loop, avoid browser event loop race
|
2026-06-12 23:27:43 +08:00 |
|
|
|
dda717522d
|
fix: call play() after seekTo in checkLoop to prevent video freeze
|
2026-06-12 23:26:04 +08:00 |
|
|
|
ad6b6d0833
|
fix: play after seekTo in loop ended handler for loopStart=0
|
2026-06-12 23:23:59 +08:00 |
|
|
|
1527261ac2
|
fix: ensure video unmuted in async play callbacks after loop
|
2026-06-12 23:15:51 +08:00 |
|
|
|
bf9bd46723
|
fix: restore video sound after loop ends by setting muted in goToScene
|
2026-06-12 23:10:18 +08:00 |
|
|
|
0900bdf872
|
fix: mute video when entering loop
|
2026-06-12 23:06:15 +08:00 |
|
|
|
a603833d7e
|
fix: handle loop seek in video ended callback, prevent duplicate end events
|
2026-06-12 22:58:59 +08:00 |
|
|
|
5a4acfc6bb
|
docs: update SCENE_JSON_SPEC with current types, deprecate flag fields
|
2026-06-12 21:26:00 +08:00 |
|
|
|
8655e01c23
|
refactor: unify video mode detection into getVideoMode()
|
2026-06-12 19:10:51 +08:00 |
|
|
|
32f7e34130
|
fix: preload candidate URLs now use resolveVideoUrl in Web mode
|
2026-06-12 18:56:29 +08:00 |
|
|
|
503496ea0e
|
fix: only switch quality during active playback, not after video ended
|
2026-06-12 17:51:01 +08:00 |
|
|
|
d46a2194f4
|
fix: switchQuality reset currentTime=0 to unset ended flag
|
2026-06-12 17:42:43 +08:00 |
|
|
|
a465009086
|
fix: switchQuality add load() to reset HLS state after video ended
|
2026-06-12 17:39:58 +08:00 |
|
|
|
b6231e4efd
|
feat: adaptive bitrate support, engine improvements, demo updates, and electron preload
|
2026-06-12 17:15:30 +08:00 |
|
|
|
215a8db829
|
feat: chapter boundary gateway nodes in flow, prevent cross-chapter BFS expansion
|
2026-06-12 12:28:31 +08:00 |
|
|
|
9baa7b5ab3
|
feat: add scene thumbnails to TreeFlow nodes with auto-generated demo thumbs
|
2026-06-12 12:08:39 +08:00 |
|
|
|
0379548a29
|
feat: full-screen StoryGallery with flow layout, startAtScene engine method, clickable flow nodes
|
2026-06-12 11:37:14 +08:00 |
|
|
|
ae7721d70e
|
feat: story gallery progress, type updates, roadmap, cleanup old session file
|
2026-06-11 21:08:29 +08:00 |
|
|
|
03c4ee3a65
|
feat: i18n for choice prompt via promptKey, with fallback
|
2026-06-10 16:51:50 +08:00 |
|
|
|
2f9f9a4117
|
feat: i18n achievement UI labels and data layer title/description
|
2026-06-10 16:36:24 +08:00 |
|
|
|
e51b5e234e
|
feat: i18n StoryGallery UI labels and data layer chapter/ending names
|
2026-06-10 16:29:25 +08:00 |
|
|
|
d057beb82d
|
feat: QTE prompt i18n via promptKey, fallback to prompt text
|
2026-06-10 16:21:23 +08:00 |
|
|
|
0a1147c2fe
|
fix: hotspot, demo, i18n and type updates
|
2026-06-10 16:10:23 +08:00 |
|
|
|
76581d0326
|
feat: intro video, asset updates, roadmap and engine improvements
|
2026-06-10 14:47:45 +08:00 |
|
|
|
bb289f5438
|
feat: switch hotspot coordinates from container percentage to absolute content pixels
|
2026-06-10 12:45:41 +08:00 |
|
|
|
86a0aebdc8
|
feat: configurable locales path per story, dynamic language switching from story data
|
2026-06-10 12:17:52 +08:00 |
|
|
|
937e709dca
|
feat: global assetBase for scene JSON, convert demo to relative paths
|
2026-06-10 11:01:21 +08:00 |
|
|
|
c9d29019a0
|
feat: accessibility settings, subtitle/QTE improvements, docs update
|
2026-06-09 19:42:08 +08:00 |
|
|
|
906965c963
|
fix: wire up EndingGallery click to open ChapterRecap via chapterId
|
2026-06-09 17:57:21 +08:00 |
|
|
|
9297117544
|
feat: P15 ending gallery, chapter recap, visited tracking, save system v6
|
2026-06-09 17:49:07 +08:00 |
|
|
|
451c6ea025
|
chore: sync latest changes
|
2026-06-09 17:21:54 +08:00 |
|
|
|
bf4b85f727
|
feat: choice conditions with variables, demo updates, roadmap update
|
2026-06-09 16:46:06 +08:00 |
|
|
|
f044ed0b60
|
refactor: switch to key-based i18n for choices, revert inline textEn approach
|
2026-06-09 15:54:55 +08:00 |
|
|
|
8e7f77bc38
|
feat: inline bilingual choice text (textEn), lang-aware choice rendering
|
2026-06-09 15:51:37 +08:00 |
|
|
|
59aed77199
|
feat: i18n system, lang switch component, english subtitles, UI improvements, roadmap update
|
2026-06-09 15:40:51 +08:00 |
|
|
|
0a6d26ecb0
|
fix: suppress videoEnd during QTE, clear QTE UI on game end and chapter restart
|
2026-06-09 14:55:13 +08:00 |
|
|
|
660fa9347c
|
feat: playback bar component, save system improvements, demo and roadmap updates
|
2026-06-09 14:21:41 +08:00 |
|
|
|
652162f565
|
fix: restore opacity when replaying same video after image scene
|
2026-06-09 12:32:48 +08:00 |
|
|
|
ed435f790f
|
refactor: extract enterScene as single source of truth for scene transitions
|
2026-06-09 12:26:38 +08:00 |
|
|
|
bdf62bf0a6
|
fix: set currentScene before image branch in resumeScene so hotspots are clickable
|
2026-06-09 12:18:42 +08:00 |
|
|
|
ace5ed1fb3
|
feat: chapter select system, multi-chapter support, scene manager refactor, and docs update
|
2026-06-09 11:35:11 +08:00 |
|
|
|
4bfdfbc27d
|
feat: audio system, demo scene updates, docs, and engine improvements
|
2026-06-08 23:18:33 +08:00 |
|
|
|
0dbe1b097d
|
feat: video loop support for hotspot scenes, demo updates, docs, and engine fixes
|
2026-06-08 21:48:47 +08:00 |
|
|
|
5b40781d0a
|
fix: hide old video frame before crossfade when coming from image scene
|
2026-06-08 21:24:28 +08:00 |
|
|
|
972738572f
|
fix: filter stale timeupdate events by tracking sceneVideo element
|
2026-06-08 21:09:10 +08:00 |
|
|
|
6c0deea0e2
|
fix: pause old video before switching to prevent stale timeupdate triggering wrong hotspot states
|
2026-06-08 15:29:28 +08:00 |
|
|
|
17c479525d
|
fix: emit initial hotspot state immediately after sceneChange to prevent flash
|
2026-06-08 15:17:43 +08:00 |
|
|
|
077de2a64e
|
fix: emit sceneChange before video start to avoid hotspot flash, prevent game end for hotspot-only scenes
|
2026-06-08 15:02:38 +08:00 |
|
|
|
d81042174a
|
fix: skip crossfade when switching to same video, replay from start
|
2026-06-08 14:32:34 +08:00 |
|
|
|
6b67989007
|
feat: engine improvements, new scenes, videos, subtitles, hotspot component and docs update
|
2026-06-08 14:01:58 +08:00 |
|