feat(framework): FrameSet 多帧切帧组件(B §3.4)

承载 set_self(spid, 43, n) 的 C 移植调用:
- 1 基帧号, FrameIndex=0 按 1 处理(旧引擎 2 个对象如此)
- 越界显式抛错(第二准则:不兜底)
- 并发去重:多次 setFrame 在加载未完成时只触发一次 loadByPrefix
- 命名与 scripts/ui-migration/frames.mjs:frameFileName 公式逐字对齐

分层:
- core/frame-file-name.ts 纯公式,无 Cocos 依赖,直接单测
- ui/frame-set.ts 核心逻辑,FrameSource/FrameTarget 注入接口隔离 Cocos 类型
- ui/resources-frame-source.ts 生产实现,Resources.loadDir + Auto Atlas 合图过滤

tsconfig.framework.json 排除 resources-frame-source.ts(其含 cc 模块,走 Cocos 编辑器编译)。

103/103 framework tests pass,typecheck exit 0。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-31 17:50:22 +08:00
co-authored by Claude Opus 5
parent f5567a220a
commit ff346a759f
6 changed files with 338 additions and 0 deletions
@@ -13,5 +13,8 @@
"include": [
"YouleNexus/assets/framework/**/*.ts",
"framework-tests/**/*.ts"
],
"exclude": [
"YouleNexus/assets/framework/ui/resources-frame-source.ts"
]
}