Files
Genarrative/docs/technical/RPG_RUNTIME_PANEL_CLOSE_BUTTON_FIX_2026-04-29.md
2026-04-29 20:56:59 +08:00

1.5 KiB
Raw Blame History

RPG 运行态面板右上关闭按钮修复2026-04-29

背景

RPG 运行态里仍有一批历史手写弹窗,没有统一迁入 UnifiedModal。这些弹窗的右上关闭按钮分别散落在角色详情、队伍、背包、地图、NPC 交易、任务日志和奖励面板里,按钮尺寸、层级、点击事件传播和无障碍标识不一致。

用户反馈多个 RPG 模板游戏内面板右上角关闭按钮点击无效。排查后,本次先按最小风险方式修复关闭交互边界,不重构业务面板结构。

落地方案

  1. 新增 PixelCloseButton 作为 RPG 像素风面板右上关闭按钮的统一组件。
  2. 组件内部统一处理:
    • event.preventDefault()
    • event.stopPropagation()
    • 稳定 z-index
    • 固定移动端友好的点击面积;
    • aria-labeltitle
  3. RPG 游戏内旧弹窗的右上关闭按钮统一替换为 PixelCloseButton
  4. 保留各面板原本的关闭回调和业务状态清理逻辑,不改变任务、奖励、交易、地图、角色详情等业务行为。

验收

  1. 点击游戏内面板右上关闭按钮时,只触发该按钮的关闭回调,不被父层遮罩或面板点击处理吞掉。
  2. 队伍、背包、地图、角色详情、角色聊天、NPC 交易 / 赠礼 / 招募、任务日志、任务详情、奖励详情等面板的右上关闭按钮可稳定关闭。
  3. 关闭按钮具备可检索的无障碍名称,后续可用自动化测试直接定位。
  4. 编码检查、定向测试和类型检查通过。