1. Введение
Flash от Macromedia в настоящее время широко используется в Интернете для улучшения описания содержимого веб-сайтов. Недавние выпуски Flash от Macromedia (Flash 6 и Flash MX) ясно показали, что Macromedia серьезно рассматривает Flash в качестве предпочтительного интерфейса для разработки веб-приложений. В качестве интерфейса Flash может быть отличным выбором, однако он не предназначен для замены бизнес-логики, управления запросами и безопасности; Чтобы веб-разработчик мог добиться по-настоящему высокой производительности и возможностей корпоративного класса, вам необходима поддержка .NET, Flash и расширенного уровня описания в сочетании с технологией Microsoft .NET.
Flash включает ActionScript — язык сценариев, используемый для добавления интерактивности в анимацию. С момента появления ActionScript в Flash 5 компания Macromedia продолжала совершенствовать его, превратив из простого языка сценариев в довольно надежную функцию программирования, которая все еще имеет множество ограничений. В Flash MX 2004 компания Macromedia представила ActionScript 2.0, который поддерживает новые функции и новые способы структурирования кода. Чтобы облегчить понимание этой статьи, сначала вам следует прочитать некоторые базовые сведения о создании Flash-сайтов с помощью ActionScript.
Компания Macromedia представила методы, позволяющие легко интегрировать внешние данные в приложения Flash, что позволяет создавать более сложные и надежные приложения, управляемые данными. Flash и .NET позиционируют себя как кроссплатформенные решения и, таким образом, становятся естественными партнерами. Тем не менее, объединение двух технологий — непростая задача. В этой статье мы обсудим с вами несколько методов интеграции приложений Flash и .NET.
2. Интегрируйте Flash и ASP.NET
и встраивайте Flash-анимацию в страницы ASP.NET.
Flash-анимация Macromedia размещается на страницах .aspx с помощью совместного использования тегов OBJECT и EMBED. Тег EMBED изначально был разработан Netscape для работы с Netscape 2.0 или выше. Позже этот тег был принят Microsoft Internet Explorer (MSIE). Для совместимости с браузером тег OBJECT, специфичный для MSIE, и тег EMBED можно использовать вместе. Следующий HTML-код демонстрирует использование тегов OBJECT и EMBED для встраивания Flash-анимации (файл *.swf):
3. Подключите Flash к внешним данным.
Существует три способа интеграции Flash-анимации с внешними данными: FlashVars, LoadVars и новая технология FlashRemoting. Один из самых простых способов — передать внешние данные со страницы .aspx во Flash-анимацию, встроенную в веб-страницу, с помощью FlashVars для передачи переменных в HTML-части кода. Значения этих переменных, заданные с помощью FlashVars, доступны на корневом уровне Flash-анимации. Для работы во всех средах браузера атрибуту FlashVars должно быть присвоено значение в тегах OBJECT и EMBED.
Вот FlashVars, используемые с тегом объекта:
<PARAM Name="FlashVars" Value="init=yes&check=true">
Ниже приведены FlashVars, используемые с тегом EMBED:
<EMBED src="test.swf" FlashVars=" init =yes&check=true"></EMBED>
4. Зачем использовать FlashVars
Вместо того, чтобы заимствовать FlashVars, вы также можете поместить переменные в теги HTML — добавить их в конец URL-адреса файла .SWF через строку запроса, а затем передать их во Flash-анимацию. При таком подходе может возникнуть проблема — если эта переменная требуется при загрузке файла .SWF, поскольку файл .SWF должен быть загружен и запущен до того, как данные будут запрошены с сервера. Значения переменных также можно задать во Flash с помощью метода «Загрузить переменные» и JavaScript. Недостатком каждого из этих методов является задержка и медленное время отклика, поэтому разработчикам следует использовать FlashVars для передачи данных из ASP.NET в Flash-анимацию. На следующем рисунке показан код передачи переменных в виде строки запроса:
Доступ к любым переменным, переданным с помощью FlashVars, можно получить на корневом уровне Flash-анимации (_level0). Чтобы получить эти значения внутри Flash-анимации, вы можете создать динамическую переменную. Следующий код ActionScript реализует назначение «initvalue» во Flash:
_level0.initvalue = init
5. Связь между Flash и базой данных
Flash-анимация не может напрямую обращаться к базе данных. Однако Flash может взаимодействовать с базой данных через любую серверную технологию, например ASP или ASP.NET. Есть несколько способов выполнить эту задачу. В этой статье мы объясним методы LoadVariables и sendAndLoad.
(1) Используйте метод loadVariables в анимационном клипе.
Метод loadVariables анимационного клипа считывает данные из внешнего файла или URL-адреса и устанавливает значение для переменной анимационного клипа. После создания экземпляра анимационного клипа действие загрузки анимационного клипа инициируется в обработчике событий клипа. Когда анимационный клип инициализируется, можно вызвать метод loadVariables для загрузки переменных. Метод loadVariables является асинхронным вызовом, и Flash не ожидает результата вызова. Когда данные получены в поведении loadVariables(), поведение данных анимационного клипа инициализируется в обработчике событий клипа.
Чтобы продемонстрировать использование этого метода, в этом примере извлекаются имя и возраст пользователя из базы данных на основе идентификатора, выбранного из Flash-анимации. На рисунке ниже метод loadVariables анимации используется для загрузки данных во фрагмент анимации со страницы .aspx getUserData.aspx. Здесь ActionScript передает идентификатор пользователя — его имя и возраст будут отображаться во Flash-анимации в виде строки запроса на страницу .aspx.
Страница getUserData.aspx извлекает значение идентификатора из строки запроса, показанной ниже:
Теперь ASP.NET может передавать этот идентификатор значения бизнес-компонентам .NET. В этом примере извлекается имя и возраст пользователя:
Как упоминалось ранее в этом разделе, поведение данных обработчика событий onClipEvent анимационного клипа инициализируется, когда данные получены в поведении loadVariables(). Объявите следующие динамические переменные во Flash-анимации: flashName и flashAge. На следующем рисунке показан код ActionScript, который используется в обработчике onClipEvent Flash-анимации для получения значения, возвращаемого со страницы .aspx.
ПРИМЕЧАНИЕ. Это важно — это та же переменная, которая задается на странице .aspx. В показанном здесь примере переменная, к которой осуществляется доступ во Flash-анимации, — это «name» — та же переменная, которую она задает на странице .aspx (Response.Write(»name="&User.name)).
Эти значения теперь можно использовать внутри Flash-анимации.
(2) Используйте метод sendAndLoad из анимационных клипов.
В современном Интернете XML занимает важное место в виде системы документов как универсальный транспортный формат, способный обеспечить беспрепятственный обмен данными даже между различными типами приложений. XML обеспечивает механизм шлюза для связи между приложениями, даже приложениями в самых разных системах. Пока приложения могут обмениваться данными (через HTTP, общий доступ к файлам или другой механизм) и имеют анализатор XML, они могут обмениваться структурированной информацией, которую очень легко обрабатывать.
Flash MX поддерживает передачу данных XML, и существует несколько методов серверных технологий, таких как ASP и ASP.NET, для обмена XML. Flash MX может отправлять и получать пакеты XML с помощью классов XML — load, send и sendAndLoad или нового XMLConnector Flash MX. Последний можно использовать для отправки и получения пакетов через HTTP и привязки их к виджетам пользовательского интерфейса на уровне Flash.
Давайте обсудим метод sendAndLoad объекта FlashXML, который является популярным методом реализации архитектурно-ориентированной передачи данных XML, обработки исключений и повышения производительности. Мы используем этот простой пример вставки сведений об оценках пользователя в базу данных из Flash-клиента и отправки сообщения об успехе или неудаче обратно Flash-клиенту.
(3) Создание XML-пакета во Flash
. XML-пакет можно легко создать во Flash следующим образом:
var sendXML
:XML = new XML("<userid>123456</userid>");
страница — она использует ASP/ASP.NET и обрабатывает возвращаемый XML-пакет.
Используется следующим образом:
xmlObject.sendAndLoad (URL: String, targetXMLObject: XML): Void
Этот «xmlObject» представляет собой экземпляр объекта XML — он инкапсулирует XML, который должен быть отправлен на страницу .aspx. URL-адрес назначения, указывающий объект XML; «targetXMLObject» — это объект XML — он будет получать информацию, возвращаемую со стороны сервера.
Метод sendAndLoad отправляет XML-пакет в серверный шаблон и получает XML-пакет в ответ — в отличие от метода send класса XML, который только отправляет XML-пакет и не ожидает никакого ответа. Каждый из этих методов работает по-своему, но есть одно важное отличие: метод send класса XML принимает в качестве параметра цель — он позволяет открыть новое окно браузера или заменить содержимое текущего окна браузера. в то время как метод sendAndLoad принимает пакет XML в качестве параметра - он не запускает новое окно браузера. Поскольку метод send открывает новое окно браузера, мы можем видеть выходные данные самого окна браузера, что может быть чрезвычайно полезно для отладки.
Примечание. Если Flash-файл, выдающий вызов sendAndLoad, выполняется в веб-браузере, целевой URL-адрес будет находиться в том же домене, что и Flash-анимация. Если вам также необходимо взаимодействовать с приложениями в разных доменах, обратитесь к разделу «Междоменная загрузка данных» на
сайте www.macromedia.com для получения дополнительной информации.
Код на следующем рисунке показывает, как метод sendAndLoad объекта XML используется для связи со страницей .aspx и обработки XML, возвращаемого с сервера:
Приведенный выше код выполняет следующие действия:
· Загружает строку XML в объект XML «userscore_xml». Экземпляр содержит XML, который отправляется на страницу ASP.NET на стороне удаленного сервера.
· Установите атрибут ignoreWhite объекта XML «ResponseXMLObj_xml». Этот экземпляр объекта XML содержит пакет XML с сервера.
· Вызовите метод sendAndLoad («userscore_xml») объекта XML, чтобы отправить XML на серверную страницу .aspx,
http://localhost/MyTestApp/scoring.aspx, и сохраните возвращенный пакет XML в экземпляре объекта XML «ResponseXMLObj_xml». ".
· Установите метод onLoad объекта XML «ResponseXMLObj_xml». Flash получает ответ XML обратно от серверной страницы .aspx — он обрабатывается в методе onLoad объекта XML.
·Затем он анализирует полученный пакет XML для отображения необходимых сообщений на клиенте Flash.
(4) Получите пакет XML, отправленный из Flash страницы ASPX.
На следующем рисунке показан код для выполнения этой задачи:
Приведенный выше код выполняет следующие действия:
· Получает XML, отправленный от клиента Flash (xmlDoc.Load(Request.InputStream)).
· Анализирует полученный XML и передает его бизнес-компоненту для вставки в базу данных.
· Сформированное XML-сообщение отправляется обратно Flash-клиенту. Условия успеха или исключения, возникающие на бизнес-уровне, обрабатываются соответствующим образом и преобразуются в различные сообщения XML — это сообщение передается обратно клиенту Flash. Клиент Flash получает эти XML-сообщения и отображает их соответствующим образом.
6. Заключение
Технологии Flash и .NET сегодня набирают популярность на рынке и, вероятно, станут успешными партнерами во все большем количестве архитектур приложений. Эти два метода решают одни и те же проблемы, но принципиально различны. Flash MX обеспечивает интерактивность веб-сайтов, а .NET помогает создавать корпоративные приложения. Как показано в этой статье, интеграция приложений Flash и .NET вполне возможна. Каждый шаг связан с принятием решения – как соединить эти две части и стратегически сделать правильное архитектурное планирование.
Хотя новое поколение архитектур на основе Flash Remoting набирает обороты в этой области, пройдет несколько лет, прежде чем методы, обсуждаемые в этой статье, можно будет применить к крупномасштабным приложениям.