
- •Основы языка ActionScript 2.0 Для чего нужен Actionscript?
- •События
- •Действия
- •Операторы
- •Ключевые слова
- •Фигурные скобки
- •Точка с запятой
- •Кавычки
- •Комментарии
- •Отступы и пробелы
- •Переменные Объявление
- •Видимость переменных
- •Присваивание
- •Объекты
- •Условные операторы
- •Цикл с переменной
- •Циклы с условием
- •Перечисление свойств
- •Управление циклом
- •Лабораторная работа №1 «Знакомство с ActionScript» Панель Actions
- •Инструменты работы с кодом
- •Управление проигрыванием. Кнопки Команды управления
- •Скопируйте файл ship.Fla из папки лр1 в свою папку и в дальнейшем работайте только с ним!
- •Реакции на события
- •Метки кадров
- •Адреса: дети, родители и корень
- •Абсолютные адреса
- •Относительные адреса
- •Индивидуальное задание
- •Лабораторная работа №2 «Свойства и события клипа»
- •Свойства
- •Типы объектов
- •Обработчики событий
- •Применение события клипа
- •Присутствие: onClipEvent (load)
- •Отсутствие: onClipEvent (unLoad)
- •Движущая сила: onClipEvent (enterFrame)
- •Перемещение: onClipEvent (mouseMove)
- •Применение методов как обработчиков событий
- •Свойства объектов
- •События клипа
- •События мыши
- •Перетаскивание
- •События клипа
- •Отличие кнопки от клипа
- •Обработка событий мыши и клавиатуры
- •Функции
- •Типы функций
- •Защита паролем
- •Индивидуальное задание
- •Лабораторная работа №3 «Использование объектов среды Flash» Глобальный объект Key
- •Самостоятельное задание
- •Работа с текстом (String, Selection) Объект String — строка
- •Объект Selection
- •Использование объекта Color
- •Массивы Основные понятия
- •Копирование
- •Многомерные массивы
- •Методы для работы с массивами
- •Работа с массивами
- •Дата и время Объект Date
- •Периодический вызов функции
- •Индивидуальное задание
- •Лабораторная работа № 4 «Организация одномерного движения объектов» Математические функции
- •Одномерное движение
- •Движение на плоскости Равномерное движение
- •Неравномерное движение
- •Организация отскока объектов Одномерное движение
- •Индивидуальное задание
- •Лабораторная работа № 5«Организация движения объектов по наклонной плоскости»
- •Векторы
- •Отскок от наклонной плоскости
- •Шарик в кольце
- •Маятник
- •Загрузка символа из библиотеки
- •Определение границ клипа
- •Точка и клип Вторая форма hitTest
- •Трассировка растровых рисунков
- •Точки вдоль границы
- •Сложная фигура и клип Два подхода
- •Цикл по всем дочерних объектов
- •Локальные и глобальные координаты
- •Обработка события для звука
- •Загрузка фильмов
- •Использование Переменных
- •Локальные переменные
- •Типы функций
- •Обработчики событий
- •Описание проекта
- •Загрузка Flash-фильмов
- •Работа с рисунками
- •Увеличение рисунка
- •Маски клипов
- •Звуковые файлы
- •Баннеры
- •Компоненты Обзор
- •Текстовые поля
- •Форматирование
- •Текст-ссылка
- •Работа с базой пользователей
- •Регистрация
- •Радиокнопки
- •Выпадающий список
- •Выключатели
- •Формат компонентов
- •Добавление пользователя
- •Индивидуальное задание
- •Лабораторная работа № 9 «Рисование из программы»
- •Отрезки
- •Заливки Одноцветная заливка
- •Добавление методов к MovieClip
- •Градиентная заливка
- •Квадраты
- •Двойной щелчок
- •Текстовое поле
Текст-ссылка
Для того, чтобы сделать метку-ссылку Регистрация, мы добавим новое динамическое текстовое поле и отформатируем его с помощью HTML-кода. Чтобы использовать эту возможность, нужно включить для текстового поля режим Render Text as HTML (кнопка на панели Properties).
Напомним, что все, что находится в блоке
<U>...</U>
подчеркивается, а содержимое блока
<A HREF='xxx'>...</A>
становится ссылкой на документ с именем xxx.
Для того, чтобы перейти на нужный кадр внутри документ, мы используем специальный протокол asfunction:
<A HREF='asfunction:gotoAndStop,register'>...</A>
Это означает, что после щелчка на этой метке выполняется команда
gotoAndStop ( "register" );
Заметим, что если бы мы работали со статическим текстом, можно было бы просто добавить текст
asfunction:gotoAndStop,register
в поле ссылки справа от значка на панели Properties. Однако такая ссылка не подчеркивается.
Создайте динамическое текстовое поле Регистрация. Настройте его шрифт, присвойте имя regText и разместите справа от кнопки. Включите режим Render Text as HTML (кнопка
на панели Properties). Добавьте к кадру 1 слоя Компоненты код
regText.htmlText = "<U><A HREF='asfunction:gotoAndStop,register'>" + "Регистрация</A></U>";
Проверьте работу ссылки.
Поскольку мы используем текст с HTML-форматированием, нужно записывать его не в свойство text, а в свойство htmlText. Слово Регистрация подчеркивается, при щелчке на нем выполняется переход на метку register.
Работа с базой пользователей
Мы будем хранить базу пользователей как разделяемый объект с именем userBase. Внутри этого объекта массив base хранит структуры (объекты с несколькими полями) с информацией о пользователях. Поле name каждого элемента обозначает имя, а поле pass — пароль.
В начале работы фильма создадим ссылку v на объект userBase. Написанная ниже функция findUser принимает имя пользователя как параметр и возвращает его номер в базе или -1, если он не найден (база еще не создана или пользователь не регистрировался).
Выделите кадр 1 слоя Программа и добавьте код
v = SharedObject.getLocal("userBase");
function findUser ( name ) {
if ( v.data.base == undefined ) return -1;
users = v.data.base;
for(i=0; i<users.length; i++)
if ( users[i].name == name ) return i;
return -1;
}
Если база не создана, значение v.data.base будет равно undefined, и функция возвращает -1. Для массива вводится имя users (чтобы сократить запись) и перебираются все его элементы. Если имя пользователя совпадает с именем в одном из элементов массива, возвращается его номер. Если весь массив проверен и совпадений не обнаружено, возвращается -1 (последняя строчка в функции).
Напишем еще одну функцию для проверки правильности ввода имени и пароля.
Добавьте к кадру 1 код функции
function checkPass ( name, pass ) {
var no = findUser(name);
if ( no < 0 ) return false;
return (v.data.base[no].pass == pass);
}
Функция принимает два параметра (имя и пароль) и возвращает true, если пользователь опознан, и false, если нет. Последняя строчка означает «определить истинность условия v.data.base[no].pass == pass и вернуть это значение как результат».
Теперь добавим код к кнопке Войти. Если пользователь не опознан, сообщение об ошибке (поле errInfo) становится видимым, иначе происходит переход к основной части фильма на метку main.
Выделите кнопку Войти и добавьте к ней код
on ( click ) {
with ( _root ) {
if ( ! checkPass(name.text, pass.text) )
errInfo._visible = true;
else gotoAndStop("main");
}
}
Проверьте, появляется ли сообщение об ошибке.
Здесь используется блок
with ( _root ) {
...
}
который говорит о том, что все имена элементов и функций относятся к главному монтажному столу, а не к компоненту-кнопке.