2014-03-24 51 views
0

我想在erase.js中移动一行我读这个问题的一些线程,但没有为我工作。问题是,我可以操纵一些属性,如标签位置,但不是行位置。 刚才我行的创建是:移动一个对象与Create.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

你能澄清你在做什么吗?也许简化示例,以便它可以在jsfiddle.net中运行? – Lanny

回答

1

我不知道我理解你在做什么,但这里是一个想法:

不能移动使用graphics.moveTo一条线 - 那就是定位为后续路径说明绘图API的指令。如果是line.graphics.lineTo(300,4000),它会从最后一条图形指令画出一条直线(在Shape的坐标系内)。

要移动形状,必须设置(在这种情况下myShapes[2].line

如果您发布更多的信息,我可以尝试,并帮助更多的形状实例的x和y位置。

+0

谢谢!为我工作 – MrMins