|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Nov 2013
Сообщений: 38
|
Функция очистки сцены от нарисованной графики.
Предложите пожалуста функцию, которая будет очищать все графичесские элементы на сцене.
|
|
|||||
Если графические элементы сделаны с помощью встроенных средств рисования, то -
А если на сцене объекты (спрайты, мувиклипы, шейпы), то - |
|
|||||
Регистрация: Nov 2013
Сообщений: 38
|
Первый вариант я так понимаю, у меня нарисованы линии с помощью lineTO.
Я прицепил this.graphics.clear(); к кнопке, но по нажатию на кнопку линии не удаляются. Где я наложал?( |
|
|||||
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
значит линии нарисованы не в this , а в каком то другом объекте.
найдите тот объект в который вы рисуете линии допустим и именно в нем удаляйте если же вы все-таки рисуете линии в this, тогда смотрите , может у вас при удалении потом опять перерисовывается все заного |
|
|||||
Регистрация: Nov 2013
Сообщений: 38
|
Цитата:
Проблематично тогда получается удалить их. |
|
|||||
Регистрация: Nov 2013
Сообщений: 38
|
Я ещё не совсем понял, какой кусок кода именно перерисовывает линии.
Вроде как либо этот, он вызывается при просто рисовании линий. public function update(): void { graphics.clear(); graphics.lineStyle(2, 0x221322); graphics.moveTo(_point1.parent.x + _point1.x, _point1.parent.y + _point1.y); graphics.lineTo(_point1.parent.x + _point1.x, ((_point2.parent.y + _point2.y) + (_point1.parent.y + _point1.y)) / 2); graphics.lineTo(_point2.parent.x + _point2.x, ((_point2.parent.y + _point2.y) + (_point1.parent.y + _point1.y)) / 2); graphics.lineTo(_point2.parent.x + _point2.x, _point2.parent.y + _point2.y); } |
|
|||||
По идее, вам нужно отчистить графику тут
p.s. но не факт. |
|
|||||
Регистрация: Nov 2013
Сообщений: 38
|
Нет вы не поняли, я хочу по нажатию на кнопку очищать сцену от всей нарисованной графики.
|
|
|||||
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
btn.addEventListener(MouseEvent.CLICK,removeLines); public function removeLines(e:MouseEvent = null):void{ var l: int = _lines.length; for (var i: int = 0; i < l; i++) { _lines[i].graphics.clear(); // но лучше в классе линии сделать еще одну функцию clear - например } // ну и дальше пишете что еще вам нужно удалить } public function redrawLines() { removeLines(); // <------------- var l: int = _lines.length; for (var i: int = 0; i < l; i++) { _lines[i].update(); } } и вообще я не понял сути вашего кода, вы перетаскиваете родителя, и пересчитываете координаты всех линий внутри... но эти линии будут переноситься автоматически, если они внутри контейнера (который тащим) |
Часовой пояс GMT +4, время: 12:57. |
|
« Предыдущая тема | Следующая тема » |
|
|