2016-11-24 4 views
1

Я хочу, чтобы изменить цвет обводки линии (на клик печати) рисуется как:Изменить цвет обводки формы - 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

Но он не работал, потому что он возвращает «неопределенный». Любая помощь будет оценена по достоинству.

Fiddle: http://jsfiddle.net/86f7gz6b/19/

+0

Это работает. Может возникнуть проблема с вашими параметрами. См. Этот канал http://jsfiddle.net/86f7gz6b/1/ –

+0

@ShoaibKonnur Мой вопрос не был связан с «Как нарисовать линию» :) Я могу нарисовать линию успешно, но я хочу изменить ее цвет на щелчок мышью. Надеюсь, теперь вы получите мой вопрос :) – Khubaib

+0

В этом случае вы должны использовать взаимодействие с мышью http://www.createjs.com/tutorials/Mouse%20Interaction/, и вам придется перерисовать эту же строку. –

ответ

2

скрипку вы предоставили использует старую версию CreateJS с 2013 года, которые не имеют поддержки графических команд (команды были добавлены в версии 0.8.0, выпущенный в декабре 2014 года). Я обновил свою скрипку до последней версии (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 команда должна быть положите после startStroke, начиная с момента запуска или заполнения, сбросит команду пути, поэтому ваш пример не будет работать (у EaselJS должен быть начальный moveTo для того, чтобы одна строка работала.

Вот обновленная скрипка: http://jsfiddle.net/lannymcnie/86f7gz6b/21/

Cheers,

+0

Большое спасибо за то, что указал Ланни на ошибку. Я использовал старую версию easeljs (версия 0.7.1) в моем проекте, которая вызывала проблемы. Я обновил его до 0.8.2 и теперь его рабочий тон :) – Khubaib