是否可以使用kineticjs编辑恢复的原始形状?

时间:2014-04-08 13:26:12

标签: kineticjs

是否可以使用kineticjs编辑恢复的原始形状?

在某种意义上编辑重新调整尺寸并销毁恢复的形状。 我正在使用以下kineticjs文件 动能v5.0.1.js 动能v5.0.1.min.js

如果可能的方法帮助我找到解决方案。

先谢谢。

3 个答案:

答案 0 :(得分:0)

是的,KineticJS原始形状即使在它们显示后也可轻松修改!

// change sizes on various primitive shapes

myCircle.radius(newRadius);

myRect.width(newWidth);

myImage.scale(.75,.75);

// be sure to redraw the layer so the changes are displayed

layer.draw();

答案 1 :(得分:0)

  1. 您必须在转换为JSON之前设置id属性(您也可以使用name属性,请参阅文档以获取更多信息)到您要编辑的每个节点。
  2. 恢复阶段后,您可以按ID

    找到节点
    var node = stage.find('#circle')[0];
    
  3. 然后您可以编辑节点。

答案 2 :(得分:0)

我以这种方式重新编辑了恢复的矩形和其他形状

var Rectanglenodes = stage.find('Rect');
for (var i = 0; i < Rectanglenodes.length; i++) {
var rect = Rectanglenodes[i];
rect.on("mousedown", function (e) {
var node = e.targetNode;
selectednode = e.targetNode;
selectednodecount = 1;
if (drawingObject == "delete") {
var parentnode = node.parent;
parentnode.destroy();
stage.draw();
}
else if (drawingObject == "clearAll") {
layerText.destroy();
layerLine.destroy();
layerCircle.destroy();
layerrect.destroy();
drawingObject = "";
}
else if (drawingObject == "select") {
select(node);
var children = node.parent.children;
var group = node.parent;
 for (i = 1; i < children.length; i++) {
var str = children[i].getId();
var n = str.length;
var anchorId = str.substring(0, (n - 1));
if (anchorId.toLowerCase().indexOf("rect") >= 0) {
children[i].on('dragmove', function () {
update(this, e);
console.log(this);
layerrect.draw();
});
children[i].on('mousedown touchstart', function () {
group.setDraggable(false);
this.moveToTop();
});
children[i].on('dragend', function () {
group.setDraggable(true);
layerrect.draw();
});
children[i].on('mouseover', function () {
var layer = this.getLayer();
document.body.style.cursor = 'pointer';
this.setStrokeWidth(4);
layerrect.draw();
});
children[i].on('mouseout', function () {
var layer = this.getLayer();
document.body.style.cursor = 'default';
this.strokeWidth(2);
layerrect.draw();
});
}
}
}
});
}