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

В листинге 23.4 продемонстрирован измененный класс Ellipse (изменения, как и раньше, выделены полужирным шрифтом). Обратите внимание, что метод

addedToStageListener ( ) вызывает метод stage. invalidate ( ), гарантируя, что любые изменения, внесенные в объект Ellipse за то время, пока он не находился в списке отображения, будут визуализированы при добавлении этого объекта в список отображения.

*»4

В листинге 23.4 применяются пользовательские события StageDetector. ADDED_TO_STAGE и StageDetector. REMOVED_FROM_STAGE, диспетчеризация которых осуществляется поль-3?-’ зовательским классом StageDetector. Детальное рассмотрение данного класса можно найти в подразд. «События ADDED_TO_STAGE и REMOVED_FROM_STAGE» разд. «События контейнеров» гл. 20.

Листинг 23.4. Измененный класс Ellipse, часть 2

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

public class Ellipselnterim extends Shape { private var w:Number; private var h:Number;

public function Ellipselnterim (width:Number, height:Number) { // Регистрируем приемники для получения уведомлений, // когда данный объект добавляется в список // отображения или удаляется из него var StageDetector-.StageDetector = new StageDetector (this); StageDetector. addEventLi stener(StageDetector. ADDEDJTJSTAGE,

addedToStageListener); StageDetector. addEventLi stener (StageDetector. REMOVEDFROMSTAGE,

removedFromStageListener);

w = width; h = height; if (stage!= null) { stage. invalidate( );

}

}

public function setWidth (newWidth:Number):void { w = newWidth; if (stage!= null) { stage. invalidate( );

}

}

public function getWidth ( ):Number { return w;

}

public function setHeight (newHeight:Number):void { h = newHeight;

if (stage!= null) { stage. invalidate( );

}

}

public function getHeight ( ):Number { return h;

}

// Приемник события вызывается при добавлении этой фигуры // в список отображения

private function addedToStageListener (e:Event):void { // Регистрируем приемник для получения уведомлений // об обновлениях экрана

stage. addEventListener(Event. RENDER, renderListener);

// Гарантируем, что любые изменения, внесенные в данный объект // за то время, пока он не отображался на экране, будут // визуализированы при его добавлении в список отображения, stage. invalidate( );

}

// Приемник события вызывается при удалении этой фигуры из списка // отображения

private function removedFromStageLi stener (e: Event) .-void { // Нет необходимости в получении событий // обновления экрана, когда данный объект // не находится в списке отображения stage. addEventListener(Event. RENDER, renderListener);

}

private function renderListener (e:Event):void { draw( );

}

private function draw ( ):void { graphics. clear( ); graphics. lineStyle(l); graphics. beginFill(OxFFFFFF, 1); graphics. drawEllipse(0. 0. w, h);

}

}

}

Класс Ellipse, представленный в листинге 23.4, теперь является полностью функциональным, однако в нем все еще остаются две существенные избыточности. Во-первых, метод addedToStageListener ( ) всегда вызывает метод stage. invalidate ( ), когда объект Ellipse добавляется в список отображения. В результате перерисовка фигуры происходит даже в тех случаях, когда в этом нет необходимости, поскольку за то время, пока эллипс не отображался на экране, данные концептуального эллипса не изменялись.

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

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

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

Полезные ссылки
Случайные записи
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.114
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.38
  • 12.03.2011">Руководство по actionscript. часть 3, стр. 139
  • 01.03.2011">Руководство по actionscript. часть 5, стр. 108
  • 09.03.2011">Руководство по actionscript. часть 4, стр. 052
  • 07.09.2011">Сим-карта sim4FLY — удобно и надежно
  • 01.03.2011">Руководство по actionscript. часть 5, стр. 126
  • 19.03.2011">Руководство по actionscript. часть 2, стр. 096
  • 22.03.2011">Руководство по actionscript. часть 2, стр. 002
  • 04.12.2012">Седьмой элемент
  • 13.03.2011">Руководство по actionscript. часть 3, стр. 098
  • 27.02.2011">Руководство по actionscript. часть 6, стр. 031
  • 13.03.2011">Руководство по actionscript. часть 3, стр. 093
  • 04.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.1
  • 23.02.2011">Руководство по actionscript. часть 7, стр. 034
Опрос

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

View Results

Loading ... Loading ...