Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_Кнопки_9312.doc
Скачиваний:
0
Добавлен:
15.08.2019
Размер:
83.46 Кб
Скачать

Создание простых кнопок

Класс SimpleButton обеспечивает пользователю возможность взаимодействовать с отображаемым объектом с помощью мыши, а разработчику описывать это взаимодействие через различные состояния кнопки. Возможные состояния кнопки доступны как свойства класса SimpleButton:

1) upState (кнопка не нажата)

Отображаемый объект для стандартного состояния кнопки («не нажата»). В этом состоянии кнопка находится, когда курсор мыши не над ней.

2) overState (мышь над кнопкой)

Отображаемый объект, определяющий, как выглядит кнопка, когда по ней проводят курсором мыши. Когда курсор покидает область кнопки, она возвращается в состояние «не нажата».

3) downState (кнопка нажата)

Отображаемый объект, предназначенный для представления кнопки, когда она «нажата» (или по ней щелкнули). Кнопка переходит из состояния «мышь над кнопкой» в состояние «нажата», когда пользователь нажимает левую кнопку мыши.

4) hitTestState (активная зона)

Отображаемый объект, определяющий границы кнопки. Кнопка, в активную зону которой попадает курсор мыши, переходит в состояние «мышь над кнопкой». Обычно для состояния hitTestState задан тот же отображаемый объект, что и для upState. Фактически, hitTestState никогда не отображается на экране, это состояние нужно только для отслеживания движений мыши.

Состояние мыши обрабатывается классом SimpleButton и основывается на перемещениях мыши. Нельзя управлять внутренней настройкой состояния кнопки (не нажата, нажата или мышь над кнопкой), можно только задать отображаемый объект, который будет отражать то или иное состояние.

Пример 1. Создается экземпляр класса SimpleButton и с помощью четырех свойств описываются состояния кнопки. Каждому свойству состояния кнопки должен задается экземпляр класса DisplayObject. Поэтому задействуется вспомогательный метод createCircle() для создания кругов разных цветов, применяемых в различных состояниях:

package {

import flash.display.*;

import flash.events.*;

public class Example1 extends Sprite

{

public function Example1()

{

// Создаем кнопку и задаем ее местоположение

var button1:SimpleButton = new SimpleButton();

button1.x = 20;

button1.y = 20;

// Создаем разные состояния кнопки

// Используя вспомогательный метод,

// создаем круги разных цветов

button1.upState = createCircle(0x00FF00, 15);

button1.overState = createCircle(0xFFFFFF, 16);

button1.downState = createCircle(0xCCCCCC, 15);

button1.hitTestState = button1.upState;

// Добавляем слушатель события click, чтобы знать,

// когда пользователь щелкает кнопку мыши

button1.addEventListener(MouseEvent.CLICK, fClick);

// Наконец, добавляем кнопку в список отображения

addChild(button1);

}

// Вспомогательная функция для создания круга

// заданного цвета и радиуса

private function createCircle(color:uint, radius:Number):Shape

{

var circle:Shape = new Shape();

circle.graphics.lineStyle(1, 0x000000);

circle.graphics.beginFill(color);

circle.graphics.drawCircle(0, 0, radius);

circle.graphics.endFill();

return circle;

}

// Обработчик события, вызываемый при нажатии кнопки

private function fClick(event:MouseEvent):void

{

button1.x += 20;

button1.y += 20;

}

}

}

Пример 2. То же что пример 1, только отображение кнопки осуществляется с помощью объектов-наследников класса MovieClip из библиотеки.

package {