Условие if
- ДАЛЕЕ
- Синтаксис:
Код: Выделить всё
if ( условноеВыражение )
{
Код 1
}
else
{
Код 2
}
ПримерКод: Выделить всё
if (число конфет > 3) {
Поделиться с другом
} else {
Съем самим
}
Действие if проверяет условие, указанное в скобках. Если окажется, что конфет больше, чем 3, то будет выполняться первый код – Поделиться с другом. Иначе, если условие не верно, будет выполняться второй код – Съесть самим. Иногда else могут упускаться или наоборот может быть так:Код: Выделить всё
if (число конфет > 10) {
Поделиться с друзьями
} else if (3 < число конфет < 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. Назначить имя экземпляра – кнопка
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. Назначить имя экземпляра - звезда
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) { //проверяется, какая клавиша нажата
звезда.y += 5;
} else if (e.keyCode == Keyboard.UP) {
звезда.y -= 5;
}
else if (e.keyCode == Keyboard.RIGHT) { //проверяется, какая клавиша нажата
звезда.x += 5;
} else if (e.keyCode == Keyboard.LEFT) {
звезда.x -= 5;
}
}
Теперь давайте создадим другой ролик, в котором после нажатия на стрелку, объект продолжает двигаться в соответствующую сторону.
1. На сцене создай квадрат
2. Преобразуй в – Фрагмент ролика (F8)
3. Назначить имя экземпляра - квадрат
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", выполняется этот блок кода
квадрат.y -= 4;
break;
case 'down' : //если путь= "down'", выполняется этот блок кода
квадрат.y += 4;
break;
case 'right' : //если путь= "right'", выполняется этот блок кода
квадрат.x += 4;
break;
case 'left' : //если путь= "left'", выполняется этот блок кода
квадрат.x -= 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 не выйдет за пределы условия, а нам его надо дальше использовать.