Опубликован: 07.11.2006 | Доступ: свободный | Студентов: 3398 / 338 | Оценка: 3.94 / 3.71 | Длительность: 37:11:00
Лекция 19:

Flash, ColdFusion и Remoting

< Лекция 18 || Лекция 19: 1234567

Удаленный сервис Flash Remoting

Flash MX шагнул далеко вперед в предоставлении средств для разработчиков Flash. Интеграция Flash с серверами приложений стала еще теснее. Macromedia разработал новую интересную возможность для интеграции: удаленный сервис Flash Remoting. Flash Remoting облегчает разработчикам передачу сложных данных на сервер и с сервера (в нашем случае это CF). Теперь Flash и CF могут легко обмениваться наборами записей и отдельными объектами. Flash Remoting не ограничивается лишь CF и доступен для таких платформ серверов приложений, как JRUN, .NET и J2EE.

Служба Flash Remoting предназначена для разработчиков, работающих с динамическим содержимым. Она позволяет осуществлять прямые вызовы к CF или любому серверу приложений, на котором выполняется служба. Это также двусторонний коммуникационный процесс, при котором данные могут передаваться из Flash на сервер. Здесь предоставляется возможность реализовать новый и улучшенный способ связи с сервером, в отличие от более старых методов, таких как getURL и loadVariables. Эти методы нисколько не устарели, однако метод для передачи сложных данных через Flash Remoting предпочтительнее. Он понятнее и также обеспечивает возможность создания компонентов многоразового использования на серверной части.

Например, нужно построить схему аутентификации, которую можно использовать в различных ситуациях. Все, что надо сделать, это построить необходимые компоненты внешнего интерфейса, а также саму систему, которая проверяет базу данных для подтверждения данного пользователя. Эти компоненты можно повторно использовать в будущих приложениях, не создавая их вновь "с чистого листа".

Связь между Flash и сервером осуществляется через шлюз Flash gateway - компонент серверной части Flash Remoting. Шлюз Flash передает данные на сервер и принимает их от него и может поддерживать сложные данные, такие как объекты и наборы записей. Наборы записей могут передаваться только с сервера во Flash, однако они примечательны тем, что хорошо структурированы и помогают максимизировать эффективность канала связи. Возможность передачи наборов записей напрямую из CF во Flash делает минимальным любой бесцельный обмен данными.

Flash Remoting передает данные между Flash и сервером через Action Message Format (AMF). AMF передается по HTTP и предоставляет более эффективные и полезные средства связи. На следующем рисунке показан процесс коммуникации между Flash и сервером приложений.

Проигрыватель Flash Player на нескольких рабочих станциях

Проигрыватель Flash Player на нескольких рабочих станциях

Передача данных осуществляется с использованием нового набора классов ActionScript, устанавливаемых вместе с Flash Remoting. Эти классы включают в себя следующие пункты.

  • NetServices - это абстракция NetConnection, предоставляющая средства коммуникации со шлюзом Flash gateway.
  • NetConnection создает двойное соединение между Flash и удаленными службами.
  • NetDebug является методом отладки приложений Flash и работает совместно с NetConnect Debugger.
  • RecordSet поддерживает объекты набора записей, возвращаемые с сервера приложений и предоставляет различные методы доступа и управления данными наборов записей.
  • DataGlue предоставляет возможность присваивания объектов наборов записей компонентам Flash UI, таким как компонент ListBox.

Эти классы содержат много способов доступа и управления данными. На следующем рисунке показаны доступные методы для каждого из этих классов.


За более детальной информацией по методам классов Flash Remoting обратитесь к справке по ActionScript во Flash MX (Window > Reference). Мы подробнее рассмотрим структуру кода при изучении персонального приложения управления в следующем параграфе.

Настройка на Remoting

В следующем приложении используются компоненты Flash Remoting, Их можно загрузить с сайта www.macromedia.com/software/flash/flashremoting. Установка этих компонентов обеспечит вас необходимыми классами ActionScript и документацией для изучения различных классов и их методов. Как только упомянутые компоненты будут установлены вместе с ColdFusion MX, можно приступать к разработке приложения PMA.

Приложение PMA для работы с контактами

Это приложение создается для реализации примера, отражающего интеграцию Flash/CF. Оно называется PMA (Personal Management Application) и позволяет управлять контактами и их информацией через веб-браузер. Мы не ограничены лишь веб-браузером, так как фильм Flash можно преобразовать в отдельный файл проекта. PMA продемонстрирует всю мощь возможностей Flash и ColdFusion MX, позволив пользователям управлять базой данных контактов, а также информацией о них. Все это будет объединено в базу данных Microsoft Access в целях тестирования и демонстрации. Компоненты Flash MX будут использоваться для расширения навыков пользователя, а компоненты ColdFusion (CFC) - в серверной части. Это прекрасный пример использования и интеграции новых технологий.

Для использования этой базы данных необходим компьютер с установленным приложением Microsoft Access.

База данных

Для построения полнофункционального приложения необходимо обеспечить пользователей возможностью добавлять новые контакты, а также обновлять и удалять имеющиеся записи контактов. Flash будет выступать в роли пользовательского интерфейса, отображающего контактную информацию и позволяющего пользователю взаимодействовать с интерфейсом. Взаимодействие можно осуществлять, выбирая формы контакта из списка ListBox или щелчком на PushButton для выполнения определенного действия. ColdFusion будет поддерживать логику приложения, запрашивающую базу данных и необходимые компоненты серверной части.

Ключом к созданию динамического веб-приложения является уверенность в том, что все данные структурированы. Посмотрите на базу данных в файле pma.mdb, который поставляется вместе с исходными файлами, и откройте таблицу Contacts. Эта таблица содержит контактную информацию: имя, фамилия, адрес, адрес электронной почты и т.д. Ниже приведена структура данных для таблицы контактов.


id послужит главным ключом для каждой записи контакта и будет активно использоваться при передаче информации между Flash и ColdFusion. Поле id будет полезным при обновлении контактов или их удалении.

  1. Сохраните базу данных pma.mdb на жестком диске.
  2. Перед осуществлением какой-либо связи нужно создать имя источника данных (DSN) в ColdFusion Administrator. Откройте Administrator, перейдя в браузере по адресу http://localhost/cfide/administrator/index.cfm.
  3. Войдя в CF Administrator щелкните на ссылке Data Sources (под Data & Services) и добавьте ваш DSN, которым является pma. Не забудьте указать Microsoft Access в ниспадающем меню Driver, после чего нажмите Add. В следующем диалоговом окне укажите, в каком месте на сервере находится файл базы данных.

  4. В этом приложении мы будем считать pma в качестве DSN, ссылаясь на него с помощью шаблона. Откройте текстовый редактор и введите следующий текст.
    <cfset request.dsn = "pma">
  5. Теперь назовите файл Application.cfm и сохраните его в новой папке с именем pma в корневой директории.

    Можно изменить имя папки, если это понадобится, однако, в этом случае, не забудьте обновить шаблон Application.cfm для отражения изменения имени папки. Этот шаблон устанавливает ориентированную на запрос переменную с именем request.dsn, доступ к которой осуществляется через CFC. Эта переменная устанавливается в Application.cfm как глобальная, ее можно изменить за один раз, не обновляя остального кода в приложении. Все запросы в приложении ссылаются на эту переменную, которая указывает на наш файл базы данных pma.mdb.

    Если вы хотите просто запустить имеющиеся на компакт-диске файлы, а не создавать их с "чистого листа", не забудьте разархивировать файлы, содержащиеся в pma.zip в подкаталог вашего корневого каталога. Чтобы PMA запустилось с первого раза, файлы должны быть расположены в директории с именем pma прямо под вашим корневым расположением веб. Структуру директории можно изменять, однако ActionScript придется редактировать для указания нового местоположения. Обсудим вкратце этот процесс.

  6. Если вы не хотите изменять ActionScript, настройте структуру директории PMA следующим образом.

< Лекция 18 || Лекция 19: 1234567
Игорь Хан
Игорь Хан

у меня аналогичная ситуация. Однако, если взять пример из приложения (ball_motion_04_click for trial.fla) то след остается. при этом заметил, что в моем проекте в поле "One item in library" виден кружок, в то время как в приложенном примере такого кружка нет.

Вопрос знатокам, что не так?

Александр Коргапольцев
Александр Коргапольцев

объект созданый мной упорно не желает оставлять след(единственное что добился, так это то что шарик резво гоняется за курсором) функция duplicateMovieClip остаётся не активной, т.е. следа от объекта не остаётся, но если я тоже самый код вбиваю в учебный файл всё работает, не могу понять где я ошибаюсь и почему в документе созданном заново, не работает код начиная от функции duplicateMovieClip?