From f558a4e4aa3cb90cbd807d3a6ab4a5b25add9d2d Mon Sep 17 00:00:00 2001 From: tianmo Date: Fri, 16 Oct 2026 16:13:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=8A=E7=A1=AE=E8=AE=A4=E7=9A=84=E6=98=A0?= =?UTF-8?q?=E5=B0=84=E5=86=99=E8=BF=9B=E8=A1=A8=20+=20=E6=8A=80=E8=83=BD?= =?UTF-8?q?=E8=A1=A5=E4=B8=80=E6=9D=A1=E7=AB=8B=E5=8D=B3=E7=94=9F=E6=95=88?= =?UTF-8?q?=E7=9A=84=E8=A7=84=E7=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - anchors.tsv 增补 ScrollPane(含踩坑确认的 B(ZZ)V=setScrollingDisabled,不是 setForceScroll), names.tsv 同步为 220 条; - 混淆名对照表.md 新增第七节(ScrollPane 方法映射 + 教训); - .codex/skills/scope-discipline 增补『结论必须落进映射表(立即生效)』:新确认的映射/字段语义 当场写进 anchors.tsv 并同步 names.tsv / src-named,不许只留在对话里。 --- .codex/skills/scope-discipline/SKILL.md | 18 ++++++++++++++++++ tools/deobf/anchors.tsv | 8 ++++++++ 混淆名对照表.md | 13 +++++++++++++ 3 files changed, 39 insertions(+) diff --git a/.codex/skills/scope-discipline/SKILL.md b/.codex/skills/scope-discipline/SKILL.md index 0fb2469..32be73f 100644 --- a/.codex/skills/scope-discipline/SKILL.md +++ b/.codex/skills/scope-discipline/SKILL.md @@ -38,3 +38,21 @@ description: 在本仓库(Spine 3.8.99 编辑器"面板加功能")里动手 - 调研结论与 API 对照:`编辑器交互与数据API.md`、`混淆名对照表.md` - 重启入口:`viewpanel/run.sh`、`viewpanel/重启编辑器.command` + +## 结论必须落进映射表(立即生效) + +任何**新确认**的东西都要当场写进文件,不要只留在对话里: + +1. 混淆名 → 真名的映射(方法/字段,含**描述符**):追加到 `tools/deobf/anchors.tsv` + (一行:`ownernamedesc真名`,上面用 `#` 写清依据,例如 + `ScrollPane B (ZZ)V setScrollingDisabled` —— 这条是踩坑确认的:传 `(false,true)` 等于关掉纵向滚动)。 +2. 场景对象字段的语义(x/y/rotation/scale/…):同样进 `anchors.tsv`,依据写"用户实测:改了什么值 → 哪个字段动了"。 +3. 然后跑一次合并 + 重命名,保证产物同步: + ```bash + python3 - <<'PY' # 合并 anchors-libgdx.tsv + anchors.tsv -> names.tsv + ... + PY + java -cp "tools/deobf/build:$ASM" com.spineview.deobf.Renamer \ + /tmp/spinework/payload-public.zip tools/deobf/names.tsv /tmp/spinework/payload-named.zip + ``` +4. `混淆名对照表.md` 里同步补一行(混淆名 → 真名 → 依据),并写清"已确认 / 未定"。 diff --git a/tools/deobf/anchors.tsv b/tools/deobf/anchors.tsv index a09f1e5..b1a6a01 100644 --- a/tools/deobf/anchors.tsv +++ b/tools/deobf/anchors.tsv @@ -66,3 +66,11 @@ GO L F scaleX GO I F scaleY GO C F width GO Z F height +# ---- ScrollPane(保名类 com/badlogic/gdx/scenes/scene2d/ui/ScrollPane)---- +# 依据:MapMethods 对 gdx-1.11.0 指纹比对(tools/deobf/anchors-libgdx.tsv 自动生成), +# 并且**踩过一次**:一直以为 B(ZZ)V 是 setForceScroll,传了 (false,true), +# 结果纵向滚动被关掉(那其实是 setScrollingDisabled(x,y))—— 现象就是"列表滚不动"。 +com/badlogic/gdx/scenes/scene2d/ui/ScrollPane B (ZZ)V setScrollingDisabled +com/badlogic/gdx/scenes/scene2d/ui/ScrollPane L (FFFF)V scrollTo +com/badlogic/gdx/scenes/scene2d/ui/ScrollPane D (Ldl;)V addActor +com/badlogic/gdx/scenes/scene2d/ui/ScrollPane D (Ldl;Z)Z removeActor diff --git a/混淆名对照表.md b/混淆名对照表.md index b560cd4..d010697 100644 --- a/混淆名对照表.md +++ b/混淆名对照表.md @@ -331,3 +331,16 @@ macOS 文件系统大小写不敏感,解到目录里会互相覆盖 —— 所 **已知未打通**:命令"执行了但没生效"(`New Bone` / `Rulers` 都没看到界面变化)。 下一步要确认执行路径究竟是 `pC.boolean D()` 还是 `pC.void D()`,以及**怎么设置当前选择**。 + +--- + +## 七、ScrollPane 的方法映射(2026-10-16 踩坑确认) + +| ScrollPane 载荷签名 | 真名 | 依据 | +| --- | --- | --- | +| `B(ZZ)V` | **`setScrollingDisabled(x, y)`** | MapMethods 对 gdx-1.11.0 指纹比对;**踩坑确认**:一直当它是 `setForceScroll`,传了 `(false, true)`,结果把纵向滚动关掉了 —— 现象就是"面板列表滚不动"。正解是 `(false, false)` 恢复双向滚动 | +| `L(FFFF)V` | `scrollTo(x, y, width, height)` | 同上 | +| `D(Ldl;)V` / `D(Ldl;Z)Z` | `addActor` / `removeActor` | 同上 | + +> 教训也写进技能了:**新确认的映射必须当场写进 `tools/deobf/anchors.tsv` 并同步 `names.tsv` / `src-named`**, +> 不许只留在对话里(见 `.codex/skills/scope-discipline/SKILL.md` 末节)。