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

Будьте осторожны при изменении порядка выполнения приемников событий. Программы, зависящие от порядка выполнения, предрасположены к ошибкам, поскольку приоритеты приемников событий являются непостоянными, усложняют поддержку кода и делают его более сложным для восприятия.

Приемники событий и управление памятью

В этой главе мы увидели, что событийная модель языка ActionScript основывается на приемнике (представляющем собой функцию или метод) и объекте, в котором регистрируется этот приемник. Каждый объект, регистрирующий приемник для определенного события, поддерживает связь с этим приемником, сохраняя ссылку на него во внутреннем массиве, который называется списком приемников. Например, в следующем коде (взятом из листинга 12.1) метод completeListener ( ) регистрируется в объекте urlLoader для событий Event. COMPLETE. В результате внутренний список приемников объекта ur lLoader получает ссылку на метод completeListener ( ).

package { import flash. display.*; import flash. net.*; import flash. events.*;

public class FileLoader extends Sprite { public function FileLoader ( ) { var urlLoader:URLLoader = new URLLoaderC );

// Регистрация приемника completeListener( )

url Loader. addEventLi stener(Event. COMPLETE, completeLi stener);

urlLoader.1oad(new URLRequestC»someFi1e. txt»));

private function completeListener (e:Event):void { traceC’Load complete»);

}

}

}

По умолчанию любой объект, получивший ссылку на приемник, хранит ее до тех пор, пока регистрация данного приемника не будет явно отменена методом removeEventListener ( ). Более того, объект продолжает хранить полученную ссылку на приемник даже тогда, когда в программе не остается других ссылок на этот приемник. Это демонстрирует следующий простой класс AnonymousLi stener. Он создает анонимную функцию и регистрирует ее для событий MouseEvent. MOUSE_EVENT в экземпляре Stage клиентской среды выполнения Flash. Хотя класс AnonymousLi stener не имеет ссылок на эту анонимную функцию, она продолжает храниться в экземпляре Stage и вызывается каждый раз при возникновении события MouseEvent. MOUSE MOVE, даже спустя долгое время после завершения метода конструктора класса AnonymousListener.

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

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

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

Полезные ссылки
Случайные записи
  • 12.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.116
  • 17.03.2011">Руководство по actionscript. часть 2, стр. 149
  • 07.03.2011">Руководство по actionscript. часть 4, стр. 116
  • 10.03.2011">Руководство по actionscript. часть 4, стр. 028
  • 17.03.2011">Руководство по actionscript. часть 2, стр. 151
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.50
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.58
  • 17.08.2010">Страничка со списком услуг
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 091
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.41
  • 17.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.110
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 082
  • 04.09.2011">MapleSim 5 – инструмент, позволяющий физически моделировать объекты
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 108
  • 15.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.59
Опрос

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

View Results

Loading ... Loading ...