Переменные, функции, типы данных, комментарии, операторы.
В книжках по программированию, как правило, сначала даются основные понятия и определения, а только затем
приступают к программированию как таковому. Я решил сделать несколько иначе — давать работающий фрагмент кода,
и тут-же объяснять, как и почему он работает. А в объяснениях конкретного примера я попытаюсь дать основы языка ActionScript3.
Такой способ изложения мне кажется менее скучным и нудным для тех, кто пытается самостоятельно приобщиться к программированию.
Что из этого получится — судить вам, уважаемые читатели.
Итак, начнем, как всегда, с того, что откроем среду разработки Adobe Flash CS3 (или более позднюю версию программы) и создадим файл Flash ActionScript3, сохранив его
под каким либо именем. Чтобы открыть редактор кода, выделите на временной линии первый кадр единственного слоя и нажмите клавишу F9.
Пока мы не научились создавать файлы пользовательских классов, мы с вами будем писать программный код
только в первом кадре верхнего слоя и нигде более. Кто знаком с программированием на ActionScript2, тот наверняка знает,
что программный код можно было писать и в других частях флэш-ролика. Прошу забыть о такой практике!
В языке ActionScript3 есть множество готовых
функций. Что такое функция и с чем ее едят
— это потом. А сейчас напишите в редакторе кода (или скопируйте, что быстрее) следующее:
var str = 'Моя первая строка';
trace(str);
Протестируйте ролик. Вы увидите окно вывода со строкой
Моя первая строка.
Теперь объяснения.
Служебное слово
var служит для объявления
переменной, знак равно
присваивает ей значение (в данном случае это строка «Моя первая строка»). Точка с запятой в конце строчки кода говорит о том, что выражение
закончено.
Затем вызывается встроенная функция
trace(), которая служит для отладки кода (мы ее будем очень
часто использовать для проверки правильности написанного кода). Как видим, вызов функции производится написанием ее имени и открывающей и закрывающей круглой
скобки. В скобках, если это необходимо, записывается один или несколько аргументов, которые функция должна обработать. В нашем случае это переменная
str, значение которой функция trace записала в окно вывода.
Вы, наверное, обратили внимание, что когда мы присваивали переменной значение, мы заключили строку в кавычки (можно как
одинарные, так и двойные, лишь бы латинские верхние). Так всегда следует поступать со строковыми значениями переменных.
Сразу же нужно упомянуть о
типах данных, которые могут храниться в переменных. ActionScript3
не всегда требует явного указания типа данных, которые могут храниться в переменной, если тип не указан, среда разработки
делает это сама. Для явного указания типа нам следовало написать
var str:String = 'Моя первая строка';
То есть, если при объявлении переменной после ее имени поставить двоеточие, то следуюшяя за двоеточием запись должна содержать
указание на тип переменной. В нашем случае это тип
String (тип строка).
Зачем нужны комментарии и что это такое.
Представьте, что вы пишете какой либо проект, который содержит несколько сотен строк программного кода. Вернувшись к проекту буквально
через несколько дней, вы не сможете вспомнить, что содержит та или иная переменная, для чего служит написанная вами функция и т.п..
Для облегчения разбора своего или чужого кода и служит комментарий (запись которого никак не влияет на выполнение программы).
Можно написать так:
var my_name1 = 'Иванов'; //Переменная my_name1 содержит фамилию автора первой книги.
//Оформленный таким способом комментарий действует до конца строки
/* А это
многострочный
комментарий
*/
Теперь напишем какую нибудь простую функцию и заодно познакомимся с другими типами данных.
var num1:Number;
var num2:Number;
var num3:Number;
//Создаем три переменные типа Number
//Этот тип данных используется для чисел — положительных, отрицательных и с плавающей точкой (десятичных дробей)
num1 = 23;
num2 = 48;
//Присваиваем двум первым переменным численные значения
//Как видите, числа, в отличие от строк, в кавычки не берутся
//Если мы напишем число в кавычках, оно будет расценено как строка
function plus(a:Number, b:Number):Number{ //объявление функции начинается служебным словом
function
// после которого пишется придуманное вами имя функции, затем в круглых скобках два аргумента численного типа
// после круглых скобок через двоеточие указание на тип возвращаемых функцией данных
/* в фигурных скобках — тело самой функции. Описание функции должно содержать как минимум одну открывающую и одну закрывающую
фигурные скобки*/
var c:Number = a + b; /*в теле функции создаем переменную c, которой присваиваем значение суммы двух аргументов*/
return(c);/*возвращаем значение переменной c*/
} /*конец функции*/
num3 = plus(num1,num2);/*переменной num3 присваиваем значение, возвращенное функцией plus, вызванной с аргументами num1 и num2*/
trace(num3);/*при помощи отладочной функции trace проверяем, правильно ли наша функция работает*/
Такая функция может работать и без указания типов данных
function plus(a, b){
var c = a + b;
return(c);
}
Однако, в некоторых случаях, определять тип данных необходимо. Например:
var d=3;
var e='4';
var w=plus(d, e);
/*trace(w) выведет 34, а не 7, так как переменная e имеет строковый тип. Математические операции между числами и строками
не производятся, поэтому флэш преобразует числа в строки и склеивает их
Если нам нужно преобразовать число в строку, делаем так:
d = String(d);
Обратная операция (строка в число) —
e = Numder(e);
*/
По ходу дела, мы столкнулись с применением
операторов — присвоения(=), суммирования (+) для чисел, он же конкатенации (склеивания) для строк.
Для чисел, естественно, имеются операторы вычитания(-), умножения(*) и деления(/). Можно и нужно использовать скобки в сложных математических
выражениях, чтобы правильно указать порядок выполнения действий.
Третий тип данных, с которым вы сегодня познакомитесь, это логический тип —
Boolean. Переменные этого типа могут иметь только два
значения:
false — ложь и
true — истина.
Здесь к месту будет упомянуть об операторах сравнения:
равно (==)
не равно (!=)
больше (>)
меньше (<)
больше или равно (>=)
меньше или равно (<=).
К логическим операторам относятся:
логическое
и (&&)
логическое
или (||).
А для чего нам нужны логический тип данных и операторы сравнения? При помощи них можно организовать
ветвления в программе. То есть при
одних условиях будет выполняться одна часть кода, а при других — другая. Приведу простой пример:
var n=0;
if(n>0){
trace('Положительное число');
}else if(n<0){
trace('Отрицательное число');
}else{
trace('Равно нулю');
}
Скопируйте данный код и вставьте в редактор флэш ActionScript. Протестируйте ролик. Затем попробуйте изменить код, задав значение переменной n как
вам захочется и проверьте, что получится.
Объясняю, как это работает.
if —
если заданное в скобках условие соблюдено и равно true, то выполняется
код в первых фигурных скобках.
else if —
иначе если заданное в скобках условие соблюдено и равно true, то выполняется
код во вторых фигурных скобках.
else —
иначе (то есть если первое и второе условие не выполняется — равны false, то
выполняется код в третих фигурных скобках.
Проверка условия может состоять только из одного
if без
else, тогда при несоблюдении условия
вообще не будет ничего происходить. Также можно проверить много условий, тогда блоков
else if
будет несколько. В условии могут быть объединены несколько условий при помощи логических операторов, например:
if(условие1 && условие2){ /*логический оператор и(&&) дает в сумме true лишь в том случае, когда оба условия верны*/
выполняется действие
}else if(условие1 || условие2){
/*логический оператор или(||) дает в сумме true в том случае, когда хотя бы одно из условий верно*/
выполняется другое действие
}
Напоследок напоминаю, что имена переменных и функций должны начинаться с латинской буквы или знака подчеркивания и содержать
латинские буквы (регистр важен), цифры и знак подчеркивания!
На сегодня все.
29.04.2011.
Владимир