改变形状的笔触颜色 - EaselJS

时间:2016-11-24 06:22:24

标签: javascript html5-canvas createjs easeljs

我想更改一行的线条颜色(点击按下),如下所示:

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

我尝试了图形的“命令”属性(currentLine.graphics.command),如下所述:http://createjs.com/docs/easeljs/classes/Graphics.html

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

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

1 个答案:

答案 0 :(得分:2)

您提供的小提琴使用了2013年的旧版CreateJS,它不支持Graphics命令(命令是在2014年12月发布的0.8.0版本中添加的)。我已经用最新的(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才能使一行工作。

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

干杯,