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

1 Если вы регистрируете приемник события в каком-либо объекте, убедитесь, что ваша

мй’ J. программа с течением времени также отменяет регистрацию этого приемника.

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

^ I Для изучения этого раздела требуется предварительное понимание механизма сборки??, 4 « мусора в языке ActionScript. Этот механизм рассматривается в гл. 14.

W:_

Регистрация приемника с использованием параметра использоватьСлабуюСсылку, для которого установлено значение true, не позволит этому приемнику оказаться «заброшенным» в списке приемников объекта, выполняющего регистрацию. Предположим, что объект (О) регистрирует приемник (П) для события (С) с использованием параметра использоватьСлабуюСсылку, для которого установлено значение true. Кроме того, предположим, что единственной ссылкой на П, которой обладает программа, является ссылка, хранящаяся в О. В обычной ситуации п будет храниться в О до тех пор, пока регистрация П для события С не будет отменена. Однако поскольку при регистрации П был использован параметр использоватьСлабуюСсылку со значением true и О хранит единственную оставшуюся ссылку на П в программе, П сразу же становится пригодным для сборки мусора. Впоследствии сборщик мусора по своему усмотрению может автоматически исключить П из списка приемников О и удалить его из памяти.

Для демонстрации работы параметра использоватьСлабуюСсылку вернемся к классу AnonymousListener. Как уже говорилось, класс AnonymousListener создает

анонимную функцию и регистрирует ее для событий MouseEvent. MOUSE_MOVE в экземпляре Stage клиентской среды выполнения Flash. Однако на этот раз при регистрации функции для событий MouseEvent. MOUSE_MOVE мы используем параметр использоватьСлабуюСсылку со значением true.

package { import Л ash. display.*; import flash. events.*;

public class AnonymousListener extends Sprite { public function AnonymousListener ( ) { // Добавляем анонимную функцию в список приемников экземпляра Stage stage. addEventListener(MouseEvent. M0USE_M0VE.

function (e:MouseEvent):void { trace(«mouse move»);

}.

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

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

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

Полезные ссылки
Случайные записи
  • 02.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.109
  • 02.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.102
  • 13.03.2011">Руководство по actionscript. часть 3, стр. 091
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.138
  • 17.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.5
  • 14.07.2011">Бюджетные ноутбуки Acer
  • 15.03.2011">Руководство по actionscript. часть 3, стр. 045
  • 25.02.2011">Руководство по actionscript. часть 6, стр. 087
  • 19.03.2011">Руководство по actionscript. часть 2, стр. 101
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.79
  • 20.03.2011">Руководство по actionscript. часть 2, стр. 059
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 064
  • 19.03.2011">Руководство по actionscript. часть 2, стр. 096
  • 04.08.2010">Современное выравнивание макета
  • 12.03.2011">Руководство по actionscript. часть 3, стр. 131
Опрос

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

View Results

Loading ... Loading ...