Ruffle 内置调试器界面:Stage / MovieClip / AVM2 实时检查
怎么打开
桌面版:菜单「调试 → 打开调试器」或直接按 F12。Web 版(网站嵌入 / 扩展)里也能用——不过 Web 版的调试器面板比独立版少一些选项。
打开后会出现两个面板:主面板(显示场景信息)和右侧 MovieClip 检查器。

调试器能看到什么
Stage 面板(左侧)
列出现阶段上所有的显示对象树:
- Position / Display / Interactive / Stage / Children:五个 Tab,按维度分组
- Name:DisplayObject 的 instanceName(SWF 代码里给的名字)
- Character:character ID(Flash 内部的元素类型编号)
- Movie:所属的 MovieClip 或 Sprite
- AVM2 Object:AVM2 对象的内部地址(0x 开头)
- Depth:舞台深度(depth 值越小越靠前)
- Self Bounds:这个 DisplayObject 自己的边界矩形(x, y, width, height)
- Scroll Rect:如果设置了滚动矩形,这里能看到
- Local Matrix / World Matrix:局部 / 世界变换矩阵
在左侧面板里点任意一个 DisplayObject,右边的 MovieClip 检查器会切过去。
MovieClip 检查器(右侧)
选中某个 DisplayObject 后,这里能看到:
- Total Frames:MovieClip 总帧数(截图里的例子是 4059 帧)
- Flags:Playing / Initialized / Programmatically Played 等状态标志
- Controls:Play / Stop / Prev / Next 四个控制按钮,可以单帧调试
- Frame List:每一帧的关键帧事件
上下文菜单
在 Stage 面板里右键一个 DisplayObject:
- 场景信息:弹出当前场景的全局信息
- 查看根 MovieClip:跳到根
- 已知 MovieClip:筛选有名字的 MovieClip
- 显示所有对象:列出 stage 上所有对象
- 搜索:按名字搜索 DisplayObject
什么时候用调试器
排查画面渲染问题
画面上某个元素显示不对、错位、变形——在 Stage 面板里找到它,看 Self Bounds 和 World Matrix。对比旧 Flash Player 里的行为,就能知道是 Ruffle 渲染器的 bug 还是 SWF 自己的问题。
排查 ActionScript 逻辑
AVM 1 和 AVM 2 都能在调试器里加断点(独立版的调试器支持部分断点功能)。想看某个变量的实时值、或者确认某个函数有没有被调用——调试器能帮你定位。
想研究一个陌生 SWF 的内部结构
把别人的 SWF 拖进来、打开调试器,逐个看它的 DisplayObject 树、有哪些 MovieClip、每个叫什么名字——这比反编译 SWF(用 JPEXS 等工具)直观得多。
Web 版的调试器
网站嵌入或浏览器扩展的 Web 版调试器功能比独立版少——主要因为浏览器沙箱限制。能看基本的 Stage 信息,但断点、单帧控制等功能 Web 版做不到。需要完整调试时建议把 SWF 下载到本地,用独立版开 --verbose 模式。