跳到主要内容

从 JSON 加载 HTML5 Canvas 舞台教程

要使用 Konva 加载原来包含图像和事件绑定的复杂舞台, 需要使用 Konva.Node.create() 创建舞台节点,然后配合选择器使用 find() 方法 设置图像和事件处理程序。 图像和事件处理程序无法序列化,因此必须手动设置。

这些方法适用于小型应用。对于更复杂的情况,请参阅最佳实践

import Konva from 'konva';

// JSON string from a previous save
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"}]}]}';

// create node using json string
const stage = Konva.Node.create(json, 'container');

// get reference to the hexagon
const hexagon = stage.findOne('RegularPolygon');

// bind events
hexagon.on('click', () => {
  hexagon.fill(Konva.Util.getRandomColor());
});