Читать онлайн «Web-программирование. Серверный ActionScript / Учебное пособие.»

Автор Штенников Д.Г.

Министерство образования и науки Российской Федерации Федеральное агентство по образованию Санкт-Петербургский государственный университет информационных технологий, механики и оптики Д. Г. Николаев, Д. Г. Штенников Web-программирование. Серверный ActionScript Учебное пособие Санкт-Петербург 2006 УДК 681. 3 Николаев Д. Г. , Штенников Д. Г. Web-программирование. Серверный ActionScript. Учебное пособие. – СПб. , 2006. - 116 с. Рецензенты: Л. С. Лисицына, к. т. н. , доцент, зав. каф. КОТ СПбГУ ИТМО, А. А. Бобцов, к. т. н. , доцент каф. СУиИ СПбГУ ИТМО Учебное пособие подготовлено на кафедре «Компьютерные образовательные технологии» (КОТ) факультета ИТиП СПбГУИТМО и предназначено для студентов специальностей 230202 – «Информационные технологии в образовании» и 230201 – «Информационные системы и технологии», изучающих курс «Web-программирование», а также для разработчиков Интернет-ресурсов, слушателей курсов повышения квалификации учителей информатики и информационных технологий. Пособие служит руководством к выполнению лабораторных работ по курсу. Практикум формирует навыки разработки и использования серверных приложений, применяемых при создании мультимедийных и интерактивных образовательных интернет- ресурсов. Печатается по решению УМС факультета ИТиП СПбГУ ИТМО, протокол № 2 от 26. 09. 2006. © Санкт-Петербургский государственный университет информационных технологий, механики и оптики, 2006 © Николаев Д. Г. , Штенников Д. Г. , 2006 2 Оглавление Лабораторная работа №1: Создание приложения ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 7 Клиенты и Серверы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 7 Создание Приложения... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 9 Протокол обмена сообщениями в реальном времени ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 9 FlashCom Против Традиционных Media серверов. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 10 Классы Соединения ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 11 Соединение с сервером. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 11 Передача Аудио, Видео, и ActionScript данных ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 11 Камера, Микрофон, и Видео ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 12 Совместное использование Данных в Реальном времени ... ... ... ... ... ... ... ... ... ... ... . . 12 Клиент и Прикладные Объекты ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 14 Удаленные Методы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 14 Соединение с Серверами приложений, Базами данных, и серверными Каталогами ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 15 Аппаратно-программные средства межсетевой защиты и Безопасность ... ... ... ... . . 16 Подготовка к работе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 17 Установка FlashCom: ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 17 Admin Service, Administration Console, и App Inspector ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 18 Привет Видео (helloVideo) ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 18 Установка helloVideo на Сервере ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 18 Создание helloVideo Клиента во Flash ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 20 Создание интерфейса пользователя ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 21 Создание интерфейса: ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 21 Установки NetConnection и просмотр его состояния ... ... ... ... ... ... ... ... ... ... ... ... ... 23 Создание подключения ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 24 Показ удаленных пользователей ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 25 Заключение ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 27 Лабораторная работа №2: Компоненты соединения (Communication components) . . 27 Обзор компонентов соединения ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 27 Требования со стороны сервера ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 29 Общие методы компонентов соединения... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 30 init() ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 30 connect() ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 31 close() ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 31 onUnload() ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 31 setUsername() ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 31 Сведение воедино компонентов соединения ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 31 AudioConference ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 32 Вложенные компоненты Flash UI ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 33 Обзор действий компонента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 33 AVPresence ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 33 Клиентские параметры компонента... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 34 Sync Speed... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 34 Video Width... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 34 Video Height ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 34 Video Bandwidth ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 35 Video Quality... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 35 Video FPS ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 35 Обзор действий компонента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 35 Chat ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 36 3 Вложенные компоненты Flash UI ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 36 Обзор действий компонента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 36 Конфигурируемые атрибуты стороны сервера ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 37 ConnectionLight ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 37 Серый (grey) ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 37 Зеленый (green) ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 37 Красный (red) ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 37 Желтый (yellow) ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 38 Latency ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 38 Up ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 38 Down... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 38 Параметры компонента со стороны клиента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 38 Measurement Interval ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 38 Latency Threshold ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 39 Как работает компонент ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 39 Возможности ConnectionLight без SimpleConnect ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 39 Cursor ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 39 Как работает компонент ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 40 PeopleList ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 40 Вложенные компоненты Flash UI ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 40 Обзор действий компонента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 40 Что такое пассивный режим? ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 41 PresentationSWF ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 41 Вложенные компоненты Flash UI ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 42 Параметры компонента со стороны клиента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 42 PresentationSWF ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 42 Viewer Buttons Enabled ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 42 Обзор действий компонента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 42 Content Movie ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 42 Speaker Movie ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 42 Viewer Movie ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 42 PresentationText ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 43 Вложенные компоненты Flash UI ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 43 Параметры компонента со стороны клиента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 44 Speaker Mode ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 44 Как работает компонент ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 44 RoomList ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 44 Вложенные компоненты Flash UI ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 45 Параметры компонента со стороны клиента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 45 Room Application Path... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 45 Обзор действий компонента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 45 SetBandwidth ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 46 Вложенные компоненты Flash UI ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 47 Параметры компонента со стороны клиента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 47 Обзор действий компонента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 48 SimpleConnect ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 49 Вложенные компоненты Flash UI ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 49 Параметры компонента со стороны клиента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 49 Application Directory ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 49 Communication Components ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 49 Как работает компонент ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 50 UserColor ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 50 4 Вложенные компоненты Flash UI ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 50 Как работает компонент ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 50 VideoConference ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 51 Вложенные компоненты Flash UI ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 51 Параметры компонента со стороны клиента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 51 Show Boundary ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 52 Show Background ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 52 Clip Mask... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 52 Drag Sharing ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 52 Обзор действий компонента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 52 VideoPlayback ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 52 Вложенные компоненты Flash UI ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 53 Параметры компонента со стороны клиента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 53 Default Stream Name ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 53 Buffer Time ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 53 Обзор действий компонента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 53 VideoRecord ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 54 Вложенные компоненты Flash UI ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 54 Параметры компонента со стороны клиента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 55 Default Stream Name ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 55 Default Settings ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 55 Buffer Time ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 55 High Quality Settings, Medium Quality Setting, и Low Quality Settings ... ... ... ... 55 Обзор действий компонента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 55 Whiteboard ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 56 Move/Transform tool ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 56 Text tool ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 56 Text Box tool ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 56 End Arrow Line tool ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 56 Start Arrow Line tool ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 56 Dual Arrow Line tool... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 56 Color menu ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 56 Expand/Collapse button ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 56 Вложенные компоненты Flash UI ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 57 Как работает компонент ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 57 Создание приложения, отслеживающего соединение ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 57 Создание папки FlashCom Application и серверного приложения ... ... ... ... ... ... ... . 57 Создание клиентского Flash приложения... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 57 Создание простого чата... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 58 Добавление аудио и видео к чату ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 60 Отказ от компонента SimpleConnect ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 61 Создание клиентской части ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 61 Заключение ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 62 Лабораторная работа №3: Управление соединениями ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 62 Создание подключения ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 63 Абсолютные URI ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 63 Протокол ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 63 Хост и порт ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 64 Имя приложения ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 65 Имя экземпляра ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 65 Относительные URI ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 65 Ожидание соединения ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 66 5 Управление соединением ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 68 Успешное подключение ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 68 Решение проблем ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 68 Закрытие соединения со стороны клиента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 69 Использование соединения ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 71 Повторное использование объекта NetConnection ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 72 Многочисленные одновременные объекты NetConnection ... ... ... ... ... ... ... ... ... ... ... ... . 74 Тестирование и отладка сетевых подключений ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 75 Тестирование клиентского ролика ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 75 Использование отладчика NetConnection ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 75 Подклассификация класса NetConnection ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 76 Компоненты связи без SimpleConnect ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 83 Создание приложения на сервере ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 83 Формирование клиента ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 85 Заключение ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 90 Лабораторная работа №4: Приложения, экземпляры и серверные сценарии... ... ... ... 90 Написание экземпляров приложений ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 90 Экземпляры и источники ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 91 Конфликты имен ресурсов... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 93 Различия между Flash ActionScript и Server-Side ActionScript ... ... ... ... ... ... ... ... ... ... . . 94 Чувствительность к регистру ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 94 Наследование ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 95 Однократное выполнение контекста ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 96 Доступ к неопределенным переменным (undefined) ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 96 Операторы try/catch/finally ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 97 #include и import в сравнении с load() ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 98 Работа экземпляров приложения ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 98 Запуск ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 99 Стадии запуска: ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 99 Середина жизни ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 99 Остановка ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 99 Тестовый запуск простого сценария ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 100 application. onAppStart() ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 101 application. onStatus() ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 101 application. onConnect()... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 101 application. onDisconnect() ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 102 application. onAppStop() ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 102 Использование App Inspector для запуска сценариев ... ... ... ... ... ... ... ... ... ... ... ... ... . 102 Более реалистичный пример... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 105 Аутентификация и настройка ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 106 Использование объекта Client. prototype ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 107 Ограничение числа подключений клиентов ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 108 Выполнение периодических обновлений при помощи setInterval() ... ... ... ... ... . . 108 Обмен информацией между экземплярами... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 109 Имя сценария и их расположение ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 111 Главный файл сценария приложения ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 111 Использование load() для присоединения других сценариев ... ... ... ... ... ... ... ... ... . 111 Динамическая загрузка файлов сценария ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 112 Тестирование и отладка серверных файлов сценария ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 113 Организация тестовых сценариев ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 114 Разработка взаимодействующих приложений ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 114 Заключение ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . . 115 6 Лабораторная работа №1: Создание приложения В прошлой части методического пособия были рассмотрены вопросы, касаемые клиентского программирования на ActionScript.