2016-11-24 95 views
1

我想换行(上Click按键)的笔触颜色绘制:更改笔触颜色 - EaselJS

var currentLine = new createjs.Shape(); 
currentLine.graphics.moveTo(startX, startY).setStrokeStyle(4).beginStroke(tempLineColor).lineTo(target.x, target.y).endStroke(); 

我试过图形(currentLine.graphics的“命令”属性。这里提到的命令):http://createjs.com/docs/easeljs/classes/Graphics.html

但它没有工作,因为它会返回“未定义”。 任何帮助,将不胜感激。

小提琴:http://jsfiddle.net/86f7gz6b/19/

+0

它的工作。您的参数可能有问题。看到这个feedle http://jsfiddle.net/86f7gz6b/1/ –

+0

@ShoaibKonnur我的问题是不相关的“怎样画一条线” :) 我能够成功地画一条线,但我想在改变其颜色鼠标点击。希望你现在得到我的问题:) – Khubaib

+0

在这种情况下,你必须使用鼠标交互http://www.createjs.com/tutorials/Mouse%20Interaction/,你必须重画同一行。 –

回答

2

您提供的小提琴使用从2013年的旧版本CreateJS的,它不具有支持图形命令(在0.8.0版本中添加的命令,于2014年12月发布)。我用最新的(0.8.2)更新了你的小提琴,但是请注意,JSFiddle也有0.8.1(CreateJS 2015.05.21的一部分),这也可以工作。

命令的方法很简单,只存储了最后graphics.command,后来修改其样式值。

shape.graphics.setStrokeStyle(4); 
var cmd = shape.graphics.beginStroke("red").command; // <- note the command 
shape.graphics.moveTo(0,0).lineTo(100,100); 
stage.update(); 
// Later 
cmd.style = "blue"; 
stage.update(); 

您也可以连锁的指令,并.command将返回的最后一个指令的命令:

// Gets the beginStroke command 
var cmd = shape.graphics.setStrokeStyle(4).graphics.beginStroke("red").command; 

有一件事我不得不改变,以使您的示例工作:初始moveTo命令必须是将放在后面beginStroke,因为开始笔画或填充会重置路径命令,所以你的例子不起作用(EaselJS必须有一个初始moveTo才能使单行lineTo工作。

这里是一个更新的小提琴:http://jsfiddle.net/lannymcnie/86f7gz6b/21/

干杯,

+0

非常感谢Lanny指出错误。我在我的项目中使用旧版的easeljs(版本0.7.1),这是造成麻烦的原因。我更新到0.8.2,现在它的工作正常:) – Khubaib