Skip to main content

从 JSON 加载 HTML5 Canvas 阶段教程

要使用 Konva 加载一个最初包含图像和事件绑定的复杂舞台,我们需要使用 Konva.Node.create() 创建一个舞台节点,然后借助选择器使用 find() 方法设置图像和事件处理程序。图像和事件处理程序必须手动设置,因为它们不可序列化。

该方法适用于小型应用。对于更复杂的情况,请查看 最佳实践

import Konva from 'konva';

// 来自先前保存的 JSON 字符串
const json = '{"attrs":{"width":578,"height":200},"className":"Stage","children":[{"attrs":{},"className":"Layer","children":[{"attrs":{"x":100,"y":100,"sides":6,"radius":70,"fill":"red","stroke":"black","strokeWidth":4},"className":"RegularPolygon"}]}]}';

// 使用 JSON 字符串创建节点
const stage = Konva.Node.create(json, 'container');

// 获取六边形的引用
const hexagon = stage.findOne('RegularPolygon');

// 绑定事件
hexagon.on('click', () => {
  hexagon.fill(Konva.Util.getRandomColor());
});