Проверка нажатия клавиши. Метод isDown()

Метод isDown() позволяет проверить, нажата ли определенная кнопка. В качестве параметра он принимает виртуальный код клавиши. Возвращается методом isDown() булева величина: true — клавиша нажата, false — она отпущена. Например:

this.onEnterFrame = function():Void {
// При удерживании в Output с каждым новым кадром будет отправляться
// сообщение
if (Key.isDown(Key.ENTER)) {
trace("Ввод нажат!");

На первый взгляд, метод isDown() может показаться избыточным. Например, зачем проверять с его помощью факт нажатия кнопки, если существуют методы getCode() и getAscii(). Действительно, метод isDown() применяется не очень часто. Однако у него есть уникальные особенности, позволяющие решать задачи, с которыми невозможно справиться, используя getCode() или gctAscii().

Наиболее значительное преимущество метода isDown() заключается в том, что он способен регистрировать одновременное нажатие нескольких клавиш. А это чрезвычайно важная возможность для разработки игр. Например, если управление движением персонажа осуществляется при помощи клавиш со стрелками, то одновременное нажатие кнопки перемещения по вертикали и кнопки сдвига в сторону должно приводить к смещению по диагонали.


Создать реализующий эту особенность код, используя метод isDown(), чрезвычайно просто.

Например:
// Создайте клип в виде небольшого кружка и назовите его ball
this.onEnterFrame = function():Void {
if (Key.isDown(Key.LEFT)) { // Смещение влево
ball._x -= 3;
if (Key.isDown(Key.RIGHT)) { // Смещение вправо
ball._x += 3;
if (Key.isDown(Key.UP)) { // Смещение вверх
ball._y -= 3;
if (Key.isDown(Key.DOWN)) { // Смещение вниз
ball._y += 3;
}
};

Вторым преимуществом метода isDown() является то, что он позволяет производить изменения, связанные с удерживанием клавиши, гораздо чаше, чем на это можно было бы рассчитывать, применяя в связке событие onKeyDown и метод getCode(). А это может быть важно, если в игре происходят достаточно динамичные события (например, бои в космосе).

Третья важная особенность метода isDown() нам уже знакома. Как вы помните, используя его, можно регистрировать нажатие не только клавиш клавиатуры, но и кнопок мыши. Проверять в цикле события onEnterFrame или функции setInterval(), задействована ли клавиша с кодом 2 — это наиболее надежный способ в ActionScript «отловить» нажатие правой клавиши мыши.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Action Script на эту тему:
Контекстное меню
Определение кода введенного символа. Метод getAscii()
Проверка активности специальных режимов. Метод isToggled()
Работа с клавиатурой
Работа с мышью