Опубликован: 04.11.2006 | Доступ: свободный | Студентов: 4461 / 498 | Оценка: 4.46 / 3.96 | Длительность: 39:17:00
Урок 4:

Объекты и их использование

< Урок 3 || Урок 4: 12345 || Урок 5 >

Расширение интерактивных возможностей с применением объекта key

Объект Key – очень полезный инструмент, позволяющий отслеживать события клавиш (то есть, взаимодействие пользователя с клавиатурой). С помощью объекта Key вы сможете:

  • Узнать, не нажата ли в данный момент определенная клавиша
  • Определить последнюю нажатую клавишу
  • Получить значение кода последней нажатой клавиши
  • Создать слушатель для отслеживания событий клавиатуры
  • Определить, в каком состоянии находится та или иная из клавиш-переключателей (например, Caps Lock)

Объект Key – глобальный, а это значит, что вы не можете создать несколько экземпляров его. Чаще всего этот объект применяется для определения нажатия той или иной клавиши. Синтаксис этой операции таков:

Key.isDown(Key.TAB);

В приведенной здесь строке используется метод isDown() объекта Key для определения нажатия на клавишу. Этот метод возвращает результат true либо false. В качестве параметра метода isDown() можно указать либо имя клавиши в объекте Key, либо числовой код этой клавиши. Например, для клавиши Tab можно указать имя – Key.TAB, либо число 9 – код этой клавиши в таблице ASCII. Следующий скрипт эквивалентен предыдущему:

Key.isDown(9);

В следующем несложном упражнении мы будем перемещать по экрану воздушный шар – с помощью клавиатуры и объекта Key.

  1. Откройте файл balloon1.fla из папки Lesson04/Assets.

Фильм содержит два слоя: Background и Balloon. В слое Balloon вы видите экземпляр фильма-символа, изображающего воздушный шар. В следующем упражнении мы присоединим действия к этому фильму-символу.


  1. Откройте панель Действия, выделите экземпляр фильма-символа, изображающего воздушный шар и введите такой скрипт:
onClipEvent (load) {
  speed = 3;
}

К концу этого упражнения мы запрограммируем возможность перемещения шара при помощи клавиш-стрелок. При каждом нажатии на клавишу шар будет перемещаться в определенном направлении. Этот же скрипт выполняется при загрузке экземпляра фильма-символа и устанавливает значение переменной speed, которое будет определять, на сколько должен переместиться шар при каждом нажатии на клавишу. Наш скрипт устанавливает эту дистанцию равной трем пикселям.

  1. Не снимая выделения с экземпляра balloon, введите после предыдущего скрипта следующий:
onClipEvent (enterFrame) {
  if (key.isDown(key.RIGHT)) {
    _x += speed;
  } else if (key.isDown(key.LEFT)) {
    _x -= speed;
  }
}

В этом скрипте применен обработчик события enterFrame, который содержит условный оператор. Key.RIGHT – это ссылка на клавишу-стрелку "вправо", а key.LEFT, соответственно, "влево". Вот как происходит выполнение скрипта. При нажатии на клавишу "вправо" к текущей горизонтальной координате экземпляра фильма-символа прибавляется значение speed (шар перемещается вправо). Если же клавиша-стрелка "вправо" не нажата, то эта часть скрипта игнорируется и выполняется следующая секция – если нажата клавиша "влево", то из текущей горизонтальной координаты экземпляра фильма-символа вычитается значение speed (шар перемещается влево).

  1. В обработчик события enterFrame добавьте следующий скрипт:
if (key.isDown(key.UP)) {
  _y -= speed;
} else if (key.isDown(key.DOWN)) {
  _y += speed;
}

Скрипт очень похож на предыдущий. Однако здесь оператор if проверяет нажатия на клавиши-стрелки "вверх" и "вниз". В первой части этого оператора проверяется, не нажата ли клавиша "вверх", и если это так, из текущей вертикальной координаты экземпляра фильма-символа вычитается значение speed (шар перемещается вверх). Если же нажата клавиша "вниз", то к текущей вертикальной координате экземпляра фильма-символа прибавляется значение speed (шар перемещается вниз).

  1. Выполните команду Управление > Проверить фильм (Control > Test Movie). С помощью клавиш-стрелок управляйте перемещением воздушного шара.

Условия, которые мы запрограммировали, проверяются при каждом событии enterFrame, то есть при смене кадра. Если обнаружено, что одна из клавиш находится в нажатом состоянии, шар перемещается в соответствующем направлении.

  1. Закройте тестовый фильм и сохраните свою работу как balloon2.fla.

Теперь вы знаете, как отслеживать нажатия на клавиши, чтобы в результате что-то происходило. Применений для этого множество – от перелистывания страниц в слайд-шоу до создания игр.

< Урок 3 || Урок 4: 12345 || Урок 5 >
Евгений Стародубцев
Евгений Стародубцев

Вот задание:

7. Открыв панель Действия (Actions) и установив ее в Экспертный режим(Expert Mode), выделите кадр 1 слоя Actions и введите следующий скрипт:

Галина Кузнецова
Галина Кузнецова

Добрый день.

Можно ли получить среду Flash для обучения бесплатно?

Ольга Ремез
Ольга Ремез
Латвия, Рига
Светлана Ведяева
Светлана Ведяева
Россия, Саратов