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

Package { import flash. display.*; import flash. events.*;

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

function (e:MouseEvent):void {

trace(«mouse move»); }):

}

}

}

В предыдущем коде созданная анонимная функция окажется навсегда «заброшенной» в списке приемников экземпляра Stage. Программа не сможет отменить регистрацию анонимной функции, поскольку она не имеет ссылки на нее.

«Заброшенные» приемники представляют собой потенциальный источник существенного расходования памяти и могут привести к другим побочным эффектам в программах на языке ActionScript.

Рассмотрим пример, демонстрирующий потенциальные проблемы, которые могут возникнуть из-за «заброшенных» приемников, и способы их решения.

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

не хотят быть пойманными и всячески стараются улететь от указателя мыши. Основным классом приложения является ButterflyGame. Каждая бабочка представляется экземпляром класса Butterfly. Для управления перемещением бабочек в игре используется основной объект Timer, который генерирует событие TimerEvent. TIMER каждые 25 мс. Каждый объект класса Butterfly регистрирует приемник в основном объекте Timer и вычисляет свое новое местоположение всякий раз, когда возникает событие TimerEvent. TIMER.

Рассмотрим код класса Butterfly:

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

public class Butterfly extends Sprite { // Каждый объект Butterfly получает ссылку на основной таймер // через параметр конструктора gameTimer public function Butterfly (gameTimer:Timer) { gameTimer. addEventListener(TimerEvent. TIMER. timerListener);

}

private function timerListener (e:TimerEvent):void { traceC’Calculating new butterfly position…»); // Вычисление нового местоположения бабочки (код не приводится)

}

}

}

Рассмотрим код класса ButterflyGame, который значительно упрощен, чтобы акцентировать ваше внимание на коде, отвечающем за создание и удаление бабочки. В этой версии кода игра содержит только одну бабочку.

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

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

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

Полезные ссылки
Случайные записи
  • 24.02.2011">Руководство по actionscript. часть 7, стр. 012
  • 05.10.2010">Выделение изображений со сложными краями в Photoshop
  • 22.07.2011">Ноутбук Acer Aspire 5583WXMi
  • 08.03.2011">Руководство по actionscript. часть 4, стр. 082
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.9
  • 04.03.2011">Руководство по actionscript. часть 5, стр. 050
  • 04.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.32
  • 03.03.2011">Руководство по actionscript. часть 5, стр. 069
  • 10.03.2011">Руководство по actionscript. часть 4, стр. 027
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 003
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.102
  • 12.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.116
  • 05.03.2011">Руководство по actionscript. часть 5, стр. 019
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 101
  • 13.03.2011">Руководство по actionscript. часть 3, стр. 106
Опрос

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

View Results

Loading ... Loading ...