我在理解 Kinetic.Node.create(myJson, 'container') 函数的工作原理时遇到了问题。
我有一个简单的项目。生成一个 circleLayer 并添加一个圆。现在我可以通过 circleLayer.removeChildren(); 删除圆圈;但是当我将舞台保存到 JSON 并重新加载它时,对圆圈的引用丢失了……现在我不能再删除它了……这是我的代码。
有人有想法吗?
var myJson;
var stage;
var circleLayer;
var myWidth = 500;
var myHeigth = 350;
function createStagesAndLayer() {
stage = new Kinetic.Stage({
container: 'container',
width: myWidth,
height: myHeigth
});
circleLayer = new Kinetic.Layer();
stage.add(circleLayer);
}
function deleteCircle() {
circleLayer.removeChildren();
circleLayer.draw();
}
function saveData() {
myJson = null;
myJson = stage.toJSON();
}function loadData() {
if (myJson == null) {
alert("Keine Daten gefunden!!");
return;
}
// I need to remoce it...otherwise my drawing area will grow. But I think here somewhere is the problem
stage.remove(circleLayer);
stage = Kinetic.Node.create(myJson, 'container');
}
function generateCircle() {
var circle = new Kinetic.Circle({
x: stage.getWidth() / 2,
y: stage.getHeight() / 2,
radius: 30,
fill: 'red',
stroke: 'black',
strokeWidth: 2,
draggable: true
});
circleLayer.add(circle);
circleLayer.draw();
}