组件一览
所有故事组件都是 renderless(无渲染)的,它们不会在页面上生成任何额外的 DOM 元素,只默默地在幕后完成数据收集与逻辑组织。你的模板最终只输出插槽中的真实内容,这意味着你可以完全掌控页面的结构和样式。
组件职责速查
| 组件 | 作用 |
|---|---|
AShell | 故事根节点,收集所有场景与对话,统一计算 next 并调用 API |
AScene | 定义一个场景,提供 id 与 name,自动推断子对话的 next。支持 stop 属性暂停故事 |
ADialog | 一段对话的容器,收集其中的台词、选项、结局等,作为整体发送。支持 stop 属性暂停故事 |
ALine | 一行普通对话,其内容可以是任意 HTML 或组件 |
AOptions | 选项组,将多个 AOption 打包为选项列表 |
AOption | 单个选项,包含显示文字(content 插槽)和选择后执行的对话内容。支持 stop 属性暂停故事 |
AEnding | 对话结束标记,当执行到时调用 Adv.ending() 结束游戏 |
AIf | 条件分支,根据 condition 决定是否执行插槽内容 |
AElif | "否则如果"分支,与 AIf 配合形成多路条件判断 |
AElse | "否则"分支,当所有 AIf/AElif 条件不满足时执行 |
AEndDialog | 提前结束当前对话,跳过后续所有脚本 |
AGoto | 强制跳转到指定的对话或场景 ID |
ARun | 在脚本执行流中嵌入任意自定义代码 |
ACheck | 属性检定组件,封装掷骰、修正、成功/失败分流全流程 |
ABattle | 发动战斗 |
在接下来的章节中,我们将逐一学习如何用它们编写故事。