Удаление формы с помощью кода - PullRequest
3 голосов
/ 18 ноября 2009

Довольно простой вопрос, но он все еще немного смущает меня.

У меня есть объект (строка меню навигации), для которого я хочу изменить цвета с помощью кода, поэтому в функции updateColor я получаю границы объекта (который представляет собой фигуру для рисования, содержащуюся в мувиклипе) и перерисовать новую фигуру поверх него новым цветом, но я заметил, что последняя фигура все еще существует за этой перерисовкой.

Я пытался использовать obj.graphics.clear(); до перерисовки, но это не избавило от первоначальной формы. Есть ли другая команда, которую я пропускаю?

Ответы [ 2 ]

1 голос
/ 18 ноября 2009

Если вы не нарисовали объект, который хотите удалить внутри того же графического объекта, очистка не будет работать. Вам необходимо удалить DisplayObject.

В зависимости от количества детей, которых вы можете сделать:

obj.removeChildAt(0);

При этом также удаляются видеоклипы / кнопки, которые вы поместили на сцену вручную. Если у вас есть ссылка на DisplayObject, который вы хотите удалить, вы можете просто сделать

obj.removeChild(backgroundClip);

Обратите внимание, что вы также можете напрямую изменить цвет объекта DisplayObject:

import flash.geom.ColorTransform;
...
public var test:MovieClip; //instance on stage
...

var cf:ColorTransform = test.transform.colorTransform;
cf.color = 0xff0000;
test.transform.colorTransform =  cf;
0 голосов
/ 02 декабря 2009
while(this.numChildren)
{
   this.removeChildAt(0);
}

Очистит дочерний объект в этом мувиклипе, если он слишком много очищается, поместите чертеж формы в подклип и очистите его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...