ActionScript 3 условиe if switch и события клавиатуры

Adobe Flash
Автор темы, Ефрейтор
Ефрейтор
Аватара
Adobe Flash
Автор темы, Ефрейтор
Ефрейтор
Сообщения: 17
Зарегистрирован: 9 апреля 2013
С нами: 10 лет 11 месяцев

#1 Adobe Flash » 20 ноября 2015, 17:42

Условие if


ДАЛЕЕ
Синтаксис:

Код: Выделить всё

if ( условноеВыражение )
{
   Код 1
}
else
{
   Код 2


Пример

Код: Выделить всё

if (число конфет > 3) {  
Поделиться с другом
} else {
Съем самим


Действие if проверяет условие, указанное в скобках. Если окажется, что конфет больше, чем 3, то будет выполняться первый код – Поделиться с другом. Иначе, если условие не верно, будет выполняться второй код – Съесть самим. Иногда else могут упускаться или наоборот может быть так:

Код: Выделить всё

if (число конфет > 10) {  
Поделиться с друзьями
} else if (< число конфет < 10) {
Поделиться с 1 другом
}
}
 else if (число конфет < 3) {
Съедим сами


Условие switch


Чтобы не использовать несколько else if, ,будет более удобно пользоваться инструкцией switch.

Синтаксис:

Код: Выделить всё

switch( условное_выражение )
{
   case выражение1:
       Код 1;
       break;
   case выражение2:
       Код 2;
       break;
   default:
       Кода 3;


Здесь вместо проверки условия идет сравнение с выражением и определяется, какой код нужно выполнить. Если результат выражения условное_выражение не совпадает ни с одним из значений выражений case, то выполняются все инструкции, расположенные за меткой default.

Пример

Код: Выделить всё

switch(ежедневник)
{
   case ‘Понедельник’:
       Пойти в универ
       break
;
   case ‘Вторник’:
       Снова универ
       break
;
   case ’Среда’:
       Погода плохая. Какой универ?
       break;
   default:
       Самообучение
       break
;


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

1. На сцене создайте анимацию движения для объекта из одной точки в другую.

2. Создайте слой – кнопка, на котором разместите будущую кнопку.

3. Конвертируйте кнопку в символ Кнопка, выделив и нажав F8.

4. Назначить имя экземпляракнопка

ActionScript 3 условиe if switch и обытия клавиатуры_1.jpg


5. Создайте слой действия и в первом кадре, нажав F9 - напишем следующий код:

Код: Выделить всё

stop (); //останавливает анимацию в самом начале
var жим:Number = 0; //переменная жим отвечает за состояние кнопки. нажата кнопка или нет.

кнопка.addEventListener (MouseEvent.CLICK, пуск_стоп); /*создаем слушателя события и регистрируем функцию пуск_стоп*/

function пуск_стоп (e:MouseEvent):void { //тело функции выполняется после щелчка на кнопке
if (жим !=1) { // если состояние не равно нажатому, то play() - проиграть/пуск;
 play ();
жим = 1; //теперь состояние делаем равным нажатому
} else { //если состояние равно нажатому
 stop();
 жим = 0; //теперь состояние делаем равным не нажатым
}
}


В коде нам встретился ввод переменной. Поэтому давай в этом разберемся.

Переменные

Переменные, это контейнеры, которые содержат в себе какие-либо значения или данные. Для создания переменной всегда нужно использовать слова var. Тип переменной назначается добавлением к имени переменной двоеточия, с последующим указанием типа этой переменной.

Код: Выделить всё

var x:Number = 5; //это вводится переменная x = 5. Тип Number - число
var text:String = «Привет»; //это вводится переменная text, означающая слово «Привет». Тип String – строка.
var  y:Number; //так тоже можно, без присваивания значений              

Переменная text не равна переменной Text.

События клавиатуры


ДАЛЕЕ
Событие будет происходить при нажатии клавиши. Существует два типа событий клавиатуры:
KeyboardEvent.KEY_DOWN – пользователь нажал на клавишу
KeyboardEvent.KEY_UP – пользователь отпустил клавишу

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

1. Создай звезду

2. Преобразуй в – Фрагмент ролика (F8)

3. Назначить имя экземпляра - звезда

ActionScript 3 условиe if switch и обытия клавиатуры_2.jpg


4. Создайте слой действия и в первом кадре - F8 - пишем:

Код: Выделить всё

stage.addEventListener(KeyboardEvent.KEY_DOWN, клавиши);


В этой строчке мы создаем слушателя не для кнопки, не для объекта, а для всей сцены – stage.
Само событие теперь - KeyboardEvent.KEY_DOWN. То есть будет происходить, если пользователь нажмет клавишу.
Функцию назвали - клавиши.

Весь код:

Код: Выделить всё

stage.addEventListener(KeyboardEvent.KEY_DOWN, клавиши); 

function клавиши 
(e:KeyboardEvent):void { //функция клавиши

if (e.keyCode == Keyboard.DOWN) {  //проверяется, какая клавиша нажата
 звезда.+= 5;
}
 else if (e.keyCode == Keyboard.UP) {
 звезда.-= 5;
}
else if (e.keyCode == Keyboard.RIGHT) {  //проверяется, какая клавиша нажата
 звезда.+= 5;
}
 else if (e.keyCode == Keyboard.LEFT) {
 звезда.-= 5;
}
}


Теперь давайте создадим другой ролик, в котором после нажатия на стрелку, объект продолжает двигаться в соответствующую сторону.

1. На сцене создай квадрат
2. Преобразуй в – Фрагмент ролика (F8)
3. Назначить имя экземпляра - квадрат

ActionScript 3 условиe if switch и обытия клавиатуры_3.jpg


4. Создайте слой действия и в первом кадре - F8 - пишем:

Код: Выделить всё

var путь:String; //вводим переменную путь, которая далее будет задавать направление движения шарика

stage.addEventListener(KeyboardEvent.KEY_DOWN, жим); //событие клавиатуры жим

stage.addEventListener(Event.ENTER_FRAME, путь_квадрата);  // событие обновления экрана. Об этом смотри ниже

function жим (e:KeyboardEvent):String { //тип String. Пояснение ниже
if (e.keyCode == Keyboard.RIGHT) { // стрелка вправо – направление вправо
 путь = "right";
}
 else if (e.keyCode == Keyboard.LEFT) {//стрелка влево – направление влево
 путь = "left";
}
 else if (e.keyCode == Keyboard.UP) { //стрелка вверх – направление вверх
 путь = "up";
}
 else if (e.keyCode == Keyboard.DOWN) { //стрелка вниз – направление вниз
 путь = "down";
}
 else if (e.keyCode == Keyboard.SPACE) { //пробел – остановка анимации
 путь = "stop";
}

return путь; //об этом ниже

}

function путь_квадрата(e:Event) {

switch (путь) { //идет сравнение с тем, чему равно путь. Соответствующий блок кода выполняется
 case 'up' : //если путь= "up", выполняется этот блок кода
  квадрат.-= 4;
  break;

 case 'down' : //если путь= "down'", выполняется этот блок кода
  квадрат.+= 4;
  break;

 case 'right' : //если путь= "right'", выполняется этот блок кода
  квадрат.+= 4;
  break;

 case 'left' : //если путь= "left'", выполняется этот блок кода
  квадрат.-= 4;
  break;

 case 'stop' : //если путь= "stop'", выполняется этот блок кода
  break;
}



Разберём, что нового тут появилось:

stage.addEventListener(Event.ENTER_FRAME, путь_квадрата); – Событие обновления экрана ENTER_FRAME. Событие в фигурных скобках функции будет путь_квадратабудет выполняться со скоростью Кадров в секунду. То есть если ты нажмешь на стрелку вправо, то шарик 12 раз за секунду сделает движение на 4 пиксела вправо.

function жим (e:KeyboardEvent):String { - Здесь обратите внимание на тип возвращаемых значений. Раньше был void - тоесть возвращаемого значения нет. Теперь String - тоесть возвращается строковое значение. А возвращается значение за счет return

return direction; - Возвращает значение функции. Если не написать эту строку, значение переменной direction не выйдет за пределы условия, а нам его надо дальше использовать.
Изображение


Дим M
Администратор
Администратор
Аватара
Дим M
Администратор
Администратор
Сообщения: 1607
Зарегистрирован: 5 апреля 2013
С нами: 10 лет 11 месяцев

#2 Дим » 20 ноября 2015, 19:24

if и switch как будто из Pawn :grin:
[center]i love you [s]mxIni[/s] Mysql[/center]


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Adobe Flash»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость