Skip to main content
合成是定义视频时间线的 HTML 文档。每个剪辑——视频、图像、音频——都存在于一个作品中。

结构

每个组合都需要一个带有 data-composition-id 的根元素:
index.html
index.html 文件是顶层组合。它可以包含嵌套的组合。任何作品都可以导入到另一个作品中——没有特殊的“根”类型。

剪辑类型

剪辑是时间线上的任何离散块,表示为具有数据属性 的 HTML 元素:
  • <video> — 视频剪辑、B 卷、A 卷
  • <img> — 静态图像、叠加层
  • <audio> — 音乐、音效
  • <div data-composition-id="..."> — 嵌套组合(动画、分组序列)
有关每种剪辑类型的属性的完整列表,请参阅 HTML 架构参考

嵌套组合

您可以通过两种方式将一个组合嵌入到另一个组合中:从外部文件加载或内联定义它。外部文件是可重用组合的推荐方法。
使用 data-composition-src 引用另一个 HTML 文件。框架自动获取文件,提取 <template> 内容,安装它,执行脚本并注册时间线。
index.html
每个外部组合文件将其内容包装在 <template> 标记中:
compositions/intro-anim.html

项目结构

project
index.html
compositions
intro-anim.html
caption-overlay.html
outro-title.html

两层:基元和脚本

每个作品都有两层:
  • HTML — 原始剪辑(videoimgaudio、嵌套组合)。声明性结构:播放什么内容、何时播放以及在哪首曲目上播放。由数据属性控制。
  • 脚本 — 效果、过渡、动态 DOM、画布、SVG — 通过 GSAP 进行创意动画。脚本控制媒体播放或剪辑可见性。
切勿使用脚本来播放/暂停/搜索媒体元素或根据时间显示/隐藏剪辑。框架根据数据属性自动处理此问题。重复此行为的脚本将与框架冲突。有关示例,请参阅常见错误

变量

HyperFrames 不会自动将 data-var-* 属性绑定到您的组合 DOM 或 CSS 中。 支持的模式是:
  1. 使用 data-composition-variables (id + 类型 + 默认值)在子组件的 <html> 根上声明一次变量。
  2. 使用 data-variable-values 在每个组合主机上传递每个实例的值。
  3. 使用 window.__hyperframes.getVariables() 读取组合内的解析值。运行时将主机的 data-variable-values 分层到每个实例声明的默认值之上,因此可以使用不同的值多次嵌入相同的源。
index.html
compositions/card.html
如果您在 @hyperframes/core 之上构建工具,则可以通过 extractCompositionMetadata() 读取相同的 data-composition-variables 数组,以用于 Studio 编辑 UI 和分析管道。

列表组合

使用 CLI 查看项目中的所有合成:

下一步

数据属性

有关时序、媒体和合成属性的完整参考

GSAP动画

使用 GSAP 时间线将动画添加到您的作品中

示例

从常见视频模式​​的内置示例开始

HTML 架构参考

创作作品的完整架构