E (actionscript 3

Версії середовища виконання:

Задає режим кнопки даного спрайту. При значенні true цей спрайт поводиться як кнопка, тобто, запускає відображення курсора у вигляді руки, коли над ним проходить миша, і може отримувати подія click при натисканні клавіш Enter і "Пропуск", коли спрайт в фокусі. Можна придушити відображення курсора "рука", задавши властивості useHandCursor значення false. в цьому випадку буде відображатися покажчик.

Якщо властивість buttonMode використовується з класом MovieClip (подклассом класу Sprite), кнопка може отримати додаткові функції. Якщо включити кадри з підписами _up, _over і _down, програвач Flash Player передає автоматичні зміни стану (функція, подібна можливостям фрагментів роликів, які використовуються в якості кнопок, в попередніх версіях ActionScript). Ці автоматичні зміни стану недоступні для спрайтів, так як у них немає тимчасової шкали і, отже, кадрів для додавання підписів.

Реалізація
public function get buttonMode (): Boolean
public function set buttonMode (value: Boolean): void

У наступному прикладі створюється два спрайту, для одного з яких властивості buttonMode задається значення true. а для іншого - false. Коли додаток компілюється і запускається, обидва спрайту реагують на події миші, але тільки той, у якого buttonMode має значення true використовує курсор "рука" і включається в послідовність переходу за допомогою клавіші Tab.

Версії середовища виконання:

Визначає інший спрайт в якості області клацання для спрайту. Якщо властивість hitArea не існує або йому задано значення null або undefined. то в якості області клацання використовується сам спрайт. Значення властивості hitArea може бути посиланням на об'єкт Sprite.

Властивість hitArea можна змінити в будь-який момент; модифікований спрайт негайно починає використовувати нове поведінки області клацання. Спрайт, налаштований в якості області клацання не обов'язково повинен бути видимим; його графічна форма, залишаючись невидимою, все одно виявляється в якості області клацання.

Примітка. Необхідно задати значення false властивості mouseEnabled спрайту, налаштованого в якості області клацання. В іншому випадку кнопка спрайту може не працювати, так як спрайт, налаштований в якості області клацання, отримує події миші замість кнопки спрайту.

Реалізація
public function get hitArea (): Sprite
public function set hitArea (value: Sprite): void

У наступному прикладі створюється спрайт circle і спрайт square. Спрайт square є областю клацання hitArea для спрайту circle. Тому коли користувач натискає на спрайт square. спрайт circle відправляє подія click.

Версії середовища виконання:

Логічне значення, яке визначає, чи потрібно відображати покажчик "рука" при наведенні покажчика миші на спрайт, в якому властивість buttonMode має значення true. Властивість useHandCursor за замовчуванням має значення true. При useHandCursor в значенні true вказує рука, яка використовується для кнопок, з'являється при наведенні миші на спрайт-кнопку. Якщо ж useHandCursor має значення false. використовується покажчик "стрілка".

Властивість useHandCursor можна змінити в будь-який час; модифікований спрайт негайно приймає новий вид курсора.

Реалізація
public function get useHandCursor (): Boolean
public function set useHandCursor (value: Boolean): void

У наступному прикладі створюється два спрайту, і властивості buttonMode обох задається значення true. проте для одного з них властивість useHandCursor має значення true. а для іншого - false. При компіляції і запуску програми обидва спрайту поводяться, як кнопки (включені в послідовність переходу за допомогою клавіші Tab), але тільки курсор "рука" використовує тільки спрайт з властивістю useHandCursor в значенні true.

Відомості про конструктора

Дозволяє користувачеві перетягувати заданий спрайт (растровий графічний об'єкт, легко переміщуваний по екрану). Спрайт залишається перетягувати до явної зупинки через виклик методу Sprite.stopDrag () або до того, як інший спрайт стане перетягувати. Одночасно можна перетягувати тільки один спрайт.

Тривимірні екранні об'єкти управляються мишею, а метод Sprite.startDrag () дозволяє перемістити об'єкт в тривимірній площині, визначеної екранним об'єктом. Або, якщо екранний об'єкт є двовимірним об'єктом і дочірнім елементом тривимірного об'єкту, двовимірний об'єкт переміщається в тривимірній площині, визначеної тривимірним батьківським об'єктом.

lockCenter: Boolean (default = false) - Визначає, чи блокується перетаскується спрайт по центру положення миші (true) або по точці, на якій вперше клацнув мишею користувач (false).

bounds: Rectangle (default = null) - Значення щодо координат батьківського об'єкта Sprite, що задає для нього закріплений прямокутник.

У наступному прикладі створюється спрайт circle і два спрайту target. Метод startDrag () викликається для спрайту circle. коли користувач поміщає курсор на спрайт і натискає кнопку миші, а метод stopDrag () викликається, коли користувач відпускає кнопку миші. Це дозволяє користувачеві перетягнути спрайт. Коли кнопка миші відпускається, викликається метод mouseRelease (). відслідковує ім'я об'єкта dropTarget - того, до якого користувач перетягнув спрайт circle.

Завершує метод startDrag (). Спрайт, зроблений перетягувати за допомогою методу startDrag (). залишається таким до додавання методу stopDrag () або до того, як інший спрайт стане перетягувати. Одночасно можна перетягувати тільки один спрайт.

У наступному прикладі створюється спрайт circle і два спрайту target. Метод startDrag () викликається для спрайту circle. коли користувач поміщає курсор на спрайт і натискає кнопку миші, а метод stopDrag () викликається, коли користувач відпускає кнопку миші. Це дозволяє користувачеві перетягнути спрайт. Коли кнопка миші відпускається, викликається метод mouseRelease (). відслідковує ім'я об'єкта dropTarget - того, до якого користувач перетягнув спрайт circle.

У наступному прикладі клас SpriteExample використовується для відображення оранжевого квадрата в робочій області, і при кожному натисканні або перетягуванні квадрата користувачем відправляється подія. Це можна зробити, виконавши наступні дії.
  1. Оголосіть властивість size (100 x 100 пікселів) і колір фону (помаранчевий) для подальшого використання при малюванні квадрата.
  2. Після цього конструктор створює новий об'єкт Sprite child і використовує його для додавання двох Прослуховувач подій і пов'язаних з ними методів: mouseDownHandler () і mouseUpHandler ().
  3. Потім об'єкт Sprite child передається методу draw (). який малює помаранчевий квадрат.
  4. Після цього дочірній об'єкт поміщається в список відображення через виклик методу addChild ().
  5. Прослуховувачі подій працюють таким чином.
    • mouseDownHandler (). коли користувач клацає об'єкт Sprite, цей метод додає прослуховувач події mouseMove, метод mouseMoveHandler (). обробляє переміщення миші. Потім викликається метод startDrag (). дозволяє перетягувати об'єкт Sprite.
    • mouseUpHandler (). коли кнопка миші відпускається, прослуховувач події mouseMove видаляється і викликається метод stopDrag (). фіксуючий помаранчевий квадрат на місці.
    • mouseMoveHandler. поки утримується ліва кнопка миші, цей метод наказує програвача безперервно перемальовувати помаранчевий квадрат.

Примітка. Кожен метод Прослуховувач подій оголошує локальну змінну sprite. яка призначається властивості target події.

Схожі статті