跳到主要内容

交互组件与触发冲突

交互组件在主组件变体之间预设行为,实例可以继承。这样十二张卡牌可以共享翻开反馈,而不用为每张重复连接相同局部交互。

建立单卡翻开​

在 Card 组件集中,把 Hidden 的 On click 连接到 Revealed,动作使用 Change to。Revealed 可连接回 Hidden,形成用于观察的双向演示。Matched 不连接再次翻开,Mismatch 可以短暂显示后返回 Hidden。

注意:这种局部交互不知道“另外一张牌是谁”。它只管理自己的变体切换。任意两张卡的比较、输入锁和游戏结算需要更完整的逻辑模型。

实例交互可能覆盖主定义​

如果实例上同样设置 On click → Navigate to,可能优先执行实例的跳转,主组件的翻开就不再发生。

本案例刻意使用这一点:游戏初始屏幕的第 1 张牌进入预设的“翻开第一张”屏幕;该屏幕第 2 张和第 7 张分别演示失配和匹配。其他牌可展示局部翻开效果,但不执行任意组合的自动判定。

点击没反应时查什么​

  1. 当前选中的是主组件、实例,还是里面的图形?
  2. 目标是否在同一个 Component set 中?
  3. 实例是否有同 Trigger 的额外交互?
  4. 上面是否有透明对象或浮层遮挡?
  5. 当前变体是否本来就没有点击动作?

不要用重复添加交互的方式解决。先读回 get_reactions,检查触发、目标、动作和组件身份。

请检查这张 Card 点击后没有翻开的原因。
分别读取实例与主变体的 reactions,标明相同 Trigger 的冲突。
确认目标仍属于同一个 Card 组件集。
先提出最小修复,再修改;保留教学页面跳转中有意设置的实例交互。

把反馈与规则分离​

Matched 变体是“已经匹配”的显示结果;业务状态机需要先确认两个不同 cardId 的 patternId 相同,然后再通知两个视图切到 Matched。若让视图随意改业务结果,快速点击和异步恢复会很难维护。

练习与检查​

复制一个卡牌实例,分别测试只有继承交互、额外添加页面跳转两种情况。记录为什么相同点击触发会产生不同结果,最后恢复测试实例,避免混入主流程。

依据:交互组件。核查:2026-10-31。