Глава 3. Введение в язык ActionScript
Синтаксис языка и комментарии
Подобно JavaScript, язык ActionScript имеет точечный синтаксис. Слева от точки находится объект или ссылка на временную шкалу клипа, а справа – некоторое свойство, путь, переменная или действие, которое относится к элементу в левой части. Например: · mycar._width = true; · _root.gotoAndStop(20); Точка с запятой (;) указывает на конец команды.
Рис. 20. Панель Actions Хороший стиль программирования подразумевает включение в код программы комментариев. Для этого введите оператор // и добавьте текст с комментарием после него. Например:
// Проверка того, что переменная x больше или равна 4 if (x >= 4) { // Если да, то начать воспроизведение // анимации с кадра 10 gotoAndPlay(10); } else { // Если нет, то начать воспроизведение // анимации с кадра 20 gotoAndPlay(20); }
Чтобы вставить в программу большой текст, можно начать комментарий открывающимся оператором (/*) и закончить закрывающимся оператором (*/). Типы данных В языке ActionScript существуют следующие типы данных: · Булев (или логический) тип данных. Переменная принимает одно из двух значений: true (истина) или false (ложь). · Числовой тип данных (5; –123; 0.0002). · Строковый тип данных. Строка – это последовательность буквенных и цифровых символов, а также знаков пунктуации. Строки заключаются либо в двойные (“), либо в одинарные (‘) кавычки (например, str = “Привет!”). · Объекты – это структура данных с определенными свойствами. Более подробно о встроенных объектах Flash (например, Array, Math, String и др.) см. в § 3.8. · Клип – отдельный анимационный ролик с собственной временной шкалой (см. § 3.9). Заметим, что с помощью команды typeof() можно определить тип переменной. Она возвращает следующие значения: boolean, function, movieclip, number, object или string. Переменные Имя переменной может состоять из буквенных и цифровых символов, знаков подчеркивания (_) и символов доллара ($). В ней допускается хранение данных любого типа, например:
X1 = –5.6; _yy = ”Как дела?”;
При этом имя переменной не должно совпадать с ключевыми (зарезервированными) словами языка ActionScript. К ним относятся:
Чтобы объявить глобальную переменную, которая доступна в любом месте фильма, следует использовать слово «_global», например:
_global.str1 = ”глобальная переменная”;
Для объявления локальной переменной, которая может использоваться внутри функций, применяется ключевое слово «var», например:
function main1() { var str2 = ”локальная переменная”; }
При тестировании Flash-фильма можно просматривать текущие значения переменных в окне Output. Для этого в текст программы помещается функция trace(), где в скобках перечислены нужные переменные, например:
trace (str1); Операторы Операторы ActionScript можно разделить на следующие группы: · арифметические операторы (сложение (+), вычитание (–), умножение (*), деление (/), деление по модулю (%), инкрементирование, или прибавление единицы (++), декрементирование, или вычитание единицы (– –)); · операторы сравнения (<, >, <=, >=), возвращается значение true или false; · логические операторы (НЕ (!), И (&&), ИЛИ (||)), возвращается значение true или false; · операторы равенства (= =, !=), возвращается значение true или false; · операторы присваивания (=, +=, –=, *=, /=, %=). Условные конструкции Условные конструкции if () или if () … else позволяют проверить условие, заключенное в скобках, и возвращают значение true или false. В зависимости от полученного результата выполняются соответствующие команды. Рассмотрим пример:
if (x >= 100) { y = 2 * Math.PI * x; gotoAndPlay(10); } else { y = Math.PI * x * x; z++; gotoAndPlay(20); }
Другая условная конструкция switch()… имеет несколько ветвей, код которых выполняется в зависимости от значения условия, заключенного в круглых скобках. Рассмотрим пример:
num = 1; switch(num) { case 1: gotoAndPlay(50); break; case 2: gotoAndPlay(100); break; default: gotoAndStop() }
Ключевое слово break указывает, что будут выполнены только те команды, которые расположены на соответствующей ветви.
Циклы Оператор цикла while() обеспечивает многократное выполнение набора команд до тех пор, пока условие, заключенное в круглых скобках, возвращает значение true.
while(условие) { команды; }
В следующем примере цикл вычисляет значение xy:
z = x; i = 2; while (i <= y) { z = z * x; i++; }
В отличие от while() в операторе do…while() команды выполняются хотя бы один раз. Если затем условие оказывается истинным, то команды выполняются снова, в противном случае работа оператора завершается.
do { команды; } while(условие);
В следующем примере цикл также вычисляет значение xy:
z = x; i = 2; do { z = z * x; i++; } while (i <= y);
В цикле for() помещается инициализация счетчика, условие и модификация значения счетчика, записанные через точку с запятой:
for(<инициализация счетчика>; <условие>; <модификация значения счетчика>) { команды; }
Рассмотрим пример, где цикл выполняется 50 раз:
for(i = 0; i < 50; i++) { duplicateMovieClip(“/star”, “star” + i, i); setProperty(“star” + i, _x, 10 + random(500)); setProperty(“star” + i, _y, 10 + random(350)); setProperty(“star” + i, _alpha, random(100)); } Функции Чтобы объявить функцию, используется следующая конструкция:
function имя_функции(аргументы) { команда(ы); }
В качестве примера рассмотрим функцию Move_car(), которая перемещает автомобиль на 100 пикселей влево и вниз:
function Move_car(myCar) { var x = myCar._x; var y = myCar._y; myCar._x = x – 100; myCar._y = y + 100; }
Чтобы возвратить значение из функции, используется ключевое слово return с последующим указанием чисел или переменных. Для доступа к параметрам функции можно использовать объект Arguments, описанный в § 3.8. Объекты Рассмотрим свойства и методы наиболее важных объектов: 1. Arguments – это массив, в котором содержатся значения, передаваемые в качестве параметров функции. Свойства Arguments: · arguments.length – количество параметров; · arguments.caller – ссылка на функцию, из которой была вызвана данная функция. Если функция не вызывалась из другой функции, то возвращается null. 2. Array – обеспечивает доступ к массивам и их обработку. Для того чтобы объявить новый массив, используются следующие конструкции: · days = new Array() – новый пустой массив; · town = new Array(10) – новый пустой массив, в который можно записать максимум 10 элементов; · alphabet = new Array(“a”, “b”, “c”, “33”) – новый массив из четырех элементов, заполненный при создании (заметим, что в массиве могут содержаться данные различных типов). Для доступа к элементу массива в квадратных скобках указывается его индекс (индекс первого элемента – 0, второго – 1 и т. д.):
town[0] = “Moscow”;
Рассмотрим свойства и методы массивов: · имя_массива.length – количество элементов в массиве; · имя_массива.concat(элемент1, элемент2, …, элементn) – метод позволяет добавлять дополнительные элементы в конец массива. Например, после выполнения следующих команд массив letter2 будет содержать элементы “a”, “b”, “c”, “d”, “e”:
letter1 = new Array(“a”, “b”, “c”); letter2 = new Array(); letter2 = letter1.concat(“d”, “e”);
· имя_массива.slice(индекс1, [индекс2]) – создание массива из элементов исходного в диапазоне, который начинается с индекса1 вплоть до индекса2, исключая последний (индекс2 является необязательным параметром; если он не указан, то по умолчанию будет использоваться последний индекс в массиве). Если индекс1 < 0, то отсчет производится с конца массива (–1 – последний элемент, –2 – предпоследний и т. д.). Например, в результате выполнения следующих команд в массив nums1 заносятся значения 11 и 22:
nums = new Array(11, 22, 33, 44, 55); nums1 = new Array(); nums1 = nums.slice(0, 2);
· имя_массива.pop() – возвращает последний элемент и удаляет его из массива; · имя_массива.push(элемент1, элемент2, …, элементn) – добавляет указанные элементы в конец массива; · имя_массива.shift() – удаляет первый элемент массива и возвращает его значение; · имя_массива.unshift(элемент1, элемент2, …, элементn) – добавляет указанные элементы в начало массива; · имя_массива.sort([функция сортировки]) – элементы массива сортируются в определенном порядке. Функция должна сравнивать два числа, возвращать –1, если первое число предшествует второму (1 – наоборот), и возвращает 0 при равных числах. Например, сортировку по возрастанию можно задать следующим образом:
function comp(x, y) { return x – y; } myarray.sort(comp);
Если функция сортировки не указана, то вначале идут целые числа, символы верхнего регистра в алфавитном порядке, символы нижнего регистра. · имя_массива.reverse() – изменяет порядок следования элементов массива на противоположный. 3. Boolean – преобразует выражение в булевую переменную (возвращает значение true, если выражение не ноль, иначе – false). Метод toString() преобразует булевую переменную в строковое представление (“true” или “false”). 4. Button – использует методы и свойства для управления кнопками. 5. Color – установка и преобразование RGB-цветов клипа. 6. Date – служит для хранения и обработки информации о дате и времени. Синтаксис объявления нового объекта Date:
x = new Date(); y = new Date([Параметры]);
Параметры: · год (четырехзначное число, при этом значения 0–99 соответствуют годам 1900–1999); · месяц (от 0 (январь) до 11 (декабрь)); · число (от 1 до 31); · часы (от 0 до 23); · минуты (от 0 до 59); · секунды (от 0 до 59); · миллисекунды (от 0 до 999). Если параметры не указаны, то в объект Date заносится текущая дата и время. Далее рассмотрим методы, позволяющие устанавливать или возвращать параметры объекта Date: · getYear() – возвращает год относительно 1900 года; · getFullYear() – возвращает год в виде четырехзначного числа; · getMonth() – возвращает месяц (от 0 (январь) до 11 (декабрь)); · getDate() – возвращает день (от 1 до 31); · getHours() – возвращает часы (от 0 до 23); · getMinutes() – возвращает минуты (от 0 до 59); · getSeconds() – возвращает секунды (от 0 до 59); · getMilliseconds() – возвращает миллисекунды (от 0 до 999); · getDay() – возвращает день недели (от 0 – воскресенье до 6 – суббота); · setYear(значение) – задает год в виде двухзначного или четырехзначного числа; · setMonth(значение) – задает месяц года; · setDate(значение) – задает число; · setHours(значение) – задает часы; · setMinutes(значение) – задает минуты; · setSeconds(значение) – задает секунды; · setMilliseconds(значение) – задает миллисекунды; · toString() – преобразование даты в строку следующего вида: Thu Oct 21 12:47:09 GMT+0400 2010. 7. Key – используется для идентификации нажатий клавиш во время воспроизведения фильма. Методы Key: · getAscii() – возвращает значение ASCII-кода последней нажатой клавиши (коды Ascii различаются для строчных и прописных букв); · getCode() – возвращает код последней нажатой клавиши во время воспроизведения клипа. Пример:
new_key = new Object(); new_key.onKeyDown = function() { trace(“Данные о последней нажатой клавише: ”); trace(“Код: ” + Key.getCode()); trace(“ascii-значение” + Key.getAscii()); } Key.addListener(new_key);
· isDown(keyCode) – возвращает true, если клавиша с кодом keyCode нажата, иначе – false. Свойства объекта Key связаны с кодами клавиш: Key.ENTER (код 13), Key.HOME (код 36), Key.SPACE (код 32), Key.TAB (код 9), Key.ESCAPE (код 27), Key.INSERT (код 45) и др. 8. Math – применяется для обращения к математическим функциям и константам. Рассмотрим методы объекта Math: · Math.abs(число) – модуль числа; · Math.min(число1, число2) и Math.max(число1, число2) – мень-шее и большее из чисел; · Math.pow(число, степень) – возведение числа в некоторую степень; · Math.exp(выражение) – экспоненциальная функция ex; · Math.log(выражение) – натуральный логарифм; · Math.sqrt(выражение) – квадратный корень; · Math.random() – возвращает случайное число от 0 до 1; · Math.sin(выражение), Math.cos(выражение) и Math.tan(выра-жение) – тригонометрические функции; · Math.acos(выражение) и Math.asin(выражение) – арккосинус и арксинус выражений в радианах; · Math.ceil(выражение) и Math.floor(выражение) – преобразуют вещественное число в ближайшее большее и меньшее целое число; · Math.round(выражение) – округление числа до ближайшего целого числа. Также можно использовать математические константы: Math.PI (константа π ≈ 3.14), Math.E (константа e ≈ 2.718), Math.LN10 (натуральный логарифм от 10), Math.SQRT2 (квадратный корень из 2) и др. 9. Mouse – объект, предназначенный для работы с указателем мыши. Методы Mouse: · Mouse.hide() – скрывает указатель мыши; · Mouse.show() – показывает указатель мыши. За позицией указателя мыши можно следить с помощью следующих свойств: · _xmouse – горизонтальная координата позиции мыши; · _ymouse – вертикальная координата позиции мыши. 10. MovieClip – предоставляет методы для управления свойствами клипа и его воспроизведением (некоторые свойства рассмотрены в § 3.9 и др.). 11. Number – применяется при проведении вычислений. 12. Object – находится в корне иерархии классов ActionScript. Это универсальный объект, который может использовать методы других объектов. 13. Sound – применяется для управления воспроизведением звука (см. § 3.11). 14. String – применяется для работы со строками. Объявление нового объекта String:
str = new String(“строка”) или str = “строка”;
Свойства и методы String: · строка.length – число символов в строке. Например, длина строки mystring равна 30:
mystring = “Однажды в студеную зимнюю пору”;
· строка.charAt(индекс) – возвращает символ с указанным индексом (нумерация символов начинается с нуля); · строка.toUpperCase() – преобразует все символы строки к верхнему индексу. Например, после команды
mystring = mystring.toUpperCase();
значение mystring равно “ОДНАЖДЫ В СТУДЕНУЮ ЗИМНЮЮ ПОРУ”; · строка.toLowerCase() – преобразует все символы строки к нижнему индексу; · строка.concat(элемент1, элемент2, …, элементn) – используется для объединения (конкатенации) строк, например:
myName = “Александр”; fullName = myName.concat(“ ”, “Иванов”);
· строка.indexOf(“подстрока”, [индекс]) – производит поиск подстроки и возвращает индекс ее первого вхождения. Если поиск не закончился успехом, то возвращается –1. Поиск пустой строки возвращает 0. Второй параметр индекс является необязательным, он указывает, с какого индекса следует начать поиск; · строка.lastIndexOf(“подстрока”, [индекс]) – возвращает номер последней позиции подстроки в строке. Необязательный параметр индекс определяет, с какой позиции начинается поиск; · строка.slice(начальный_индекс, [конечный_индекс]) – возвращает подстроку в строке по первому и последнему индексу, исключая символ с конечным_индексом. Если конечный_индекс не указан, то по умолчанию это количество символов в строке – строка.length. В следующем примере на экран выводится подстрока “вст”:
str = “Здравствуйте!”; str1 = str.slice(4, 7); trace(str1);
15. TextField – используется для управления характеристиками и свойствами экземпляра текстового поля. 16. XML – позволяет создавать, загружать, анализировать и изменять XML-документы.
Популярное: Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (644)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |