ActionScript 2.0 для Macromedia Flash 8. Фирменное руководство от Macromedia

deHaan Peter, deHaan Jen

Введение
Целевая аудитория
Системные требования
Обновление XML-файлов Flash
Документация
Обзор книги
Условные типографские обозначения
Термины, используемые в данном документе
Копирование и вставка кода
Дополнительные источники
Файлы примеров
Где найти PDF-файлы или печатную документацию
Проект LiveDocs
Дополнительные онлайновые ресурсы
Где найти документацию по другим темам

ГЛАВА 1. Новое в языке ActionScript программы Flash 8
Новое в языке ActionScript 2.0 и программе Flash 8
Дополнения языка ActionScript
Устаревшие элементы языка
Изменения в редакторе языка ActionScript
Изменения в модели безопасности для локально установленных SWF-файлов

ГЛАВА 2. Создание и редактирование кода ActionScript 2.0
Язык ActionScript и события
События мыши и клавиатуры
События клипа
События кадра
Организация кода ActionScript
Создание скриптов для обработки событий
Использование панели Actions (Команды) и окна Script (Скрипт)
Панель Actions (Команды)
Окно Script (Скрипт)
Программирование на панели Actions (Команды) и в окне Script (Скрипт)
Панели инструментов окна Script (Скрипт) и панели Actions (Команды)
Возможности редактора ActionScript
Параметры языка ActionScript
Подсказки кода в программе Flash
Вызов подсказок кода
Использование подсказок кода
Типизация объектов для вызова подсказок кода
Использование суффиксов для вызова подсказок кода
Использование комментариев для вызова подсказок кода
Форматирование кода
Использование выделения синтаксиса
Нумерация строк и перенос слов
Использование горячих клавиш
Отображение скрытых символов
Использование инструмента Find (Поиск)
Проверка синтаксиса и пунктуации
Импорт и экспорт скриптов
Поддержка кодировки Unicode для языка ActionScript
Параметры импорта и экспорта
Функциональные возможности панели Actions (Команды)
Режим помощника (Script Assist)
Закрепление скриптов на панели Actions (Команды)
Вставка адресов объектов
Поведения
Параметры публикации кода на языке ActionScript
Изменение параметров публикации кода на языке ActionScript
Изменение пути классов
Конфигурационные файлы, устанавливаемые вместе с программой Flash 8

ГЛАВА 3. Язык ActionScript
Возможности языка ActionScript
Выбор между версиями 1.0 и 2.0 языка ActionScript
Язык ActionScript и проигрыватель Flash Player

ГЛАВА 4. Данные и типы данных
Данные
Типы данных
Простые и сложные типы данных
Присваивание типов данных и строгая типизация
Определение типа данных
Переменные
Объявление переменных
Значения по умолчанию
Присваивание значений
Операторы и переменные
Именование переменных
Использование переменных в приложении
Переменные и область видимости
Загрузка переменных
Использование переменных в проекте
Организация данных в объектах
Приведение типов данных
Приведение типов объектов

ГЛАВА 5. Синтаксис и основы языка
Синтаксис, инструкции и выражения
Различия между языками ActionScript и JavaScript
Чувствительность к регистру
Точечный синтаксис и целевые пути
Использование точечного синтаксиса для адресации целевого экземпляра
Область видимости и определение целевых экземпляров
Использование кнопки Insert a Target Path (Вставить цель)
Синтаксис написания через слэш
Знаки пунктуации языка
Точки с запятой и двоеточия
Фигурные скобки
Круглые скобки
Литералы
Комментарии
Константы и ключевые слова
Использование констант
Ключевые слова
Зарезервированные слова
Инструкции
Составные инструкции
Условия
Повторение действий с помощью циклов
Массивы
Использование массивов
Создание индексированных массивов
Создание многомерных массивов
Создание ассоциативных массивов
Операторы
Использование операторов для работы со значениями
Приоритеты и ассоциативность операторов
Использование операторов со строками
Использование оператора "точка" и оператора доступа к массиву
Постфиксные операторы
Унарные операторы
Мультипликативные операторы
Аддитивные операторы
Использование числовых операторов
Операторы отношения
Операторы равенства
Использование операторов отношения и равенства
Операторы присваивания
Использование операторов присваивания
Логические операторы
Использование логических операторов
Операторы побитового сдвига
Побитовые логические операторы
Использование побитовых операторов
Условный оператор
Использование операторов в документе

ГЛАВА 6. Функции и методы
Функции и методы
Типы методов и функций
Определение глобальных функций и функций шкалы времени
Целевые пути и вызов функций, определенных пользователем
Именование функций
Использование функций в приложениях Flash
Использование переменных в функциях
Передача параметров в функцию
Возвращение значений из функций
Вложенные функции
Работа с методами
Именование методов

ГЛАВА 7. Классы
Объектно-ориентированное программирование и Flash
Зачем использовать классы
Пакеты
Значения и типы данных
Основы объектно-ориентированного программирования
Написание файлов пользовательского класса
Работа с пользовательскими классами в приложении
Импорт файлов класса
Установка и изменение пути к классу
Как компилятор разрешает ссылки класса
Использование файла класса в среде Flash
Применение методов и свойств из файла класса
Члены класса
Методы-получатели и методы-установщики
Динамические классы
Применение инкапсуляции
Использование ключевого слова this в классах
Пример: Написание пользовательских классов
Общие рекомендации для создания класса
Создание и упаковка файлов класса
Написание функции-конструктора
Добавление методов и свойств
Управление доступом к членам класса
Документирование классов
Пример: Применение файлов пользовательских классов в среде Flash
Импорт классов и пакетов
Создание экземпляров классов в примере
Назначение класса эталонам в среде Flash
Компиляция и экспорт классов
Применение файлов ASO
Понятие области определения классов
Высокоуровневые и встроенные классы
Другие элементы языка
Высокоуровневые классы
Пакет flash.display
Пакет flash.external
Пакет flash.filters
Пакет flash.geom
Пакет flash.net
Пакет flash.tex
Пакет mx.lang
Пакеты System и TestField
Работа со встроенными классами
Создание нового экземпляра встроенного класса
Доступ к свойствам встроенного объекта
Вызов методов встроенного объекта
Члены класса (статические члены)
Исключение классов
Предварительная загрузка файлов класса

ГЛАВА 8. Наследование
О наследовании
Написание подклассов в среде Flash
Написание подкласса
Пример: Расширение класса Widget
Переопределение методов и свойств
Применение полиморфизма в приложении

ГЛАВА 9. Интерфейсы
Об интерфейсах
Ключевое слово interface
Именование интерфейсов
Определение и реализация интерфейсов
Создание интерфейсов как типов данных
Понятие наследования и интерфейсы
Пример: Использование интерфейсов
Пример: Создание сложного интерфейса

ГЛАВА 10. Обработка событий
Применение методов-обработчиков событий
Применение слушателей событий
Модель слушателя событий
Пример слушателя событий
Применение слушателей событий с компонентами
Применение обработчиков событий кнопок и клипов
Применение методов on и onClipEvent с методами-обработчиками событий
Задание событий для методов on и onClipEvent
Привязка или назначение нескольких обработчиков одному объекту
Передача событий от экземпляров компонентов
Создание клипов с состояниями кнопок
Область определения обработчика событий
Область определения ключевого слова this
Применение класса Delegate

ГЛАВА 11. Работа с клипами
Управление клипами с помощью кода ActionScript
Вызов нескольких методов в одном клипе
Загрузка и выгрузка файлов SWF
Указание корневой шкалы времени для загружаемых файлов SWF
Загрузка в клипы файлов изображений
Изменение позиции и внешнего вида клипа
Перетаскивание клипов
Создание клипов во время выполнения
Создание пустого клипа
Дублирование или удаление клипа
Привязка эталона клипа к сцене
Добавление параметров к динамически создаваемым клипам
Управление глубиной клипа
Определение следующей максимальной доступной глубины
Определение экземпляра с данным значением глубины
Определение глубины экземпляра
Обмен глубины клипов
Кэширование и прокрутка клипов с помощью кода ActionScript
Когда включать кэширование
Кэширование клипа
Задание фона для клипа
Применение клипа как маски
Маскировка шрифтов устройства
Маскировка альфа-канала
Обработка событий клипа
Назначение класса эталону клипа
Инициализация свойств класса

ГЛАВА 12. Работа с текстом и строками
Текстовые поля
Применение класса TextField
Назначение текста текстовому полю во время выполнения
Имена экземпляров текстовых полей и переменных
Создание текстовых полей во время выполнения
Управление текстовыми полями
Загрузка текста и переменных в текстовые поля
Загрузка и отображение текста с помощью FlashVars
Загрузка и отображение текста с помощью LoadVars
Загрузка переменных с помощью класса LoadVars
Загрузка и отображение текста из документа XML
Применение шрифтов
Внедрение символов
Внедрение шрифтов
Создание пользовательских наборов символов
Применение методов класса TextField с внедренными шрифтами
Общие шрифты
Отображение шрифта и сглаженный текст
Настройки отображения текста в среде Flash
Непрерывная модуляция контура
Установка сглаживания с помощью кода ActionScript
Установка таблиц для шрифтов
Вывод и форматирование текста
Форматирование сглаженного текста
Применение привязки текста к сетке
Применение класса TextFormat
Свойства по умолчанию для нового текстового поля
Форматирование текста с помощью таблиц CSS
Поддерживаемые свойства CSS
Создание объекта таблицы стилей
Загрузка внешних файлов CSS
Создание новых стилей в коде ActionScript
Применение стилей к объекту TextField
Применение таблицы стилей к компоненту TextArea
Комбинирование стилей
Применение классов стилей
Использование стилей со встроенными тегами HTML
Пример использования стилей с HTML
Применение стилей для определения новых тегов
Пример использования стилей с XML
Использование текста с разметкой HTML
Свойства и синтаксис, которые используются для текста с разметкой HTML
Поддерживаемые теги HTML
Поддерживаемые сущности HTML
Внедренные изображения, файлы SWF и клипы в текстовых полях
Пример: Создание текста с прокруткой
Строки и класс String
Панель Strings (Строки)
Применение класса Locale
Применение редактора способов ввода
Класс String
Создание строк
Экранирующий символ
Анализ и сравнение символов в строках
Преобразование и слияние строк
Возвращение подстрок

ГЛАВА 13. Анимация, рисунки и фильтры
Создание анимации средствами ActionScript 2.0
Об анимации и частоте кадров
Изменение прозрачности объектов при помощи кода
Добавление эффектов цвета и яркости при помощи кода
Перемещение объектов при помощи кода
Панорамирование изображения при помощи кода
О кэшировании, прокрутке и производительности растровых изображений
О классах Tween и TransitionManager
Добавление в файл анимации и переходов (только Flash Professional 8)
Создание анимаций с помощью классов Tween и TransitionManager
О классах и методах настройки плавности
О классе Tween
Использование класса Tween
Комбинирование классов Tween и TransitionManager
Использование фильтров
Работа с пакетами фильтров
Работа с фильтрами, кэшированием и классом MovieClip
Вращение, наклон, масштабирование, и обнаружение пересечений объектов
Применение фильтров к экземплярам объектов и BitmapData
Об обработке ошибок, производительности и фильтрах
Работа с фильтрами при помощи ActionScript
Использования фильтра размытия
Использование фильтра отбрасывания тени
Использование фильтра свечения
Создание градиентного свечения
Использование фильтра фаски
О фильтре градиентной фаски
Применение фильтра градиентной фаски
Использование фильтра цветовой матрицы
Использование свёрточного фильтра
Использование фильтра карты смещения
Управление эффектами фильтров при помощи кода
Установка свойств фильтра
Анимирование фильтров при помощи ActionScript
Использование метода clone()
Создание растровых изображений при помощи класса BitmapData
О режимах смешивания
Применение режимов смешивания
О порядке действий
Рисование с использованием ActionScript
Использование методов рисования для рисования линий, кривых и фигур
Рисование особых фигур
Использование сложных градиентных заливок
Использование стилей линий
Использование методов DrawingAPI и программной анимации
Понятие масштабирования и сетка масштабирования
Принцип работы 9-секционного масштабирования
Работа с 9-секционным масштабированием при помощи ActionScript

ГЛАВА 14. Создание интерактивности средствами ActionScript
О событиях и интерактивности
Управление воспроизведением SWF-файла
Переход к кадру или сцене
Воспроизведение и остановка клипов
Переход к различным URL-адресам
Создание интерактивности и визуальных эффектов
Создание пользовательского указателя мыши
Получение положения указателя мыши
Перехват нажатий клавиш
Установка цветовых кодов
Создание средств управления звуком
Обнаружение столкновений
Создание инструмента для рисования линии
Связывание данных в рабочем цикле средствами ActionScript
Связывание компонентов пользовательского интерфейса средствами ActionScript
Использование компонентов, связей, и пользовательских средств форматирования
Связывание компонентов на сцене фильма
Анализ простого скрипта

ГЛАВА 15. Работа с изображениями, звуком и видео
О загрузке внешних данных и работе с ними
Загрузка внешних файлов SWF и файлов изображений
О загрузке файлов SWF и основной шкале времени
О загрузке и использовании внешних файлов MP3
Загрузка файла MP3
Предварительная загрузка файлов MP3
Чтение ID3-тэгов в файлах MP3
Назначение связей содержимому библиотеки
Об использовании FLV-видео
Создание видео-объекта
Динамическое воспроизведение внешних файлов FLV
Создание видео-баннера
Предварительная загрузка файлов FLV
Работа с ключевыми точками
Работа с метаданными
О настройке файла FLV для помещения на сервер
О задании путей к локальным файлам FLV в системах Macintosh
О создании анимации загрузки медиа файлов
Создание анимации индикатора завершения для загрузки файлов SWF и изображений
Создание индикатора завершения для загрузки файлов MP3 с помощью ActionScript
Создание индикатора завершения для загрузки файлов FLV с помощью ActionScript

ГЛАВА 16. Работа с внешними данными
Отправка и загрузка переменных
Контроль загруженных данных
Создание индикатора выполнения для отображения хода загрузки данных
Соединение с серверными скриптами по протоколу HTTP
Использование класса LoadVars
О загрузке и скачивании файлов
О функциональности и безопасности FileReference API
Добавление приложению функции отправки файла
О языке XML
Использование класса XML
Использование класса XMLSocket
Обмен сообщениями с помощью Flash Player
Использование функции fscommand()
Об использовании JavaScript для управления приложениями Flash
О методах программы Flash Player
Об External API
Создание интерактивности при помощи External API
Управление Flash-видео при помощи External API

ГЛАВА 17. Общие сведения о безопасности
О совместимости с моделями безопасности предыдущих версий Flash Player
О локальной файловой безопасности и программе Flash Player
Общие сведения о механизме локальной безопасности
О параметрах безопасности программы Flash Player
О локальной файловой безопасности и файлах проектора
О поиске ошибок в существующих SWF-файлах
Отладка устаревших приложений, развернутых на локальных компьютерах
Публикация файлов для локального размещения
Локальное тестирование приложений Flash 8
при наличии ограничений файловой безопасности
О доменах, междоменной безопасности и SWF-файлах
Правила доменных имён для настроек и локальных данных
Междоменный и внутридоменный доступ для SWF-файлов
Разрешение междоменного обмена данными между SWF-файлами
Серверные файлы политик для разрешения доступа к данным
Разрешение междоменной загрузки данных
О расположении пользовательских файлов политик
О файлах политик для доступа посредством XMLSocket
Перенос данных между SWF-файлами от протокола HTTP к протоколу HTTPS
Разрешение переноса данных между SWF-файлами
от протокола HTTP к протоколу HTTPS

ГЛАВА 18. Отладка приложений
Отладка скриптов
Отладка удалённого SWF-файла
Отображение и изменение переменных
Использование списка Watch (Наблюдение)
Отображение свойств клипа и изменение свойств, доступных для редактирования
Установка и удаление контрольных точек
О контрольных точках XML-файла
О построчном выполнении программы
Использование панели Output (Выход)
Отображение объектов SWF-файла
Отображение переменных SWF-файла
Об отображении свойств текстовых полей для отладки
Использование инструкции trace
Модификация программы Flash Player для отладки

ГЛАВА 19. Хороший стиль программирования и соглашения
о кодировании для языка Action Script 2.0
Соглашения об именовании
Общие рекомендации по присвоению имен
Как избежать зарезервированных слов или конструкций языка
Присвоение имен переменным
Присвоение имен константам
Присвоение имен булевым переменным
Присвоение имен функциям и методам
Присвоение имен классам и объектам
Присвоение имен пакетам
Присвоение имен интерфейсам
Присвоение имен пользовательским компонентам
Использование комментариев в вашем коде
Написание хороших комментариев
Добавление комментариев к классам
Соглашения по кодированию скриптов ActionScript
Привязка кода к объектам
Область действия
Использование свойства _lockroot
Использование ключевого слова this
Об областях действия в классах
Структурирование файла класса
Рекомендации для создания класса
Использование префикса this в файлах класса
Об инициализации
Использование инструкции trace
О префиксе super
Избегайте инструкции with
Об использовании функций
О прекращении повторений кода
Оптимизация кода ActionScript и программы Flash Player
Оптимизация кода
Форматирование элементов синтаксиса языка ActionScript
Общие рекомендации по форматированию
Запись условных операторов
Запись составных операторов
Запись оператора for
Запись операторов while и do...while
Запись инструкций return
Запись инструкций switch
Запись инструкций try…catch…finally
О синтаксисе использования обработчика событий

ПРИЛОЖЕНИЕ A. Сообщения об ошибках

ПРИЛОЖЕНИЕ B. Нежелательные операторы версии Flash4

ПРИЛОЖЕНИЕ C. Клавиши и коды клавиш

ПРИЛОЖЕНИЕ D. Написание сценариев для ранних
версий программы Flash Player

ПРИЛОЖЕНИЕ E. Объектно-ориентированное
программирование в ActionScript 1.0

ПРИЛОЖЕНИЕ F. Терминология