Руководство по actionscript. часть 4, стр. 100
LEAVE реместился за пределы области отображения приложения MOUSE_ENTER отсутствует. Используйте событие MouseEvent. MOUSE_MOVE, чтобы определить, когда указатель мыши вновь появится в пределах области отображения Flash Player
Поближе познакомимся с четырьмя событиями, представленными в табл. 22.5.
События Event. ACTIVATE и Event. DEACTIVATE
События Event. ACTIVATE и Event. DEACTIVATE обычно применяются для разработки приложений, которые самостоятельно активизируются или деакти-визируются в ответ на получение или потерю фокуса операционной системы проигрывателем Flash Player. Например, в ответ на потерю фокуса проигрывателем приложение может заглушить все звуки, закрыть открытое меню или приостановить воспроизведение анимации.
В отличие от других событий ввода, с которыми мы познакомились в этой главе, события Event. ACTIVATE и Event. DEACTIVATE не имеют фазы захвата и фазы всплытия. Вместо этого события Event. ACTIVATE и Event. DEACTIVATE могут быть обработаны приемниками, зарегистрированными в любом экземпляре любого класса, унаследованного от класса EventDispatcher (примечание: не только классов, унаследованных от класса DisplayObject). Более того, когда функция-приемник для событий Event. ACTIVATE и Event. DEACTIVATE зарегистрирована в отображаемом объекте, она вызывается, даже когда данный объект не находится в списке отображения.
В листинге 22.18 демонстрируются основы использования событий Event. ACT IVATE и Event. DEACTIVATE — когда проигрыватель Flash Player получает системный фокус, приложение из листинга начинает воспроизведение анимации «вращающийся прямоугольник», а когда Flash Player теряет системный фокус, воспроизведение анимации останавливается (методики создания анимации будут рассмотрены в гл. 24).
Листинг 22.18. Реагирование на события Event. ACTIVATE и Event. DEACTIVATE
package { import flash. display.*; import flash. utils.*; import flash. events.*;
public class Spinner extends Sprite { private var timer:Timer; private var rect:Sprite;
public function Spinner ( ) { // Создаем изображение прямоугольника rect = new Sprite( ); rect. x = 200; rect. у = 200;
rect. graphi cs.1i neSty1e(1); rect. graphics. beginFi 11 (OxOOOOFF); rect. graphics. drawRect(0, 0, 150, 75); addChild(rect);
// Регистрируем приемник для получения уведомлений,
// когда приложение Flash Player
// получает или теряет системный фокус
addEventLi stener(Event. ACTIVATE, acti vateLi stener);
addEventLi stener(Event. DEACTIVATE, deacti vateLi stener);
// Создаем таймер,
// который будет использован для анимации timer = new Timer(50, О)-;
timer. addEventListener(TimerEvent. TIMER, timerListener);
}
// Вращает изображение прямоугольника private function timerListener (e:TimerEvent):void { rect. rotation += 10;
}
// Обрабатывает события Event. ACTIVATE
private function activateListener (e:Event):void {
// Начинаем вращение изображения прямоугольника
timer. start( );
}
// Обрабатывает события Event. DEACTIVATE
private function deactivateListener (e:Event):void {
// Останавливаем вращение изображения прямоугольника
timer. stop( );
Событие Event. RESIZE
Событие Event. RES IZE обычно используется при разработке приложений с «растягивающимся» содержимым, когда размеры элементов интерфейса изменяются автоматически для соответствия доступному пространству в области отображения проигрывателя Flash Player.