![]() | |
Переменные |
1. Переменные в языке ActionScript определяются автоматически при их первом использовании. Специальной команды для описания переменной в языке нет. Тип переменной подбирается автоматически, в зависимости от контекста. Например, если в тексте сценария (программы) встречается команда: x = "ёжики"y, это означает, что в сценарий вводится новая переменная x строкового типа, которой присваивается начальное значение "ёжики". Указанием на строковый тип служат двойные кавычки либо апострофы.
Переменные языка ActionScript закрепляются за временной шкалой фильма или экземпляра видеоклипа, в котором они вводятся. Если переменная x создается на главной временной шкале, то она доступна для других функций сценария на этой временной шкале, но к ней нельзя получить прямой доступ из временных шкал других видеоклипов. Обратиться к такой переменной можно по имени _root.x (объект _root — это и есть главная временная шкала). Глобальные переменные — те, к которым можно обращаться по их коротким именам из любого места сценария. Эти переменные относятся к специальной зоне _global. Глобальная переменная y задается следующим образом: _global.y = "ёжики"; |
Типы данных |
2. Основными типами данных ActionScript являются:
Кроме того, существуют типы object (объект, созданный с помощью ActionScript) и function (функция). Если создать переменную, указывающую на несуществующий элемент, она будет иметь тип undefined. Узнать тип переменной можно с помощью оператора typeof. В частности, если выполнить команду Можно преобразовать переменную из одного типа в другой, если это возможно. Пусть, например, переменная y имеет значение "3.14" - значение строкового типа. Она будет преобразована в числовой тип и сможет участвовать в арифметических операциях после выполнения команды |
Массивы |
3. Массивом называется набор переменных, имеющих одинаковое имя и различающихся по индексам. Пустой массив A создается командой A = new Array();
Заполнить массив можно следующим образом: A = ["Вася", "Петя", "Маша", "Оля"]; А можно сразу создать уже заполненный массив (из 4 элементов): A = new Array("Вася", "Петя", "Маша", "Оля"); К элементу массива можно обратиться по его индексу. Индекс первого элемента массива равен 0. Если выполнить команду y = A[2], переменная y примет значение "Маша". С помощью метода push объекта Array можно добавлять в массив новые элементы. Команда A.push("Таня") добавит в массив A пятый элемент. |
Операторы |
4. Оператор присваивания, изменяющий значение переменной, в ActionScript имеет вид = .
Арифметические операторы +, -, *, / выполняют соответствующие арифметические действия. Оператор Операторы сравнения в ActionScript: Логические операторы: |
Условный оператор if |
5. Упрощенный синтаксис условного оператора в ActionScript выглядит так:
If ( условие ) { Если условие истинно, то выполняется последовательность команд, заключенная в фигурные скобки. Команды языка ActionScript отделяются друг от друга точкой с запятой. Если необходимо выполнить другую последовательность команд, когда условие ложно, используется полный синтаксис: If ( условие ) { |
Цикл типа while |
6. Циклы в языках программирования бывают двух типов: счетные (когда заранее известно число повторяющихся действий — итераций цикла) и условные, когда повторяющиеся действия прекращают выполняться в зависимости от некоторого условия. Условный цикл задается в ActionScript следующей конструкцией:
While ( условие ) { Последовательность команд цикла, заключенная в фигурные скобки, будет выполняться до тех пор, пока условие не станет ложным. Если условие изначально ложно, эта последовательность команд не будет выполнена ни разу. В том случае, если её необходимо выполнить как минимум один раз, используется другая конструкция — цикл с постусловием: Do { |
Цикл типа for |
7. Для организации счетных циклов обычно используется конструкция for следующего типа:
for (i = 1; i <= 10; i++) { В приведенном примере последовательность команд выполнится ровно 10 раз, при этом переменная i будет последовательно принимать значения от 1 до 10. Вместо i может использоваться любая другая переменная, и диапазон ее изменения может быть любым. Общий же вид цикла for такой: for (инициализация счетчика; условие выхода; изменение счетчика){ Команда инициализации счетчика выполняется один раз в начале цикла. Затем проверяется условие выхода и, если оно ложно, цикл заканчивается. Если же оно истинно, выполняется последовательность команд в теле цикла, а затем команда изменения счетчика. После этого снова проверяется условие выхода и т.д. Существует особая разновидность цикла for, имеющая следующий синтаксис: for ( итератор in массив ){ Переменная-итератор последовательно пробегает индексы всех элементов массива. В роли массивов могут выступать некоторые объекты ActionScript. Например, _root, может восприниматься как массив, элементы которого — все экземпляры видеоклипов, расположенных на главной временной шкале. Приведенный ниже код установит для всех этих экземпляров сжатие по горизонтали равным 50%: for (name in _root){ |
Досрочный выход из цикла | 8. Команды break и continue прерывают выполнение последовательности команд цикла. При этом break полностью завершает цикл и передает управление на первую команду, следующую за циклом. Команда continue возвращает программу в начало текущего цикла (т.е. в место проверки условия). |
Подпрограммы |
9. Подпрограмма — это фрагмент программы, имеющий собственное имя, к которому можно обращаться по этому имени из любого места программы. В ActionScript все подпрограммы называются функциями. Создать функцию можно в любой временной шкале с помощью следующей конструкции:
function имя_функции ( список параметров ) { Для того чтобы выполнить функцию, указывается ее имя и список фактических параметров в скобках. Перед именем функции необходимо указать путь к ней (как и для переменных). Например, если функция test (без параметров) написана на главной временной шкале, обращение к ней будет выглядеть: _root.test(); Если функция возвращает значение, то в ее теле необходимо присвоить возвращаемый результат переменной, имя которой совпадает с именем самой функции. |
Упражнение |
10. В качестве простого примера рассмотрим создание системы аутентификации. Создадим интерактивную форму, которая будет запрашивать пароль для входа в систему.
2. Создайте два блока статического текста. В одном введите надпись "Login:", а в другом - "Password:". Разместите их слева от первых двух. 3. Создайте новый символ видеоклипа (не забудьте открыть библиотеку) и назовите его errorMessage. Он будет выдавать сообщения об ошибке. Первый слой его временной шкалы переименуйте в actions. Первый кадр этого слоя должен быть пустым и содержать только команду stop(). Создайте еще один слой с именем labels. Во втором кадре этого слоя создайте пустой ключевой кадр и на панели свойств дайте ему метку (Frame Name) start. 5. На главной временной шкале фильма (Scene1) создайте слой error. Поместите экземпляр только что созданного видеоклипа из библиотеки на рабочее поле и поместите его под текстовыми полями для ввода имени и пароля (при этом содержимого видеоклипа видно не будет — ведь его первый кадр пустой). Присвойте этому экземпляру имя (например, errorMessage — имя экземпляра вполне может совпадать с именем самого символа). 7. Создайте, наконец, новый слой Success. На нем будет размещено изображение успешного входа в систему. Содержимое этого слоя может быть любым, но начинаться оно должно только с 10 кадра. 8. Наконец, добавим кнопку, на которую пользователь будет нажимать после ввода пароля. Для кнопки создайте отдельный слой (назовите его button). Кнопку можно самому не рисовать — во Flash есть библиотека готовых кнопок, доступных по команде on (release) { 9. На слое button добавьте пустой ключевой кадр 10. Создайте еще один слой и разместите его над всеми остальными. К первому кадру этого слоя добавьте функцию stop(). Протестируйте фильм. Проанализируйте пример и разберитесь в коде. |