О руководстве по созданию SWF-приложений

Оптимальный способ создания приложения Animate зависит от типа приложения и используемых технологий.

Веб-приложение обеспечивает интерактивное взаимодействие пользователя с веб-сайтом. Например, приложение может собирать информацию о пользователе (например, имя пользователя и пароль для регистрации), добавлять информацию на сайт (например, в форум) или предоставлять пользователю возможность интерактивного общения в реальном времени с другими посетителями сайта (например, в разговорных комнатах или через интерактивные доски объявлений). Результаты с сервера часто возвращаются в виде SWF-файлов в зависимости от типа взаимодействия. Ниже приведены примеры приложений, которые поддерживают различные виды интерактивного взаимодействия пользователя с сервером. Веб-сайт, на котором не используется информация о посетителе или данные, не является приложением (примерами могут служить портфолио, мультипликационный сайт или статический информационный сайт). Приложения Animate поддерживают интерактивное взаимодействие пользователя с веб-приложением и сервером. Базовый процесс выглядит следующим образом:

  1. Пользователь вводит информацию в SWF-файл.

  2. Информация преобразуется в данные.

  3. Данные форматируются и отправляются на веб-сервер.

  4. Веб-сервер собирает данные и отправляет на сервер приложений (например, ColdFusion, PHP или ASP).

  5. Данные обрабатываются и отправляются обратно на веб-сервер.

  6. Веб-сервер отправляет результаты в SWF-файл.

  7. SWF-файл получает отформатированные данные.

  8. Сценарий ActionScript обрабатывает данные для использования в приложении.

При создании приложения необходимо выбрать протокол передачи данных. Протокол оповещает приложение об отправке или получении данных, формате передачи и результатах обработки ответа сервера. После получения данных SWF-файлом необходимо выполнить их обработку и форматирование. При использовании протокола данные всегда имеют поддерживаемый формат. При передаче данных в виде пар «имя-значение» можно проверить тип их форматирования. Проверьте правильность форматирования данных, чтобы исключить получение данных в формате XML и сообщить SWF-файлу тип данных и способ работы с ними.

Сбор и форматирование данных

Работа приложений зависит от того, как пользователь взаимодействует с SWF-файлом. Часто при этом пользователь вводит данные в формы. Animate поддерживает много различных способов ввода и форматирования данных в приложениях Animate. Эту гибкость обеспечивают возможности анимации и креативного управления интерфейсом, а также проверка на наличие ошибок, которую можно выполнять с помощью сценариев ActionScript.

Ниже приведены создания форм для сбора данных с помощью Animate:

  • Расширенное управление оформлением.

  • Почти полное или полное отсутствие необходимости обновлять страницы.

  • Повторное использование общих ресурсов.

    Совет. Полученную от пользователя информацию следует сохранять в виде общего объекта на компьютере пользователя. Общие объекты позволяют хранить данные на компьютере пользователя аналогично cookie-файлам. Дополнительные сведения об общих объектах см. в разделе о классе sharedObject в руководстве «Справочник ActionScript® 2.0 для Adobe® Flash® Professional CS5» или «Справочник ActionScript® 3.0 для Adobe® Flash® Professional CS5».

Отправка и обработка данных

Обычно перед отправкой на сервер информацию необходимо обработать, то есть преобразовать в формат, распознаваемый сервером. После получения данных сервер может обработать их самыми разнообразными способами и отправить обратно в SWF-файл в приемлемом для него формате — от пар «имя-значение» до сложных объектов.

Примечание.

Тип MIME выходных данных сервера приложений должен иметь значение application/x-www-urlform-encoded. Если этот тип MIME отсутствует, то полученные данные обычно невозможно использовать в Animate.

В следующей таблице перечислены некоторые параметры отправки данных на сервер и получения их с помощью Animate:

Отправка данных

Описание

LoadVars.send и LoadVars.sendAndLoad

Отправка пар «имя-значение» серверному сценарию для обработки. LoadVars.send отправляет переменные удаленному сценарию и игнорирует любой ответ. LoadVar.sendAndLoad отправляет на сервер пары «имя-значение» и загружает или анализирует ответ в целевом объекте LoadVars.

XML.send и XML.sendAndLoad

Аналогично LoadVars, но методы XML.send и XML.sendAndLoad отправляют вместо пар «имя-значение» XML-пакеты.

getURL

С помощью функции getURL() или метода MovieClip.getURL можно отправлять переменные из Animate в кадр или всплывающее окно.

Remoting

Упрощает обмен сложной информацией между Animate, ColdFusion, ASP.NET, Java и др. Кроме того, Animate Remoting можно использовать для работы с веб-службами.

Веб-службы

В составе Adobe Animate Professional есть компонент WebServiceConnector, который позволяет подключаться к удаленным веб-службам, отправлять и получать данные и связывать результаты с компонентами. Это позволяет разработчикам Animate без труда создавать многофункциональные интернет-приложения без единой строчки кода ActionScript.

Использовать удаленные веб-службы можно с помощью компонента WebServiceClasses, но для этого требуется создавать сложные сценарии ActionScript.

Добавление функций загрузки и проверки данных

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

Даже для простой формы регистрации или входа всегда следует проверять, ввел ли пользователь имя и пароль. Прежде чем отправлять запрос удаленному серверному сценарию и ожидать результат, всегда выполняйте такую проверку. Не полагайтесь только на серверную проверку. Если пользователь ввел только имя пользователя, то серверный сценарий должен принять запрос, проверить отправленные данные и возвратить приложению Animate сообщение об ошибке, в котором говорится, что должно быть введено как имя пользователя, так и пароль. Аналогично, если проверка выполняется только на стороне клиента (в SWF-файле), пользователь может взломать SWF-файл, обойти процедуру проверки и отправить на сервер потенциально вредоносные данные.

Проверка на стороне клиента может ограничиваться проверкой наличия в поле формы как минимум одного символа либо проверкой на ввод числового значения вместо строки. Чтобы проверить, например, адрес электронной почты, убедитесь, что текстовое поле в Animate не пусто и содержит знак @ и точку (.). На стороне сервера добавьте более сложную проверку. Например, проверьте принадлежность адреса электронной почты к допустимому домену.

Для обработки данных, загруженных в SWF-файл с сервера, необходимо создать сценарий ActionScript. После окончания загрузки данных в SWF-файл к ним можно обращаться из этого расположения. Полнота загрузки данных проверяется с помощью сценария ActionScript. Сигнал о том, что данные загружены в документ, можно отправлять с помощью функций обратного вызова или прослушивателей.

При загрузке данных их можно отформатировать несколькими способами.

  • При загрузке XML можно анализировать и использовать данные с помощью методов и свойств класса XML. Если используются пары «имя-значение», то они превращаются в переменные.

  • Данные можно получать от веб-службы или из Animate Remoting.

В обоих случаях могут приходить сложные структуры данных, например массивы, объекты, наборы записей, которые необходимо соответствующим образом анализировать и связывать.

Обработка ошибок и отладка

Чтобы приложение было достаточно надежным, необходимо предусмотреть возникновение некоторых ошибок и реализовать действия по их обработке.

Лучший способ обработки ошибок в сценариях ActionScript 2.0 состоит в использовании блоков try-catch-finally, которые позволяют перехватывать и исправлять нестандартные ошибки. Создание пользовательских классов ошибок позволяет повторно использовать код во всем приложении без необходимости переписывать код обработки ошибок. Дополнительные сведения о выводе нестандартных ошибок см. в документации по классу Error в руководстве Справочник ActionScript® 2.0 для Adobe® Flash® Professional CS5. Дополнительные сведения о блоках try-catch-finally см. в документации по блокам try..catch..finally в руководстве Справочник ActionScript® 2.0 для Adobe® Flash® Professional CS5.

В сценариях ActionScript 3.0 для перехватывания ошибок следует использовать класс flash.errors.

Дополнительные сведения см. в разделе «Handling synchronous errors in an application» в руководстве Programming ActionScript 3.0.

Систематизация файлов и хранение кода

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

  • Разделен ли SWF-файл на несколько SWF-файлов и если да, то как они взаимодействуют?

  • Какие ресурсы можно сделать общими для нескольких SWF-файлов?

  • Какие файлы загружаются динамически?

  • Как и где хранятся сценарии ActionScript?

    При разработке приложения серверный код и файлы следует хранить в виде структуры логических каталогов, аналогичной используемой в пакете ActionScript. Код следует размещать таким образом, чтобы он всегда был упорядочен, а риск перезаписи минимален.

    В более крупных приложениях коммуникационные функции «клиент-сервер» и службы следует инкапсулировать в классы. Преимущества использования классов:

  • Возможность использовать код в нескольких SWF-файлах.

  • Возможность редактировать код в центральном расположении и обновлять все SWF-файлы путем повторной публикации.

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

Использование шаблона проектирования MVC

Шаблон проектирования MVC используется для разделения в приложении информации, выходных данных и обработки данных. Приложение разделено на три компонента: модель, представление и средство управления. Каждый из компонентов работает с собственной частью общего процесса.

Модель

Объединяет в себе данные и правила приложения. Большая часть обработки в приложении выполняется в этой части шаблона разработки. Кроме того, модель содержит все компоненты (такие как CFC, EJB и веб-службы) и базу данных. Возвращаемые на этой стадии процесса данные не отформатированы для интерфейса (или клиентской части) приложения. Возвращаемые данные могут использоваться для различных интерфейсов (или представлений).

Представление

Обрабатывает клиентскую часть приложения (интерфейс, с которым взаимодействует пользователь) и выполняет визуализацию содержимого модели. Интерфейс определяет способ отображения данных модели и выводимые данные представления, а также позволяет пользователю обращаться к данным приложения или манипулировать ими. При изменении модели представление обновляется и отражает внесенные изменения путем отправки или получения данных. Если создается гибридное веб-приложение (например, предусматривающее взаимодействие Animate с другими приложениями на странице), то в составе представления в шаблоне разработки можно создать несколько интерфейсов. Шаблон проектирования MVC поддерживает работу с различными представлениями.

Средство управления

Обрабатывает запросы модели и представления, связанные с обработкой и отображением данных. Обычно содержит большой объем кода. Контроллер может вызвать любую часть модели в зависимости от пользовательского запроса через интерфейс (или представление) и содержит код, индивидуальный для каждого приложения. Поскольку этот код индивидуален, он обычно не используется повторно. Однако другие компоненты шаблона проектирования допускают повторное использование. Средство управления не обрабатывает и не выводит данные. Оно принимает запросы от пользователей, решает, какую часть модели и какие компоненты представления вызвать, и определяет, куда будут отправлены данные и каким образом будут отформатированы возвращенные данные. Средство управления обеспечивает доступ представлений к тем частям модели, данные которых они отображают. Обычно средство управления передает данные в соответствии с изменениями в модели и представлении.

Каждая часть модели создается как самодостаточный компонент в общем процессе. При изменении одной из частей модели (например, при переработке интерфейса) другие части процесса могут не потребовать изменений, что уменьшает количество возможных проблем. Если шаблон разработки создан правильно, представления можно изменять без переработки модели и средства управления. Если в приложении не используется MVC, то любые изменения могут вызвать волновой эффект в коде, в результате чего потребуется внести значительно больше изменений, чем при использовании конкретного шаблона проектирования.

Одна из важных причин, по которой следует использовать шаблон MVC, — отделение данных и логики от пользовательского интерфейса. Отделение этих частей процесса позволяет создать несколько различных графических интерфейсов, использующих одну и ту же модель и одни и те же неформатированные данные. Это означает, что приложение можно использовать с различными интерфейсами Animate. Например, можно создать отдельный интерфейс для веб-страниц, отдельный интерфейс для КПК, отдельную версию для сотовых телефонов и даже HTML-версию, в которой Animate не используется вообще. Отделение данных от остальной части приложения позволяет значительно сократить время разработки, тестирования и даже обновления нескольких клиентских интерфейсов. Кроме того, если доступна готовая модель, упрощается добавление новых клиентских оболочек в приложение.

MVC следует использовать только при создании крупного или сложного приложения, например веб-сайта электронной коммерции или приложения для электронного обучения. Для использования такой архитектуры необходимо планирование и понимание работы Animate и шаблона разработки. Тщательно продумайте взаимодействие различных частей. Обычно для этого требуется тестирование и отладка. При использовании MVC обычно требуется более сложное и трудное тестирование и отладка, чем в обычных приложениях Animate. Если создаваемое приложение требуется усложнить, то, возможно, следует использовать MVC.

Создание защищенных приложений

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

  • Данные, которые должны быть защищены, следует отправлять по протоколу HTTPS. Значения в Animate следует шифровать перед отправкой на удаленный сервер для обработки.

    Примечание. Никогда не храните в SWF-файле информацию или код, которые не должны видеть пользователи. Сторонние программы позволяет легко деассемблировать SWF-файлы и просматривать их содержимое.

  • Добавьте правила междоменных вызовов, не позволяющие неавторизованным доменам получать доступ к ресурсам.

 

Эта работа лицензируется в соответствии с лицензией Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported  На посты, размещаемые в Twitter™ и Facebook, условия Creative Commons не распространяются.

Правовые уведомления   |   Политика конфиденциальности в сети Интернет