Оглавление
 Предисловие 16
 Введение 19
 Для новичков 19
 Профессиональное руководство 20
 Структура книги 20
 Чего нет в этой книге 21
 Привязка к среде разработки 21
 Обзор языка ActionScript 21
 Файлы примеров 26
 Использование примеров кода 26
 Соглашения об обозначениях 27
 Как с нами связаться 28
 Safari®
 Enabled 29
 Благодарности 30
 От издательства 34
 Часть I ActionScript с нуля
 Глава 1 Основные понятия 36
 Инструменты для написания кода на языке ActionScript 36
 Клиентские среды выполнения Flash 37
 Компиляция 38
 Краткий обзор 39
 Классы и объекты 39
 Создание программы 41
 Пакеты 42
 Описание класса 44
 Краткий обзор приложения «Зоопарк» 47
 Методы-конструкторы 48
 Создание объектов49
 Переменные и значения538 Оглавление
 Параметры и аргументы конструктора 58
 Выражения 61
 Присваивание одной переменной значения другой переменной 62
 Переменная экземпляра для нашего животного65
 Методы экземпляра 65
 Члены и свойства 77
 Обзор программы по созданию виртуального зоопарка 77
 Глава 2 Условные операторы и циклы 80
 Условные операторы 80
 Циклы 86
 Булева логика 94
 Возвращение к классам и объектам 99
 Глава 3 Пересмотр методов экземпляра  100
 Исключение ключевого слова this  101
 Связанные методы  103
 Использование методов для получения и изменения состояния объекта  105
 Get- и set-методы  110
 Обработка неизвестного количества параметров  113
 Далее: информация и поведение на уровне класса  114
 Глава 4 Статические переменные и методы  115
 Статические переменные  115
 Константы  118
 Статические методы  120
 Объекты Class  123
 Сравнение c терминологиями языков C++ и Java  124
 К функциям  125
 Глава 5 Функции  126
 Функции уровня пакета  127
 Вложенные функции  129
 Функции уровня исходного файла  130
 Доступ к описаниям из функции  131
 Функции в качестве значений  132
 Синтаксис литералов функций 132
 Рекурсивные функции  134
 Использование функций в программе «Зоопарк»  136
 Обратно к классам  140
 Глава 6 Наследование  141
 Пример наследования  141
 Перекрытие методов экземпляра  145Оглавление 9
 Методы-конструкторы в подклассах  149
 Исключение возможности расширения классов и перекрытия методов  153
 Создание подклассов внутренних классов  154
 Теория наследования  155
 Отсутствие поддержки абстрактных классов и методов  162
 Применение наследования в программе по созданию
 виртуального зоопарка 162
 Код программы Virtual Zoo  168
 Первый запуск!  171
 Глава 7 Компиляция и выполнение программы  172
 Компиляция с помощью среды разработки Flash  172
 Компиляция с помощью приложения Flex Builder  173
 Компиляция с помощью компилятора mxmlc  175
 Ограничения компиляторов  176
 Процесс компиляции и путь к классам  176
 Строгий режим компиляции в сравнении со стандартным режимом  177
 Далее: типы данных 179
 Глава 8 Типы данных и проверка типов  180
 Типы данных и аннотации типов  181
 Нетипизированные переменные, параметры, возвращаемые значения 
 и выражения  185
 Три особых случая строгого режима 186
 Предупреждения об отсутствующих аннотациях типов  188
 Выявление ошибок обращения на этапе компиляции  189
 Приведение типов  189
 Преобразование в примитивные типы  194
 Значения переменных по умолчанию  197
 Значения null и undefined  197
 Типы данных в программе по созданию виртуального зоопарка  198
 Далее: дополнительное изучение типов данных  202
 Глава 9 Интерфейсы  203
 Аргумент в пользу интерфейсов  203
 Интерфейсы и классы с несколькими типами данных  205
 Синтаксис и использование интерфейсов  206
 Другой пример использования составных типов  210
 Впереди еще много важного  216
 Глава 10 Инструкции и операторы  217
 Инструкции  217
 Операторы  219
 Далее: управление списками данных  22810 Оглавление
 Глава 11 Массивы  229
 Что такое массив?  229
 Анатомия массива  229
 Создание массивов  230
 Обращение к элементам массива  232
 Определение размера массива  234
 Добавление элементов в массив  236
 Удаление элементов из массива  241
 Проверка содержимого массива с помощью метода toString( )  243
 Многомерные массивы  244
 Переходим к событиям  245
 Глава 12 События и обработка событий  246
 Основы обработки событий в ActionScript  246
 Обращение к объекту получателя  254
 Обращение к объекту, зарегистрировавшему приемник  256
 Отмена стандартного поведения событий  258
 Приоритет приемника события  259
 Приемники событий и управление памятью  261
 Пользовательские события  267
 Недостаток проверки типов в событийной модели языка
 ActionScript  280
 Обработка событий между границами зон безопасности  282
 Что дальше?  287
 Глава 13 Обработка исключений и ошибок  288
 Механизм обработки исключений  288
 Обработка нескольких типов исключений  291
 Передача исключений вверх по иерархии объектов 301
 Блок finally  306
 Вложенные исключения  309
 Изменение хода выполнения программы в инструкции
 try/catch/finally  313
 Обработка предопределенного исключения  315
 Впереди еще одна скучная работа  316
 Глава 14 Сборка мусора  317
 Доступность объектов для сборки мусора  317
 Алгоритм поэтапных пометок и вычищений  320
 Намеренное освобождение объектов  321
 Деактивация объектов  323
 Сборка мусора в действии  325
 К задворкам языка ActionScript  326Оглавление 11
 Глава 15 Динамические возможности языка ActionScript  328
 Динамические переменные экземпляра  329
 Динамическое добавление нового поведения в экземпляр  333
 Динамические обращения к переменным и методам  335
 Использование динамических переменных экземпляра для создания 
 справочных таблиц  336
 Использование функций для создания объектов  339
 Использование объектов-прототипов для дополнения классов  341
 Цепочка прототипов  342
 Вперед!  344
 Глава 16 Область видимости  345
 Глобальная область видимости  346
 Область видимости класса  347
 Область видимости статического метода  348
 Область видимости метода экземпляра  349
 Область видимости функции  349
 Обзор областей видимости  350
 Детали реализации  351
 Расширение цепочки областей видимости с помощью оператора with  352
 К пространствам имен  353
 Глава 17 Пространства имен  354
 Словарь пространств имен  354
 Пространства имен в языке ActionScript  355
 Создание пространств имен  357
 Использование пространств имен для уточнения определений
 переменных и методов  360
 Уточненные идентификаторы  363
 Функциональный пример использования пространств имен  365
 Доступность пространств имен  368
 Видимость уточненных идентификаторов  372
 Сравнение уточненных идентификаторов 374
 Присваивание и передача значений пространств имен 375
 Пример использования значения пространства имен  377
 Открытые пространства имен и директива use namespace  387
 Пространства имен для модификаторов управления доступом  391
 Практические примеры использования пространств имен  394
 Последние основные темы  406
 Глава 18 Язык XML и расширение E4X  407
 Данные XML в виде иерархии  407
 Представление данных XML в расширении E4X  40912 Оглавление
 Создание данных XML с помощью расширения E4X  411
 Обращение к данным XML  413
 Обработка данных XML с помощью циклов for-each-in и for-in  432
 Обращение к потомкам  434
 Фильтрация данных XML  438
 Обход деревьев XML  441
 Изменение или создание нового содержимого XML  442
 Загрузка XML-данных  452
 Использование пространств имен XML  454
 Преобразование объектов XML и XMLList в строки  460
 Определение равенства в расширении E4X  463
 Дальнейшее изучение  466
 Глава 19 Ограничения безопасности Flash Player  467
 Чего нет в этой главе  468
 Локальная область действия, удаленная область действия
 и удаленные регионы  468
 Типы безопасности песочниц  469
 Обобщения в вопросах безопасности вредны 471
 Ограничения на загрузку содержимого, обращение к содержимому
 в виде данных, кросс-скриптинг и загрузка данных  472
 Безопасность сокетов  479
 Примеры сценариев безопасности  480
 Выбор локального типа безопасности песочницы  483
 Разрешения распространителя (файлы политики безопасности)  488
 Разрешения создателя (allowDomain( ))   504
 Импортирующая загрузка  506
 Обработка нарушений безопасности  508
 Домены безопасности  511
 Две распространенные проблемы разработки, связанные
 с безопасностью  513
 К части II!  515
 Часть II Отображение и интерактивность
 Глава 20 API отображения и список отображения  518
 Обзор API отображения  519
 Список отображения  523
 Контейнеры и глубины  530
 События контейнеров  549
 Пользовательские графические классы  561
 Переходим к цепочке диспетчеризации событий  563Оглавление 13
 Глава 21 События и иерархии отображения  564
 Иерархическая диспетчеризация событий  564
 Фазы диспетчеризации событий  565
 Приемники событий и цепочка диспетчеризации событий  566
 Использование цепочки диспетчеризации событий
 для централизации кода  574
 Определение текущей фазы события  577
 Отличие событий, получателем которых является некий объект,
 от событий, получателями которых являются его потомки  580
 Остановка процесса диспетчеризации события  581
 Приоритет и цепочка диспетчеризации событий  586
 Изменение иерархии отображения и цепочка диспетчеризации
 событий  587
 Пользовательские события и цепочка диспетчеризации события  590
 Переходим к событиям ввода  595
 Глава 22 Интерактивность  596
 События мыши  597
 События фокуса  614
 События ввода с клавиатуры  621
 События текстового ввода  631
 События ввода уровня приложения Flash Player  646
 Из программы на экран  652
 Глава 23 Обновления экрана  653
 Запланированные обновления экрана  653
 Постсобытийные обновления экрана  663
 Область перерисовки 667
 Оптимизация с использованием события EventRENDER  667
 Заставим его двигаться!  676
 Глава 24 Программная анимация  677
 Никаких циклов  677
 Создание анимации с помощью события ENTER_FRAME  678
 Создание анимации с использованием события TimerEventTIMER  684
 Выбор между классом Timer и событием EventENTER_FRAME  690
 Обобщенный класс Animator  691
 Анимация, основанная на скорости  695
 Переходим к контурам и заливкам  697
 Глава 25 Рисование с помощью векторов  698
 Обзор класса Graphics  698
 Рисование линий 69914 Оглавление
 Рисование кривых  702
 Рисование фигур  703
 Удаление векторного содержимого  705
 Пример: библиотека объектно-ориентированных фигур  706
 От линий к пикселам  716
 Глава 26 Программирование растровой графики  717
 Классы BitmapData и Bitmap  718
 Значения цвета пикселов  718
 Создание нового растрового изображения  723
 Загрузка внешнего растрового изображения  725
 Анализ растрового изображения  727
 Внесение изменений в растровое изображение  734
 Копирование графики в объект BitmapData  742
 Применение фильтров и эффектов  757
 Освобождение памяти, занимаемой растровыми изображениями  765
 Слова, слова, слова  766
 Глава 27 Отображение и ввод текста  767
 Создание и отображение текста  769
 Изменение содержимого текстового поля  776
 Форматирование текстовых полей  779
 Шрифты и отображение текста  808
 Отсутствующие шрифты и глифы  822
 Определение доступности шрифта  823
 Определение доступности глифа  825
 Отображение текста с помощью встраиваемых шрифтов  826
 Ввод через текстовые поля  829
 Текстовые поля и среда разработки Flash  834
 Загрузка… Пожалуйста, подождите… 835
 Глава 28 Загрузка внешних отображаемых элементов  836
 Использование класса Loader для загрузки отображаемых элементов
 на этапе выполнения  837
 Проверка типов на этапе компиляции для динамически загружаемых 
 элементов  857
 Обращение к элементам в многокадровых SWF-файлах  867
 Создание экземпляра элемента, загружаемого на этапе выполнения  870
 Использование сокетов для загрузки отображаемых элементов на этапе 
 выполнения  873
 Удаление SWF-элементов, загруженных на этапе выполнения  883
 Встраивание отображаемых элементов на этапе компиляции  885
 К части III  897Оглавление 15
 Часть III Практическое применение ActionScript
 Глава 29 Язык ActionScript и среда разработки Flash  900
 Документ Flash  900
 Временные шкалы и кадры  901
 Создание сценариев на временной шкале  905
 Класс документа  907
 Символы и экземпляры  911
 Связанные классы для символов Movie Clip (Клип)  913
 Обращение к созданным вручную экземплярам символов  917
 Обращение к созданному вручную тексту  924
 Программное управление временной шкалой  925
 Создание экземпляров символов среды разработки Flash из кода
 на языке ActionScript  926
 Имена экземпляров для отображаемых объектов, создаваемых
 программным путем  927
 Связывание нескольких символов с одним суперклассом  928
 Композиционный подход как альтернатива связанным классам  931
 Предварительная загрузка классов  932
 Далее в программе: использование платформы разработки Flex  935
 Глава 30 Минимальное приложение на языке MXML  936
 Общий подход  936
 Реальный пример применения компонентов пользовательского
 интерфейса  939
 Передача кода вашим друзьям  940
 Глава 31 Распространение библиотеки классов  941
 Совместное использование исходных файлов классов  941
 Распространение библиотеки классов в виде SWC-файла  943
 Распространение библиотеки классов в виде SWF-файла  948
 Неужели на этом все закончится?  954
 Приложение Окончательная версия программы «Зоопарк»  956
 Алфавитный указатель  972