我试图在erase.js中移动一行我读了一些关于这个问题的帖子,但没有什么对我有用。问题是,我可以操纵一些属性,如标签位置,但不能操作线位置。 刚才创建我的专线是:
var result = {};
//Generation of the line
result.line = new createjs.Shape();
result.line.graphics.setStrokeStyle(3);
result.line.graphics.beginStroke("#000");
result.line.graphics.moveTo(o[0].__dragger.x + 24 , o[0].__dragger.y);
result.line.graphics.lineTo(o[1].__dragger.x - 24, o[1].__dragger.y);
result.line.graphics.endStroke();
//result.line.shadow = new createjs.Shadow("#000000", 5, 5, 10);
//Add the neighbours
result.neighbours = o;
//Add the label
result.label = new createjs.Text("line", "", "#000");
result.label.textAlign = "center";
result.label.y = 80;
result.label.x = 200;
//Add the dragger and extra properties
result.type = "connector";
result.__dragger = new createjs.Container();
if(id == "")
result.__dragger.id = "L" + guid();
result.__dragger.addChild(result.line, result.label);
stage.addChild(result.__dragger, result.line);
result.__dragger.on("click",function(evt) {
Shape.create("square", [], "Assignament");
});
stage.addChild(result.__dragger);
stage.update();
myShapes.push(result);
如果我执行:
myShapes[2].label.y = 200;
myShapes[2].label.x = 300;
stage.addChild(myShapes[2].__dragger);
stage.update();
位置已更新,但如果我尝试使用:
myShapes[2].line.graphics.moveTo(300,4000)
stage.addChild(myShapes[2].__dragger);
stage.update();
对象未更新。有些想法??
答案 0 :(得分:1)
我不确定我明白你在做什么,但这是一个想法:
您无法使用graphics.moveTo
移动一行 - 这是为后续路径指令定位绘图API的指令。如果你去line.graphics.lineTo(300,4000)
,它会从最后一个图形指令到该坐标(在Shape的坐标系内)画一条线。
要移动Shape,您必须设置形状实例的x和y位置(在本例中为myShapes[2].line
)
如果您发布更多信息,我可以尝试更多帮助。