2015-11-05 30 views
0

我有一个绘图画布(基于EaselJS CurveTo example),当我在mouseup上注入一个新的颜色到正在呈现给画布的形状中时。我也想不使用过滤器。将新笔画颜色注入到一个形状中

BIN:https://jsbin.com/qejesuvovu/1/edit?html,output

我用来直接注射自定义填充/笔画成的形状的图形,但在此已停止工作EaselJS的更高版本。

marker.graphics._dirty = true; 
marker.graphics._fill = new createjs.Graphics.Fill('blue'); 
marker.graphics._stroke = new createjs.Graphics.Stroke('blue'); 

在飞行中用单笔画颜色更改形状颜色的建议方法是什么?

UPDATE:

寻找到这之后,还事实证明,我需要能够维持的能力克隆的形状,也为独立改变颜色保护功能。

BIN:https://jsbin.com/gorasizuho/edit?html,output

回答

2

在0.7.0版本中,图形被重新设计,以使用 “命令”。用于绘制的API没有什么不同(除去旧的appendInstruction API),但是您可以随时修改个别命令的属性,并且在更新阶段时它们会被反映出来。

var shape = new createjs.Shape(); 
shape.graphics.setStrokeStyle(3); 
var strokeCommand = shape.graphics.beginStroke("#f00").command; 
shape.graphics.drawRect(0,0,100,100); 

您可以修改任何命令的属性:

strokeCommand.style = "#00f"; 

您可以在图形文档查看命令的完整列表。 http://createjs.com/docs/easeljs/classes/Graphics.html#property_command - 每个命令都有单独的文档:http://createjs.com/docs/easeljs/classes/Graphics.Stroke.html

下面是使用命令来修改这两个行程划线偏移为例,drawRect中的坐标:http://jsfiddle.net/lannymcnie/gg8sv4cq/

你可以在这里阅读更多:http://blog.createjs.com/new-command-approach-to-easeljs-graphics/

+0

我刚添加了对我的问题的更新。我还需要能够克隆形状,同时独立保留改变笔画颜色的能力。有没有办法处理? – Josh

+0

这目前不可能。克隆形状时(使用'true'进行递归克隆),图形被克隆,但它们仍包含对相同指令的引用。 – Lanny

+0

嗯,听起来像我唯一的选择给予克隆形状将循环指示,并根据命令类型决定需要改变什么。 – Josh