是否可以使用kineticjs编辑恢复的原始形状?
在某种意义上编辑重新调整尺寸并销毁恢复的形状。 我正在使用以下kineticjs文件 动能v5.0.1.js 动能v5.0.1.min.js
如果可能的方法帮助我找到解决方案。
先谢谢。
答案 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)
id
属性(您也可以使用name
属性,请参阅文档以获取更多信息)到您要编辑的每个节点。恢复阶段后,您可以按ID
找到节点var node = stage.find('#circle')[0];
然后您可以编辑节点。
答案 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();
});
}
}
}
});
}