2015-11-05 31 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