一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

如何使 Twine/Harlowe 中的点击链接保持可见并可重复触发

时间:2026-07-11 10:57:53 编辑:袖梨 来源:一聚教程网

在 Twine 2 + Harlowe 中,使用 (link:) 宏创建的链接默认为“一次性”行为——点击后执行动作的同时会自动移除自身;若需反复点击、持续触发(如多次弹窗),应改用 (link-rerun:) 宏。

在 twine 2 + harlowe 中,使用 `(link:)` 宏创建的链接默认为“一次性”行为——点击后执行动作的同时会自动移除自身;若需反复点击、持续触发(如多次弹窗),应改用 `(link-rerun:)` 宏。

Harlowe 的 (link:) 宏设计初衷是实现“单次导航或单次交互”,因此其行为包含两个隐式步骤:执行括号内命令 + 从 DOM 中移除该链接元素。这正是你遇到“点击后链接消失”的根本原因——它并非 Bug,而是预期行为。

要实现“点击不消失、可无限重复触发”的效果,正确解法是使用 (link-rerun:) 宏。该宏与 (link:) 语法完全一致,但语义不同:它仅执行内部命令,保留链接本身,并维持当前 passage 内容不变(即不跳转、不重渲染整个 passage,仅响应式执行)。

✅ 正确写法如下:

Thing (link-rerun: "Look at")[(alert: ["It's a thing"], "Sure.")]

⚠️ 注意事项:

  • (link-rerun:) 不会刷新 passage 或重载变量,适合轻量交互(如提示、计数、状态切换);
  • 若需在点击后更新文本(如显示“已查看 3 次”),可配合 $(count) 变量与 +1 运算使用;
  • 避免在 (link-rerun:) 内执行耗时操作或大量 DOM 修改,以免影响响应性能;
  • 不要混用 (link:) 与 (link-rerun:) 实现同一逻辑——语义混淆易引发维护问题。

? 小技巧:若还需视觉反馈(如点击后变色),可结合 CSS 类与 enchant 宏动态添加样式,但核心交互逻辑仍应基于 (link-rerun:) 保证可持续性。

热门栏目