Руководство по actionscript. часть 4, стр. 135
Листинг 24.2. Анимация объекта TextField по горизонтали до координаты 300 по оси X
package { import flash. display.*; import flash. events.*; import flash. text.*;
public class TextAnimation extends Sprite { private var t:TextField;
public function TextAnimation ( ) { // Создаем объект TextField t = new TextField( ); t. text = «Hello»;
t. autoSize = TextFieldAutoSize. LEFT; addChild(t);
// Регистрируем функцию moveTextRight( ) для получения уведомлений // о возникновении события Event. ENTER_FRAME addEventLi stener(Event. ENTER_FRAME. moveTextRi ght);
}
public function moveTextRight (e:Event):void { if (t. x <= 300) { t.x += 10; if (t.x > 300) { t. x = 300;
}
} else {
// Прекращаем получать уведомления о возникновении события // Event. ENTERFRAME
removeEventLi stener(Event. ENTER_FRAME. moveTextRi ght);
}
}
}
}
Обратите внимание, что в листинге 24.2 анимация одного объекта (TextField) осуществляется под управлением другого объекта (класса TextAnimation). Структура, в которой «один объект управляет анимацией другого объекта», является типичной для приложений с централизованным управлением анимацией. В подобных приложениях один класс выступает в роли режиссера для всех анимаций в приложении, регистрируя единственный метод для уведомлений о возникновении события Event. ENTER_FRAME и вызывая процедуры для создания анимации над всеми подчиняющимися объектами. В отличие от этого, в приложении с децентрализованным управлением анимацией отдельные классы управляют своей собственной анимацией самостоятельно, определяя свои собственные методы-приемники события Event. ENTER_FRAME. Для сравнения в листинге 24.3 показан подкласс TextTo300 класса TextField. Здесь, как в предыдущем примере, объект перемещается в точку с координатой 300 по оси X, но делает это самостоятельно. Обратите внимание, что класс TextTo300
определяет методы start ( ) и stop ( ), которые могут быть использованы для воспроизведения и остановки анимации.