Руководство по actionscript. часть 3, стр. 130

Вы сможете легко разобраться с поведением метода setChildlndex ( ), если представите детей объекта DisplayObjectContainer в виде колоды карт, как уже говорилось ранее. Если вы перемещаете нижнюю карту колоды вверх, остальные карты смещаются вниз (то есть карта, которая находилась поверх нижней карты, сама становится новой нижней картой). Если вы перемещаете верхнюю карту колоды вниз, остальные карты смещаются вверх (то есть карта, которая была нижней, теперь будет находиться поверх новой нижней карты).

Для удаления объекта из контейнера объектов отображения используется метод экземпляра removeChild ( ) класса DisplayOb j ectContainer, который принимает следующий вид:

контейнер. removeChi16(существующийРебенок)

Здесь контейнер — это контейнер, который в настоящий момент содержит объект сущее твующийРебенок. Например, чтобы удалить треугольник из экземпляра класса GreetingApp, мы бы использовали следующий код:

removeChild(triangle):

В качестве альтернативы мы можем удалить ребенка, используя его глубину, с помощью метода removeChildAt ( ), который принимает следующий вид:

контейнер. removeChi1dAt(глубина)

Рис. 20.10. Перемещение прямоугольника вниз

Рис. 20.11. Треугольник перемещен вперед

Удаление элементов из контейнеров

После выполнения метода removeChi Id ( ) или removeChi IdAt ( ) переменной parent удаленного объекта присваивается значение null, поскольку удаленный ребенок больше не имеет контейнера. Если удаленный ребенок находился в списке отображения перед вызовом метода removeChi Id ( ) или removeChi IdAt ( ), он удаляется из этого списка. Если удаленный ребенок отображался на экране перед вызовом метода removeChild ( ) или removeChildAt ( ), он также удаляется с экрана. Если удаленный ребенок является объектом DisplayOb j ectContainer со своими детьми, его дети будут также удалены с экрана.

Удаление элементов из памяти

Важно отметить, что методы removeChild ( ) и removeChildAt ( ), рассмотренные в предыдущем разделе, не обязательно приводят к уничтожению удаленного объекта в памяти; они только удаляют объект из иерархии отображения родительского объекта DisplayObjectContainer. Если на удаленный объект ссылается переменная или элемент массива, то этот объект продолжает существовать и может быть в дальнейшем заново добавлен в другой контейнер. Например, рассмотрим следующий код, который создает объект Shape, присваивает его переменной rect и затем добавляет этот объект в иерархию отображения объекта parent:

var rect:Shape = new Shape( ): rect. graphi cs.1i neStyle(1): rect. graphi cs. begi nFi11(OxOOOOFF, 1); rect. graphics. drawRect(0, 0. 75, 50): parent. addChild(rect):

Если теперь мы воспользуемся методом removeChild ( ), чтобы удалить объект Shape из объекта parent, переменная rect будет по-прежнему ссылаться на объект Shape:

parent. removeChi1d(rect):

trace(rect): // Выводит: [object Shape]

До тех пор пока переменная rect существует, мы можем использовать ее для повторного добавления объекта Shape в иерархию отображения объекта parent, как показано в следующем коде:

parent. addChild(rect);

Чтобы полностью удалить отображаемый объект из программы, мы должны удалить не только его с экрана с помощью метода removeChild ( ), но и все ссылки на него. Чтобы удалить все ссылки на объект, мы должны вручную удалить его из всех массивов, содержащих этот объект, и присвоить значение nu 11 (или любое другое значение) всем переменным, которые ссылаются на него. Как только все ссылки на объект будут удалены, он становится доступным для сборки мусора и в определенный момент будет удален из памяти сборщиком мусора языка ActionScript.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 01.03.2011">Руководство по actionscript. часть 5, стр. 112
  • 26.02.2011">Руководство по actionscript. часть 6, стр. 067
  • 03.03.2011">Руководство по actionscript. часть 5, стр. 075
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 059
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.84
  • 03.02.2010">Создание графиков и диаграмм на JavaScript
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.35
  • 16.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.30
  • 23.02.2011">Руководство по actionscript. часть 7, стр. 026
  • 13.03.2011">Руководство по actionscript. часть 3, стр. 100
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 137
  • 11.03.2011">Руководство по actionscript. часть 3, стр. 147
  • 25.02.2011">Руководство по actionscript. часть 6, стр. 100
  • 16.03.2011">Руководство по actionscript. часть 3, стр. 008
  • 22.07.2011">Интернет-магазины решат проблему с отсутствием качественной одежды
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...