@clayzo/webgl-player

中文文档
0.3.21发布于 2026/11/05SEE LICENSE IN LICENSE.mdTypeScriptES Module近 30 天下载 1.7万

轻量级Clayzo动画玩家. WebGL2,没有斯基亚,没有设置.

中文使用文档

@clayzo/webgl-玩家

轻量级Clayzo WebGL2播放器. 它嵌入了引擎核心和内置效果,因此回放不需要认证请求,舞台WASM文件,或Clayzo账户.

对于iOS和macOS应用程序,同样的文档通过Swift软件包在本地播放 克莱佐/克莱佐-摇摆。 。 。 .

npm install @clayzo/webgl-player
import { createPlayer, checkCoverage } from "@clayzo/webgl-player";

// `loaders` is optional: a bundle's, or your own font and image loaders.
const coverage = await checkCoverage(document, loaders);
if (!coverage.supported) throw new Error(coverage.reasons.join("; "));

const player = await createPlayer({ canvas, document, loaders, interactive: true });
player.play();

稳定的公共表面是: createPlayer(), (中文(简体) ), checkCoverage(), (中文(简体) ), registerFont(), (中文(简体) ), CreatePlayerOptions,以及 PlayerHandle发动机手柄、遮光源、渲染器类、WASM ABI和上下文池内部是故意私密的.

React and Next 客户端可以使用可选客户端的切入点 :

import { ClayzoPlayer } from "@clayzo/webgl-player/react";

export function Hero() {
  return (
    <ClayzoPlayer
      document={document}
      poster="/hero.poster.webp"
      posterTick={240}
      label="A cube folding into the logo"
    />
  );
}

组件显示 poster 一次加载玩家,只当它靠近取景口时,然后淡出 posterTick 和游戏. clayzo package hero.json --poster 240 写入匹配 hero.poster.webp当读者要求减少其动议时 posterTick· ; reducedMotion="pause" 停止它现在的位置 "ignore" 反正还是会玩的. autoplay={false} 别动, decorative 隐藏在屏幕阅读器中而不是 label,以及 fallback 如果玩家无法创建,则显示. document 可能会是 null 并装入.

没有反应的页面可以使用 <clayzo-player> 元素,具有相同行为:

<script type="module">import "@clayzo/webgl-player/element";</script>
<clayzo-player src="/hero.clayzo" poster="/hero.poster.webp" label="A cube folding into the logo"></clayzo-player>

src 是引擎 JSON 文档或 .clayzo 捆绑 属性为 poster, (中文(简体) ), poster-tick (默认到滴答 捆绑的海报 是在), autoplay, (中文(简体) ), loop, (中文(简体) ), interactive, (中文(简体) ), reduced-motion, (中文(简体) ), label 财务报告和审定财务报表 decorative; 设置 autoplay="false" 关闭一个。 这个元素有 play(), (中文(简体) ), pause(), (中文(简体) ), seek(), (中文(简体) ), setInput() 财务报告和审定财务报表 fire()和火灾 ready 财务报告和审定财务报表 error。如果玩家无法创建,则显示其中的内容.

国家

有状态机器的文档一次播放一个状态,如闲置,徘徊,按住,加载和完成等. 指向活动、投入和 setState 将其移动到状态之间,玩家在显示每个变化的帧后打回.

const player = await createPlayer({
  canvas,
  document,
  onStateChange: ({ from, to }) => console.log(from.name, "→", to.name),
});
player.play();
player.setInput("loading", true);
player.setState("done", { instant: true });
player.currentState; // { id, name }

initialState 从另一个状态开始, onComplete 报告一旦达到尾声的状态 onPointer 报告帆布上和受打击地区的事件. setReducedMotion(true) 在最后一帧显示每个状态,而不是动画,当读者要求减少运动时,组件会这样做. stateMachine: false 播放简单的时间表.

页面上的许多玩家

玩家分享了GPU上下文,但每个像素仍需要内存,手机会关闭一个使用过多的页面. 玩家在屏幕附近保持由玩家绑定的内存,而不是在页面上有多少人:

  • 屏幕外玩家停止绘图( O)pauseWhenOffscreen,默认为).
  • 玩家不止一个取景口,还可以释放出他们的GPU内存和画布的像素(releaseWhenOffscreen,默认为). 画布保持其布局框. 在屏幕的半个取景口内,玩家再次绘制出相同的帧后才能被看到. 钟不跑而去,所以 tick 和游戏状态 正是它留下他们.
  • resolution: "display" 封顶设备像素比 maxPixelRatio (默认) 2),在3x手机上所持有的像素还不到一半.
  • 在玩家移动到新上下文时,丢失的GPU上下文保留了画布上的最后帧. 失败到 onError (或 onPlayerError 在反应中,没有东西被抛出.
// A player that must reappear instantly, and a crisper one on 3x screens.
await createPlayer({ canvas, document, releaseWhenOffscreen: false, maxPixelRatio: 3 });

当文档资产 URL 无法直接获取时, 提供字体或图像加载器 。 使用一个 .clayzo 当您想要将资产与文档打包时, 将进行捆绑 。 选择 @clayzo/canvaskit-player 何时 checkCoverage() 报告一个不支持的构造或完全的参考委托的忠诚度大于转移大小.

版本与发布记录

@clayzo/webgl-player 共发布 21 个版本,首次发布于 2026/08/25;过去 12 个月发布了 21 个版本。

版本发布日期距今
0.3.21latest2026/11/055 天前
0.3.202026/10/2812 天前
0.3.192026/10/2416 天前
0.3.182026/10/2219 天前
0.3.172026/10/1724 天前
0.3.162026/10/081 个月前

关于 @clayzo/webgl-player 的常见问题

@clayzo/webgl-player 是什么?

轻量级Clayzo动画玩家. WebGL2,没有斯基亚,没有设置.

如何安装 @clayzo/webgl-player?

在项目目录运行 npm install @clayzo/webgl-player,或使用 pnpm add / yarn add / bun add。

@clayzo/webgl-player 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@clayzo/webgl-player 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@clayzo/webgl-player 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.13。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@clayzo/webgl-player 可以商用吗?

@clayzo/webgl-player 使用 SEE LICENSE IN LICENSE.md 许可。许可条款写在包内的独立文件中,请阅读该文件确认可否商用。以上为概括,不构成法律意见,请以许可原文为准。

@clayzo/webgl-player 的下载量有多少?

根据 npm 官方下载统计,@clayzo/webgl-player 在 2026/10/10 – 2026/11/08 这 30 天内被下载 17,400 次,日均约 580 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@clayzo/webgl-player 还在维护吗?

最新版本 0.3.21 发布于 2026/11/05(5 天前);至今共发布 21 个版本,其中过去 12 个月发布了 21 个;首次发布于 2026/08/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。