Мой вопрос: как мне перерисовать фигуру, используя только код?
Краткий комментарий к самой задаче. У меня есть EventListener, который захватывает клики на сцене и изменения размера сцены. Оба выполняют одну и ту же функцию - redrawEvents(evt:Event)
. Этап содержит ряд блоков, которые представляют определенные события. На каждом перерисовке эти блоки переставляются, а также рисуются линии (которые представляют связи между событиями).
Я нашел способ изменить положение всех блоков, но застрял на перерисовывающихся линиях.
Я использую одну фигуру для удержания всех линий, потому что линии, в отличие от блоков, не являются интерактивными. Поскольку весь смысл приложения заключается в создании наборов взаимосвязанных событий, мне приходится изменять эту форму каждый раз, когда создается новый блок, который также вызывает функцию перерисовки.
Вот код, который я использую для изменения формы
stage.addEventListener(MouseEvent.CLICK,redrawEvents);
function redrawEvents (evt:Event) {
var lines:Shape = new Shape();
lines.graphics.lineStyle(2, 0xFFFFFF, .75);
lines.graphics.clear();
for (var k:int = 0; k < connections.length; k++){
lines.graphics.moveTo(eventList[connections[k][0]].x + 50, eventList[connections[k][0]].y + 50);
lines.graphics.lineTo(eventList[connections[k][1]].x + 50, eventList[connections[k][1]].y + 50);
}
addChild(lines);
}
Однако, когда форма изменена, она все равно оставляет «старые версии» себя на экране, и я этого не хочу. Я пытался создавать и удалять экземпляры, преобразования типов вариаций, но все же это не решило проблему.
Заранее спасибо