Как изменить координаты линии в Easel.js без очистки?

В Easel.js вы рисуете линию следующим образом:

lineE.graphics
    .moveTo(x1,y1)
    .setStrokeStyle(3)
    .beginStroke("black")
    .lineTo(x2,y2);

Но чтобы изменить его координаты, мне приходится все стирать:

lineE.graphics
    .clear() <-----------Why??????
    .moveTo(newX1,newY1)
    .setStrokeStyle(3)
    .beginStroke("black")
    .lineTo(newX2,newY2);

Как я могу сохранить другие свойства, такие как цвет обводки, при изменении координат линии. Я рисую линию между движущимися объектами. Должен быть более элегантный способ.


person Cristian Garcia    schedule 30.04.2014    source источник


Ответы (1)


Вот как работает EaselJS. Вы должны перерисовать форму, чтобы изменить ее. Это оказывает минимальное влияние на производительность, поскольку фигуру приходится рисовать заново при каждом обновлении рабочей области.

Лучший способ сделать это — использовать процедуру перерисовки, которая очищает и рисует форму при ее изменении.

Вы можете проверить метод Graphics.inject, который позволяет вводить переменные инструкции в путь к графике. На GitHub есть образец под названием «Graphics_inject.html».

person Lanny    schedule 30.04.2014
comment
Графика была переработана в EaselJS 0.7.0 для использования команд, которые позволяют сохранять и обновлять любую графическую команду в любое время. Больше не нужно перерисовывать! blog.createjs.com/new-command-approach-to-easeljs -графика - person Lanny; 19.12.2018