2016-11-24 131 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