Руководство по actionscript. часть 3, стр. 132
Чтобы продемонстрировать эту методику, в листинге 20.2 представлено простое приложение WordHighlighter, в котором объект Shape (присвоенный переменной bgRect) перемещается между двумя экземплярами класса Sprite (присвоенными переменным wordl и word2). Экземпляры класса Sprite содержат экземпляры класса TextField (присвоенные переменным textl и text2), которые отображают слова Продукты и Услуги. Объект Shape — это прямоугольник с закругленными углами, который служит для выделения слова, находящегося в настоящий момент под указателем мыши, как показано на рис. 20.12. Когда указатель мыши находится над одним из экземпляров класса TextField, объект Shape перемещается в тот экземпляр класса Shape, который содержит данный объект TextField.
[ Продукты ] Услуги
Рис. 20.12. Перемещение объекта между контейнерами
Мы еще не рассматривали методики обработки событий мыши, которые применяются в листинге 20.2. Информацию об обработке событий ввода можно найти в гл. 22.
Листинг 20.2. Перемещение объекта между контейнерами
package { import flash. display.*; import flash. text.*; import flash. events.*;
public class WordHighlighter extends Sprite { // Первое слово private var wordliSprite; private var textl:TextField;
// Второе слово
private var word2:Sprite;
private var text2:TextField;
// Выделяющая фигура private var bgRect:Shape;
public function WordHighlighter ( ) { // Создаем первый объект TextField и Sprite wordl = new Sprite( ); textl = new TextField( ); textl. text = «Products»; textl. selectable = false; textl. autoSize = TextFieldAutoSize. LEFT; wordl. addChild(textl)
textl. addEventLi stener(MouseEvent. M0USE_0VER, mouseOverLi stener);
// Создаем второй объект TextField и Sprite
word2 = new Sprite( );
text2 = new TextField( );
text2.text = «Services»;
text2.selectable = false;
text2.autoSize = TextFieldAutoSize. LEFT;
word2.x = 75;
word2.addChild(text2)
text2. addEventLi stener (MouseEvent. MOUSEJMR, mouseOverLi stener);
// Добавляем экземпляры класса Sprite в иерархию отображения // объекта WordHighlighter addChild(wordl); addChild(word2);
// Создаем объект Shape (прямоугольник с закругленными углами)
bgRect = new ShapeC );
bgRect. graphi cs.1i neStyle(1);
bgRect. graphi cs. begi nFi11(OxCCCCCC, 1);
bgRect. graphics. drawRoundRectC0. 0. 60. 15, 8);
}
// Вызывается при перемещении указателя мыши над текстовым полем, private function mouseOverListener (e:MouseEvent):void {
// Если родительский объект Sprite экземпляра объекта TextField
// не содержит выделяющую фигуру, перемещаем фигуру в этот объект.