Опубликован: 04.11.2006 | Уровень: специалист | Доступ: платный
Урок 9:

Использование условной логики

< Урок 8 || Урок 9: 1234567 || Урок 10 >

Реакция на действия пользователя

Взаимодействие между пользователем и вашим фильмом осуществляется, главным образом, через посредство двух устройств: мыши и клавиатуры, причем вариантов их использования может быть много. Пользователь может перемещать мышь, нажимать и отпускать ее кнопки, пользоваться клавиатурой. При помощи условной логики можно запрограммировать фильм так, чтобы он так или иначе реагировал на действия пользователя.

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

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

Мы продолжаем работать с проектом, начатым в предыдущих упражнениях.

Для начала вспомним два важных момента. Первое: при загрузке экземпляра клипа weather выполняется скрипт, результаты которого зависят от значения переменной randomWeather. Скрипт не только отображает на экране изображение, соответствующее тем или иным погодным условиям, но также присваивает значения переменным thrust и noThrust. Переменная thrust во всех случаях получает значение, которое в два раза больше, чем значение noThrust. Так, если noThrust получает значение 2, то thrust – 4. Второе: при загрузке экземпляра rocket переменной speed (находящейся на монтажном столе этого экземпляра) присваивается значение noThrust ; так, если noThrust имеет значение 2, такое же значение получит и переменная speed. Значение speed определяет скорость подъема ракеты. В этом упражнении мы изменим это: переменной speed будет присваиваться либо значение noThrust, либо значение thrust – в зависимости от того, удерживает ли пользователь нажатой клавишу "пробел". Поскольку значение thrust в два раза больше, чем значение noThrust, при нажатом пробеле ракета будет подниматься в два раза быстрее.


  1. Откройте панель Действия, выделите экземпляр фильма-символа rocket и добавьте после имеющегося скрипта следующий:
onClipEvent (keyDown) {
  if (launch && key.isDown(key.SPACE)) {
    speed = thrust;
    _root.thrustBoost.gotoAndStop ("on");
  }
}

Этот скрипт будет выполнен при нажатии любой клавиши на клавиатуре, при этом условный оператор проверит выполнение двух условий. Если launch имеет значение true, и при этом нажата клавиша "пробел", будут выполнены два действия. Первое присваивает переменной speed значение thrust – в результате ракета будет подниматься в два раза быстрее. Второе действие приказывает экземпляру фильма-символа thrustBoost (на сцене он расположен под кнопкой Launch) перейти к кадру с меткой on – в нем находится изображение выполненной большими красными буквами надписи "Thrusters".

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

  1. После предыдущего скрипта добавьте следующий:
onClipEvent (keyUp) {
  if (!key.isDown(key.SPACE)) {
    speed = noThrust;
    _root.thrustBoost.gotoAndStop ("off");
  }
}

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

  1. Командой Управление > Проверить фильм (Control > Test Movie) запустите тест проекта.

Нажмите и отпустите кнопку Launch. Как только вы это сделаете, ракета начнет подниматься. Нажав клавишу "пробел", вы заставите ракету двигаться вдвое быстрее. Отпустите "пробел" – ракета опять станет двигаться медленнее, с первоначальной скоростью.

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

Мы продолжим работать с этим файлом в следующем упражнении.

< Урок 8 || Урок 9: 1234567 || Урок 10 >
Салтанат Бектегенова
Салтанат Бектегенова

Дострочное пересдача экзамена

 

Евгений Стародубцев
Евгений Стародубцев

Вот задание:

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

Евгения Дегтяренко
Евгения Дегтяренко
Украина, Запорожье
Анна Елисеева
Анна Елисеева
Россия, Великий Новгород, Ногородский государственный университет имени Ярослава Мудрого, 2003