Разработка интерактивных учебных материалов во FLASH с использованием метода хранения данных на стороне клиента в клиент-серверных приложениях

Тип работы:
Дипломная
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Министерство просвещения Республики Молдова

Бэлцкий государственный университет им. А. Руссо

Факультет реальных наук

Кафедра прикладной информатики и информационный технологий

Специальность «Информатика и английский язык»

Лицензионная работа на тему:

Разработка интерактивных учебных материалов во FLASH, с использованием метода хранения данных на стороне клиента в клиент-серверных приложениях

Выполнил: Репешко Евгений

Студент дневного отделения, группа IE41Z

Научный руководитель:

Преподаватель, магистр Кознюк Октавиан

Бэлць — 2012

СОДЕРЖАНИЕ

  • ВВЕДЕНИЕ
  • 1. ОСНОВНЫЕ ПОНЯТИЯ среды разработки FLASH
    • 1.1 Описание технологии
    • 1.2 Технологии
    • 1.3 История
    • 1.4 Недостатки
    • 1.5 Альтернативные технологии
    • 1.6 Action script

2. СПОСОБЫ ХРАНЕНИЯ ИНФОРМАЦИИ НА СТОРОНЕ КЛИЕНТА В ПРИЛОЖЕНИЯХ, СОЗДАННЫХ ВО FLASH

  • 2.1 Хранение информации на стороне клиента с помощью класса Local sharedobject (LSO).
    • 2.2 Описание объекта sharedobject. getlocal ()
    • 2.3 Использование места на жестком диске в классе sharedobject
    • 2.4 Хранение информации на стороне клиента с помощью метода php
    • 3. СОЗДАНИЕ ИНТЕРАКТИВНОГО УЧЕБНОГО МАТЕРИАЛА С ИСПОЛЬЗОВАНИЕМ МЕТОДА ХРАНЕНИЯ ДАННЫХ НА СТОРОНЕ КЛИЕНТА
    • 3.1 Постановка задачи
    • 3.2 Основные условия по созданию приложения
    • 3.3 План проекта
    • 3.4 Проектирование базы данных
    • 3.5 Построение базы данных
    • 3.6 Подсоединение базы данных к Flash
    • 3.7 Создание классов
  • ЗАКЛЮЧЕНИЕ
  • БИБЛИОГРАФИЯ

ВВЕДЕНИЕ

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

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

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

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

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

Цель работы: Исследование методов хранения информации на стороне клиента в клиент-серверных Flash приложениях и создание интерактивных учебных материалов.

Способы исследования: В ходе теоретических изысканий, определяются методы использования хранения информации на стороне клиента, созданных во Flash, и дальнейшее использование данного метода в практической части работы.

Новизна работы: Данная работа, интересная тем, что рассматривает разные способы хранения, и использования информации на стороне клиента, в клиент-серверных приложениях, созданных во Flash, как на теоретическом, так и на практическом уровне.

Структура работы: Работа состоит из введения, в котором описывается сфера применения и использования хранения информации на стороне клиента. В первой главе описываются основные понятия технологии Flash. Во второй главе описываются методы использования хранения информации на стороне клиента. Во второй главе описана практическая часть использования хранения информации на стороне клиента, и создание интерактивных учебных материалов.

Лицензионная работа содержит: 32 страницы, и 8 изображений, 3 главы, и диск с приложением и и список из 15 литературных источников.

1. ОСНОВНЫЕ ПОНЯТИЯ ТЕХНОЛОГИИ FLASH

1.1 Описание технологии

Adobe Flash (ранее известная как Macromedia Flash), или просто Flash -- мультимедийная платформа, используемая для создания векторной анимации и интерактивных приложений (в том числе, игр), а также для интеграции видеороликов в веб-страницы.

Adobe Flash позволяет работать с векторной, растровой и ограниченно с трёхмерной графикой, а также поддерживает двунаправленную потоковую трансляцию аудио и видео. Для КПК и других мобильных устройств выпущена специальная «облегчённая» версия платформы Flash Lite, чья функциональность ограничена в расчёте на возможности мобильных операционных систем и их аппаратных показателей.

В качестве основных средств разработки используются проприетарные пакеты Adobe Flash Professional и Adobe Flash Builder 4 (бывш. Adobe Flex Builder), позволяющие создавать интерактивные приложения (в том числе, веб-приложения, игры и мультфильмы).

Стандартным расширением для скомпилированных Flash-файлов (анимации, игр и интерактивных приложений) является. SWF (Shockwave Flash) или Small Web Format). Видеоролики в формате Flash представляют собой файлы с расширением FLV (при этом Flash в данном случае используется только как контейнер для видеозаписи). Расширение FLA соответствует формату рабочих файлов в среде разработки [1].

Flash-контент воспроизводится с помощью целого ряда программных средств, но доминирующее положение на рынке занимает официальный проприетарный Adobe Flash Player, распространяемый в качестве бесплатного плагина для большинства современных браузеров. Также SWF-файлы можно просматривать с помощью различных свободных плееров, например, Gnash или swfdec. FLV-файлы воспроизводятся через Adobe Flash Player или через мультимедийные проигрыватели, такие как Quicktime и Windows Media Player, при наличии соответствующих плагинов.

1.2 Технологии

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

Flash использует язык программирования ActionScript, основанный на ECMAScript.

Flash-движок представляет собой виртуальную машину, на которой выполняется запускаемый из интернета код программы. Так как виртуальная машина одинакова для разных операционных систем, то один и тот же программный код везде будет одинаково выполняться. Программно-аппаратная независимость основное преимущество технологии Flash [2].

1.3 История

Технология векторного морфинга применялась задолго до Flash. В 1986 году была выпущена программа Fantavision, которая использовала эту технологию. В 1991 году на этой технологии была выпущена игра Another World, а двумя годами позже -- Flashback.

Разработка Flash была начата компанией FutureWave, создавшей пакет анимации FutureSplash Animator. В 1996 году FutureWave была приобретена компанией Macromedia, которая переименовала FutureSplash Animator в Flash. Под этим наименованием платформа продолжает развиваться и поныне (хотя после того, как в 2005 году компания Macromedia была поглощена Adobe, Macromedia Flash стал официально называться Adobe Flash).

Последней на сегодняшний день версией программы является Adobe Flash (CS5. 5), с версией языка ActionScript 3. 0; последняя версия Flash Player--11.

1.4 Недостатки

Flash сайты имеют также недостатки перед html и другими технологиями.

Основной недостаток Flash-приложений -- чрезмерная требовательность к ресурсам процессора. Недостаточная мощность компьютера может повлиять на производительность операционной системы в целом, либо привести к искажению результатов работы Flash-приложения, связанных с отображением анимации или подсчётом времени. Иногда это связано с недостатками программного обеспечения отвечающего за обработку Flash-компонентов, либо низким качеством самого Flash-приложения

Flash сайты зачастую содержат большое количество графики. Хоть и существует большое количество способов оптимизации, средний размер Flash сайтов составляет 2−5 мегабайт. Многие флэш сайты имеют облегченную html версию для пользователей с медленным интернетом, или ограниченным трафиком.

Использование Flash для размещения текстовой информации препятствует её индексированию поисковыми системами. Однако существует множество способов решить эту проблему. Одним из способов, решения данной проблемы, является использование текста в формате HTML, в футере страницы.

Flash сайт — это единый модуль, располагающийся на одной html странице. В результате, у пользователя нет возможности использовать привычные ему кнопки «назад» и «вперед», встроенные в браузер. Так же существуют сложности с осуществлением прокрутки с помощью колесика мыши. Сюда же можно отнести то, что сложно добиться того, чтобы в любой момент ссылка в адресной строке браузера отражала состояние флэш сайта. Однако, эти недостатки с разной степенью успешности решаются разработчиками.

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

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

1.5 Альтернативные технологии

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

Главной альтернативой Adobe Flash в браузерах является использование JavaScript, SVG и HTML 5, а для интерактивных веб-приложений -- AJAX.

При наличии плагинов также используют Silverlight от Microsoft.

· JavaScript объектно-ориентированный скриптовый язык программирования. Является диалектом языка ECMAScript. JavaScript обычно используется как встраиваемый язык для программного доступа к объектам приложений. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам. Основные архитектурные черты: динамическая типизация, слабая типизация, автоматическое управление памятью, прототипное программирование, функции как объекты первого класса.

На JavaScript оказали влияние многие языки, при разработке была цель сделать язык похожим на Java, но при этом лёгким для использования непрограммистами. Языком JavaScript не владеет какая-либо компания или организация, что отличает его от ряда языков программирования, используемых в веб-разработке.

· SVG- (от англ. Scalable Vector Graphics -- масштабируемая векторная графика) -- язык разметки масштабируемой векторной графики, созданный Консорциумом Всемирной паутины (W3C) и входящий в подмножество расширяемого языка разметки XML, предназначен для описания двумерной векторной и смешанной векторно/растровой графики в формате XML. Поддерживает как неподвижную, так анимированную и интерактивную графику -- или, в иных терминах, декларативную и скриптовую. Это открытый стандарт, является рекомендацией консорциума W3C, -- организации, разработавшей такие стандарты, как HTML иXHTML. Разрабатывается с 1999 года, в 2001 году вышла 1.1 версия, которая остается актуальнай до сегодняшнего дня, в активной разработке версия 1.2. В основу SVG легли языки разметки VML и PGML.

· HTML 5 — пятая версия одного из главных языков разметки Интернета, HTML. Версия языка, полностью соответствующая стандарту XML называется XHTML 5.

Многие идеи HTML 5 были изначально предложены WHATWG в стандарте Web Applications 1.0. HTML 5 включает другой стандарт WHATWG, Web Forms 2.0. Разработка HTML 5 началась в новой рабочей группе W3C в 2007 году.

Первый черновик спецификации стал доступен широкой общественности 22 января 2008. Спецификация сейчас находится в разработке и может находиться в этой стадии ещё несколько лет, хотя предполагается, что отдельные части HTML 5 будут закончены и реализованы в браузерах до того, как спецификация официально получит статус рекомендации [4].

· AJAX — «асинхронный JavaScript и XML») -- новый подход к построению интерактивных пользовательских интерфейсов веб-приложений и приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. В результате, при обновлении данных, веб-страница не перезагружается полностью и веб-приложения становятся более быстрыми и удобными.

· Microsoft Silverlight — Это плагин для браузера, который позволяет запускать приложения, содержащие анимацию, векторную графику и аудио-видео ролики, что характерно для RIA (Rich Internet application). Версия 2. 0, выпущенная в октябре 2008, добавила поддержку для языков. NET и интеграцию с IDE. 10 июля 2009 в 18: 00 по московскому времени Microsoft выпустила Silverlight 3 и Microsoft Expression Studio 3, в Интернете велась прямая трансляция мероприятия на сайте See the Light.

Silverlight реализован для ОС Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows 7, Mac OS X 10. 4, Mac OS X 10. 5, Mac OS X 10.6 и браузеров InternetExplorer 6. 0/7. 0/8. 0, MozillaFirefox 1. 5/2. 0/3, Safari 3. 1, Google Chrome 3.0. В будущем также планируется поддержка Opera[4], мобильных устройств, начиная с Windows Mobile 6 и Symbian (Series 60), и, возможно, других платформ.

· Java — Объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems. Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) независимо откомпьютерной архитектуры. Дата официального выпуска -- 23 мая 1995 года.

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

1.6 Action script

Action script — объектно-ориентированный язык программирования используемый во Flash. ActionScript добавляет интерактивность, обработку данных и остальные дополнительные функции в содержимое приложениях созданных во Flash. ActionScript исполняется виртуальной машиной, которая является частью встроенного Flash Player. ActionScript компилируется в байткод, который в последствии внедряется в SWF-файл.

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

Всего в истории существует 3 версии ActionScript:

· ActionScript 1.0 — выпущенный вместе с выходом 5 версии Macromedia Flash, которая стала первой программируемой на ActionScript средой.

· ActionScript 2.0 — появившийся в 2004 году вместе с выходом Flash 7, в котором было введено строгое определение типов, основанное на классах программирования.

· ActionScript 3.0 — последняя версия ActionScript. Данный язык программирования вышел в 2006 году, и принес качественное изменение по сравнению с предыдущими версиями. ActionScript 3.0 обеспечивает возрастание производительности с ActionScript 2. 0, и по скорости работы приблизился к таким языкам программирования как Java и С#. Увеличение производительности основано на динамической трансляции кода (JIT) [5].

1.7 Закрытость

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

хранение информация flash приложение

2. СПОСОБЫ ХРАНЕНИЯ ИНФОРМАЦИИ НА СТОРОНЕ КЛИЕНТА В ПРИЛОЖЕНИЯХ, СОЗДАННЫХ ВО FLASH

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

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

· Хранение информации на стороне клиента, является важной и необходимой функцией в среде Flash, и часто используется в разработке приложений.

· Есть несколько способов хранения информации на стороне клиента, они применяются в зависимости от ситуации и задачи. Существуют более простые, и наоборот более тяжелые способы.

· Существует компонент Local Shared Object, который является самым простым и самым быстрым способом для хранения и использования информации на стороне клиента, также является самым популярным среди flash-разработчиков.

Во Flash хранение информации можно реализовать различными способами:

1. Класс SharedObject используется для чтения и хранения ограниченных объемов, данных на пользовательском компьютере или на сервере. Общие объекты обеспечивают обмен данными в режиме реального времени между несколькими клиентскими SWF-файлами и объектами, которые находятся постоянно на локальном компьютере или удаленном сервере. Локальные общие объекты схожи с файлами cookie в обозревателях, а удаленные общие объекты имеют сходство с устройствами передачи данных в режиме реального времени. Для использования удаленных общих объектов требуется Adobe Flash Media Server.

2. Объект FileReference — он представляет файл данных на клиентском компьютере или на сервере. Методы класса FileReference позволяют приложению загружать и сохранять файлы данных на жестком диске, а также передавать данные файла на удаленные серверы и обратно. Класс FileReference имеет два разных подхода к загрузке, передаче и сохранению файлов данных. Самая первая версия класса FileReference включала в себя метод browse (), позволявший пользователю выбрать файл, метод upload () для отправки выбранных файлов на удаленный сервер и метод download () для загрузки требуемых данных с сервера и их сохранения в локальный файл. В Flash Player 10 и Adobe AIR 1.5 класс FileReference приобрел два новых метода: load () и save (), позволяющие получать доступ к локальным файлам и сохранять их напрямую. Использование этих методов идентично методам в классах URLLoader и Loader с соответствующими именами. В данном разделе описывается использование этих методов класса FileReference.

Примечание. В среде выполнения AIR предусмотрены дополнительные классы (в пакете flash. filesystem) для работы с файлами и локальной файловой системой. Классы flash. filesystem предоставляют больше функций, чем класс FileReference, но они поддерживаются только в среде выполнения AIR, а в проигрывателе Flash Player -- нет [6].

2.1 Хранение информации на стороне клиента с помощью класса Local SharedObject (LSO)

Использовать SharedObject можно для следующего:

· Поддержка локального постоянства. Это самый простой способ применения общего объекта, не требующий Flash Media Server. Например, вызов SharedObject. getLocal () поможет создать общий объект в приложении, предположим, калькулятор с памятью. Когда пользователь закрывает калькулятор, проигрыватель Flash Player сохраняет последнее значение в общем объекте на компьютере пользователя. При следующем запуске калькулятор будет содержать полученные ранее значения. В качестве альтернативы, если перед закрытием калькулятора вы установите для свойств общего объекта значение null, то при последующем запуске приложение откроется без каких-либо значений. Еще одним примером поддержки локального постоянства служит отслеживание предпочтений пользователя или других данных для крупного веб-сайта, (например, какие статьи пользователь прочитал на новостном сайте). Отслеживание этой информации позволяет отображать прочитанные ранее статьи не так, как новые непрочитанные. Хранение этой информации на компьютере пользователя снижает нагрузку на сервер.

· Хранение и совместное использование данных на сервере Flash Media Server. Общий объект может хранить данные на сервере, откуда их смогут извлекать другие клиенты. Например, вызовите SharedObject. getRemote (), чтобы создать удаленный общий объект, постоянно находящийся на сервере (например, список телефонов). Каждый раз, когда клиент вносит изменения в общий объект, исправленные данные становятся доступными всем клиентам, которые в данный момент подключены к объекту или которые подключаются к нему позднее. Если объект также имеет локальное постоянство, а клиент изменяет данные, но при этом не подключен к серверу, данные копируются в удаленный общий объект при последующем подключении пользователя к объекту.

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

Для создания локального общего объекта вызовите SharedObject. getLocal (). Для создания удаленного общего объекта вызовите SharedObject. getRemote ().

При закрытии приложения общие объекты стираются или записываются на диск. Для явной записи данных на диск можно также вызвать метод flush ().

Примечания по локальному дисковому пространству. Локальные общие объекты имеют определенные ограничения, которые следует обязательно учитывать при проектировании приложений. В некоторых случаях SWF-файлам запрещено записывать локальные общие объекты. Иногда данные, хранящиеся в локальных общих объектах, могут быть стерты без вашего ведома. Пользователи Flash Player могут управлять дисковым пространством, доступным отдельным доменам или всем доменам. Когда пользователи уменьшают объем доступного дискового пространства, некоторые локальные общие объекты могут быть удалены. Пользователи Flash Player также снабжены элементами управления конфиденциальностью, которые могут запретить сторонним доменам (другим доменам, отличным от домена, указанного в текущий момент в адресной строке обозревателя) чтение или запись локальных общих объектов.

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

SharedObject. getLocal () -- если вызов этого метода приводит к сбою, проигрыватель Flash Player создает исключение. Сбой может произойти, если пользователь отключил сторонние общие объекты, а домен SWF-файла не совпадает с доменом в адресной строке обозревателя.

SharedObject. flush () -- при неудачном вызове данного метода проигрыватель Flash Player создает исключение. При успешном вызове он возвращает SharedObjectFlushStatus. FLUSHED. Если требуется дополнительное дисковое пространство, он возвращает значение SharedObjectFlushStatus. PENDING. Пользователь Flash Player получает предупреждение о необходимости увеличить доступное пространство для локально сохраняемой информации. Соответственно, событие netStatus отправляется с информационным объектом, указывающим на сбой или успех проведенной очистки.

При попытке SWF-файла создать или модифицировать локальные общие объекты следует убедиться в том, что ширина этого SWF-файла составляет не менее 215 пикселов, а высота -- не менее 138 пикселов (это минимальные размеры для отображения диалогового окна, предупреждающего пользователя о необходимости увеличить место для хранения локальных общих объектов). Если данный SWF-файл меньше указанных размеров, но при этом увеличение пространства для хранения все же требуется, происходит сбой SharedObject. flush (), после которого возвращается значение SharedObjectFlushedStatusPENDING и отправляется событие netStatus.

Удаленные общие объекты. При работе с Flash Media Server можно создавать и применять удаленные общие объекты, которые совместно используются в режиме реального времени всеми клиентами, подключенными к вашему приложению. Если какой-либо клиент изменяет свойство удаленного общего объекта, то данное свойство меняется для всех подключенных клиентов. Удаленные общие объекты можно использовать для синхронизации клиентов (например, игроков в многопользовательской игре).

Каждый удаленный общий объект имеет свойство data, которое представляет собой объект со свойствами, в которых хранятся данные. Чтобы изменить свойство объекта данных, вызовите setProperty (). Сервер обновляет свойства, создает событие sync и отправляет свойства обратно подключенным клиентам.

Удаленным общим объектам можно задать постоянство: на клиенте, на сервере или сразу на обоих объектах. По умолчанию проигрыватель Flash Player сохраняет постоянные локальные общие объекты удаленного типа, размер которых не превышает 100 килобайт. При сохранении более крупного объекта Flash Player отображает диалоговое окно «Локальное хранение», в котором пользователь может разрешить или запретить локальное хранение общего объекта. Убедитесь в том, что габаритные размеры используемой рабочей области составляют не менее 215×138 пикселов. Это минимальный размер, необходимый Flash для отображения диалогового окна [7].

Если пользователь выбирает параметр Allow, сервер сохраняет общий объект и отправляет событие netStatus со свойством code, имеющим значение SharedObject. Flush. Success. Если пользователь выбирает параметр Deny, сервер сохраняет общий объект и отправляет событие netStatus со свойством code, имеющим значение SharedObject. Flush. Failed.

2.2 Описание объекта SharedObject. getLocal ()

Ссылку на shared object, хранящийся локально и доступный только данному клиенту. В случае, если Flash не может найти shared object (например, если параметр localPath определен, но такого пути не существует), возвращается null. Метод; возвращает ссылку на shared object.

Чтобы избежать конфликта имен, Flash хранит SO, созданные разными SWF файлами, раздельно, то есть если SWF файл в www. myCompany. com/apps/stockwatcher. swf создает shared object portfolio, то данный shared object не будет конфликтовать с SO portfolio, созданным SWF роликом www. yourCompany. com/photoshoot. swf, т.к. файлы, их создавшие, принадлежат разным директориям.

Хотя параметр localPath является необязательным, разработчикам стоит задуматься о его использовании, особенно если несколько роликов требуют доступ к одному shared object. Если данные в shared object связаны с одним SWF файлом, который не будет перемещен или переименован, использование значения по умолчанию имеет смысл. Если же SWF файлам необходим доступ к одному shared object или SWF файл, создающий shared object, в будущем будет перемещен, значение этого параметра может повлиять на то, получат ли SWF файлы доступ к shared object. Например, если Вы создаете shared object с параметром localPath, имеющим значение по умолчанию, прочие SWF файлы смогут получить доступ к shared object. Если после этого оригинальный SWF будет перемещен, то другие SWF файлы не смогут получить доступ к данным, уже находящимся в shared object.

Вы можете снизить вероятность, с которой Вы неумышленно запретите доступ к shared object, используя параметр localpath. Чтобы предоставить наиболее возможно полный уровень доступа, передайте параметру localPath значение «/», делающее shared object доступным для всех роликов в домене, однако, с другой стороны, одновременно повышая вероятность конфликта имен. Также можно использовать в значении, передаваемом параметру localPath имена папок из полного пути SWF файла. Например, параметр localPath для SO portfolio, созданного SWF файлом www. myCompany. com/apps/stockwatcher. swf, может быть таким: «/»; «/apps»; либо «/apps/stockwatcher. swf». Какой именно вариант выбрать, зависит от гибкости, необходимой вашему приложению[8].

2.3 Использование места на жестком диске в классе SharedObject

LSO хранятся на клиентской машине, занимая определенный объем свободного дискового пространства. По умолчанию, Flash может сохранять посредством LSO до 100 килобайт данных. При попытке сохранить большее количество данных, Flash Player выведет диалоговое окно Local Storage, позволяющее пользователю разрешить или запретить роликам из указанного домена сохранять данные локально. (Убедитесь в том, что размер Сцены в вашем ролике не меньше 215×138 пикселов; это минимальный размер, необходимый Flash для отображения диалогового окна.)

Если пользователь выбирает пункт Allow, объект сохраняется и вызывается обработчик события SharedObject. onStatus со значением свойства code равным SharedObject. Flush. Success; если пользователь выбирает пункт Deny, объект не сохраняется и SharedObject. onStatus вызывается со значением свойства code равным SharedObject. Flush. Failed [9].

Пользователь также может установить постоянные настройки для данного домена, кликнув правой кнопкой (Windows) или с прижатой Control (Macintosh) в окне плеера, затем выбрав пункт контекстного меню Settings и далее панель Local Storage. Программно изменить эти настройки нельзя, однако можно отобразить панель Local Storage, чтобы пользователь сделал свой выбор, используя метод System. showSettings (1).

Следующий список показывает связь выбора пользователя с максимальным объемом хранимых в LSO данных:

· Если пользователь выбирает Never, объекты никогда не сохраняются локально и метод SharedObject. flush () возвращает false.

· Если пользователь выбирает Unlimited (перемещая ползунок до конца вправо), объекты сохраняются локально, пока на диске есть свободное место.

· В случае, если пользователь выбирает None (перемещая ползунок до конца влево), все вызовы SharedObject. flush () будут возвращать «pending», и каждый раз будет появляться диалоговое окно с запросом о выделении дискового пространства для сохранения данных.

· Если пользователь выбирает 10K, 100K, 1 MB илиr 10 MB, объекты сохраняются и SharedObject. flush () возвращает true в случае, если указанная пользователем квота места на диске не превышена. Если LSO необходимо больше места, SharedObject. flush () возвращает «pending» и отображается диалоговое окно с запросом.

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

2. 4 Хранение информации на стороне клиента с помощью метода php

PHP — крайне популярный сценарный язык общего назначения, и это не смотря на то, что создавался специально для веб-разработок. В основе своей имеет синтаксис очень похожий на синтаксис C, Java и Perl, однако проще этих языков. Имеет открытый исходный код. Чаще всего PHP сценарии встроены в HTML-разметку внутри специальных тегов < ?php ?>. Во время запроса документа, имеющего PHP сценарии, на сервере происходит выполнение кода, а пользователь получает в браузер «чистый» HTML. Таким образом, PHP сценарии решают все те задачи, которые характерны для типичных CGI-приложений [10]. Однако PHP можно использовать не только так. Вот основные области применения этой технологии:

— создание скриптов для выполнения на стороне сервера — это основная задача PHP, и в большей степени PHP используется именно в этом варианте

— создание скриптов для выполнения в командной строке, например для обработки текстов на локальном компьютере

— создание оконных приложений, выполняющихся на стороне клиента (здесь надо использовать расширение PHP-GTK), в таком варианте PHP используется крайне редко

Несмотря на то, что эта технология является достаточно простой, но те возможности, которые она дает разработчику, позволяют использовать ее для создания сколь угодно мощных и высокоэффективных веб приложений. Все это позволяет PHP с легкостью лидировать среди своих достойных конкурентов, постоянно увеличивая отрыв. Второй метод хранения информации на стороне клиента во Flash, немного тяжелее. Для того чтобы осуществить данные действие, на локальном компьютере должен быть установлен сервер, например Apache. То есть, действия, которые мы хотим передать, будут сохраняться в файле php и передаваться на локальный сервер, так же это осуществимо и с нелокальным сервером [11].

2.5 Взаимодействие Flash и php

В отличие от обычных HTML-страниц, где обмен информацией с сервером происходит путем перезагрузки страниц (хотя перегружать можно только часть страницы), flash-приложение ведет себя как независимый клиент, то есть, оно само (не без помощи браузера, естественно) способно передать данные серверу и получить их. При этом данный процесс не затрагивает окружения самого ролика (самой странички). Где это можно использовать? Собственно, там, где нужен обмен данными, но нет особой потребности в поисковой индексации страниц, там, где требуется многократная выдача промежуточных данных, различающихся в зависимости от пользовательского ввода. И, конечно, там где требуется анимация или ее элементы. Типичный для сегодняшнего дня пример -- онлайн игра с ведением таблицы рекордов.

Недостатки данного метода видны невооруженным взглядом, то есть для хранения информации придется быть знакомым с технологией php, также надо устанавливаться сервер. Преимущества же данного способа состоят в том, что файлы могут быть сохранены в отличном формате, нежели в. sol, как у класса Shared Object [12].

В ActionScript имеется мощный инструмент, метод sendAndLoad () класса LoadVars. Метод sendAndLoad (), имеет следующий синтаксис:

sender. sendAndLoad (URL, loader, method);

— URL -- ссылка, адресующая файл со скриптом.

— loader -- объект класса LoadVars, в который должны быть загружены данные.

— method -- HTTP-метод, который должен использоваться для передачи данных.

Работа метода sendAndLoad () состоит из двух этапов. На первом он ведет себя точно так же, как метод send () класса LoadVars, то есть создает на основании доступных для перечисления свойств вызвавшего его объекта строку с парами имя-значение, переводит ее в URL-кодировку и затем отправляет ее вместе с запросом скрипту. На втором этапе метод sendAndLoad () импортирует сгенерированный текстом скрипт подобно тому, как это делает метод load класса LoadVars.

При использовании метода sendAndLoad () отправляющий данные и принимающий ответ объекты класса LoadVars лучше делать различными, даже если повторно этот метод применяться не будет. Дело в том, что код, обрабатывающий сгенерированный серверным скриптом текст, всегда помещается в обработчик события onLoad или события onData принимающего ответ объекта LoadVars. Если этот же объект будет отсылать запрос, то в число отправляемых переменных будет включена созданная на основании свойства onData или onLoad переменная. Действительно, обработчик для событий создается вами, поэтому он не защищен от перечисления. Все же доступные для обхода циклом for-in переменные вызывающего метод sendAndLoad () объекта класса LoadVars переводятся в пары имя-значение и пересылаются серверному скрипту. Наличие же непредусмотренных переменных может сбить работу алгоритма. Чтобы этого не произошло, можно защитить метод onLoad или onData от перечисления при помощи недокументированной функции ASSetPropFlags (), но проще разнести функции отправителя данных и получателя ответа по разным объектам [13].

В отличие от обычных HTML-страниц, где обмен информацией с сервером присходит путем перезагрузки страниц (хотя перегружать можно только часть страницы), flash-приложение ведет себя как независимый клиент, то есть, оно само (не без помощи браузера, естественно) способно передать данные серверу и получить их. При этом данный процесс не затрагивет окружения самого ролика (самой странички). Где это можно использовать? Собственно, там, где нужен обмен данными, но нет особой потребности в поисковой индексации страниц, там где требуется многократная выдача промежуточных данных, различающихся в зависимости от пользовательского ввода. И, конечно, там где требуется анимация или ее элементы. Типичный для сегодняшнего дня пример -- онлайновая игрушка с ведением таблицы рекордов. Итак,

Дано:

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

Решение:

Передать и принять данные в ActionScript можно разными способами. Один из самых старых и надежных -- это использование объекта XML. Когда мы говорим об XML, всегда подразумевается некоторая валидность документа. В случае Flash это тоже так, но в процессе обмена информацией с сервером, валидация не нужна. Практически любая последовательность символов может быть передана и принята.

Первый шаг -- на основании строки создаем объект XML:

var my_str = «blabla»; var my_xml: XML = new XML (my_str);

Теперь вновь созданный объект XML несет в себе нашу полезную строковую информацию (несмотря на то, что она не является well-formed XML-документом). Её можно вывести на экран методом toString () объекта XML:

trace (my_xml. toString ());

Шаг второй: задаем contentType:

my_xml. contentType = «text/xml»;

Было много дискуссий насчет того, надо или не надо это делать. Я не хочу вдаваться в механизмы работы объекта XML во Flash. Для меня это свойство -- гарантия того, что содержимое XML при отправке его на сервер, будет размещено в области RAW POST DATA (сырых, неразобранных POST-данных), откуда мы их сможем легко извлечь в php-скрипте.

Шаг третий: готовим обработчик получения результата. Как правило, нас мало интересует просто отправка данных, мы хотим быть уверены, что они приняты, обработаны и получен результат. Для этого php должен отправить что-то в ответ, а Flash должен его получить. Получать данные от сервера будет опять-таки объект XML. Вообще, это может быть любой XML ролика, в том числе и тот, который отправлял данные. Ему мы назначим обработчик полученного результата. Для простоты он будет трассировать полученные данные:

var receive_xml: XML = new XML (); recrive_xml. onLoad = function (success){ if (success){ trace (this. toString ()); } else { trace («данные получить не удалось»); }}

Шаг последний: отправляем данные и ждем результат. Для этого воспользуемся методом sendAndLoad (). В качестве параметров он принимает название файла, который планируется загружать и объект, в который будут загружены полученные данные. Поскольку задача стоит в передаче данных в php, имя этого скрипта и будет в качестве файла, а объект приема данных уже готов:

my_xml. sendAndLoad («phpscript. php», receive_xml);

Теперь дело за серверной частью. Мы должны создать Скрипт, который смог бы прочесть отправленные данные и выдать ответ. В php есть несколько способов получить RAW POST данные. Один из вариантов -- использование Stream-ов (для этого нам нужен php версии не ниже 4. 3). RAW POST DATA в этом случае читаются функцией file_get_contents («php: //input»). Далее мы организуем простой вывод какой-нибудь маркерной фразы, чтобы убедиться, что скрипт работает. В реальном приложении будет происходить обработка полученных данных, и все прочие штуки, на которые способен php и программист. В примере все проще:

< ?php// получаем данные… $input = file_get_contents («php: //input»);// … что-то с ними делаем … // … и выдаем результатecho «Привет из php. Вы нам писали:». $input;?>

Важное замечание: Flash работает с кодировкой UTF-8. Поэтому, чтобы не было проблем, php файл тоже должен быть в этой кодировке. Если по каким-то причинам это невозможно, все выходные данные должны быть перекодированы в UTF-8. Хороший способ для этого -- функция iconv () [14].

В теории описано способ хранения информации на стороне клиента, с помощью взаимодействия Flash и PHP. Описаны все нюансы использования на примере приложения, которому необходим обмен данных с сервером. Flash и PHP довольно неустойчивая связка в программировании, и поэтому многие опытные программисты пытаются находить все новые и новые изыскания для более удобного и лаконичного метода связи, при котором 2 данные технологии более уверенно контактировали между собой. То есть метод хранения информации на стороне клиента в Flash приложениях, с использованием метода взаимодействия Flash и PHP, может использоваться лишь с использованием дополнительно- созданного сервера, с которым и будет осуществляться связь, и будет происходить обмен информации [15].

3. СОЗДАНИЕ ИНТЕРАКТИВНОГО УЧЕБНОГО МАТЕРИАЛА С ИСПОЛЬЗОВАНИЕМ МЕТОДА ХРАНЕНИЯ ДАННЫХ НА СТОРОНЕ КЛИЕНТА

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

· Adobe Professional CS 5. 5

· Denwer

· Adobe Photoshop CS4

Определившись с инструментарием, необходимого для создания приложения, необходимо выбрать язык программирования, на котором будет написана работа — ActionScript 3. 0, так как у данного языка больше преимуществ перед своим предшественником ActionScript 2.0.

3.1 Постановка задачи

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

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

3.2 Основные условия по созданию приложения

· Создание интерактивного учебного материала, что обозначает взаимодействие человека с системой обучения.

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

· Использование хранения данных на стороне клиента, то есть использования класса SharedObject в работе.

3.3 План проекта

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

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

3.4 Проектирование Базы Данных

Так как приложение подразумевало создание базы данных, нужно заняться проектированием моей базы данных. Для выполнения поставленных задач, потребуется 3 таблицы:

· Quizzes-тесты

· Answers-ответы

· Questions- вопросы

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

3.5 Создание Базы данных

Для создания Базы Данных, нужно выбрать инструмент под названием Php My Admin. Данная утилита включена в состав программного пакета Denwer, который был установлен в начале работы, в качестве сервера.

Для того чтобы зайти в данную утилиту нужно совершить ряд последовательных действий:

1. Зайти по пути установки программы Denwer и запустить файл run. exe. Так как у данной программы зачастую возникают проблемы при включенном приложении Skype, необходимо предварительно отключить данное приложение, разработчики программы же советуют поменять порт, либо воздержаться от одновременного использования этих приложений.

2. Перейти по адресу localhost

3. Попав на данную страницу, появилось следующее меню, покащанное на Рис. 1.

Рис. 1 phpMyAdmin

Данные утилиты, которые предоставляет приложение Denwer, и следует перейти по ссылке phpMyAdmin, которое отвечает за администрирование СУБД MySQL.

4. Далее перейдя по ссылке, открывается рабочая страница phpMyAdmin. Так как требуется создать новую базу данных, следует создать новую базу данных с именем quiz2, Рис. 2.

5. Требуется назвать базу данных quiz2, и вписываю в поле Create new database, рядом находится поле кодировки для будущей базы данных, следует выбрать utf8_unicode_ci, так как база данных будет содержать символы на кириллице, которые поддерживаются данной кодировкой.

Рис. 2 Создание Базы данных

6. Далее необходимо создать таблицу answers со следующими параметрами, Рис. 3.

Рис. 3 Структура таблицы Answers

· id_otveta — является id ответа, нужно поставить авто-инкрементацию, и поставить ключ PRIMARY, что означает что данное поле будет под значением PRIMARY, и будет увеличиваться на 1, при вводе каждого нового значения.

· id_voprosa — это id вопроса, и нужен данный элемент для присвоения нужному вопросу его соответствующие ответы.

· Text — это непосредственно сам ответ, которые будет в формате varchar.

· Id_testa — айди теста, по которому ответы будут узнавать к какому тесту они относятся.

7. Следующая таблица будет questions, которая будет содержать вопросы, которые будут отображаться тесте, Рис. 4.

Рис. 4 Структура таблицы questions

В данной таблице находится 5 полей:

· Id_voprosa — нужно выставить авто-инкрементацию и ключ PRIMARY, так как это будет уникальным id для вопроса, и ответы будут ссылаться на данный id.

· Text — самое содержимое вопроса, которое будет отображаться в Flash-приложении.

· Id_otveta — id ответа, которое будет соответствует id_otveta из таблицы answersю

· Id_testa — соответствующий тест, в котором состоит данный вопрос.

· Score — переменная, которая содержит значение количества баллов, получаемых за ответ на данный вопрос. Так как в конце теста, будет проходить подсчет и данное поле необходимо, так как можно ставить малое количество баллов за легкий вопрос, и соответственно большое количество баллов за более трудный вопрос.

8. Последняя таблица в базе данных, это таблица тестов, в которой будет храниться информация о тестах, которые будут доступны в Flash-приложении, Рис. 5.

Рис. 5 Структура таблицы quizzes

Id_testa — id теста, следует поставить авто-инкрементацию и ключ PRIMARY, так как данное значение теста будет уникально, и вопросы и ответы будут относиться к данному полю.

· Name — название теста, которое будет отображаться в приложении.

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

На этом создание базы данных окончено, так как все нужные таблицы и переменные созданы, теперь можно перейти к созданию Flash-приложения и подключения к нему базы данных.

3.6 Подсоединение базы данных к Flash

Для начала нужно связать только что созданную базу данных с будущим Flash-приложением. Следует использовать метод PHP + XML. То есть теоретически PHP запрашивает данные с сервера, записывает их в XML, а потом уже эти данные транзитом через XML попадают в мое Flash-приложение.

Нужно создать файл data. php и записывать код подключения к базе данных, а потом передать все это в XML-файл, как уже говорилось, данные буду выводить в виде xml, так как с этим форматом FLASH работает лучше всего.

Подсоединение к БД

$link = mysql_connect («localhost», «root», ««) or die («Could not connect: «. mysql_error ());

mysql_select_db («quiz2») or die («Не выбрана БД»);

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

3.7 Создание классов

Далее необходимо создать классы, необходимые для работы Flash-приложения. Главный класс называется com/src/Main. as, после того как он создан и добавлен на сцену, происходит загрузка настроек из xml/data. xml это делается с помощью класса DataLoader грузится ссылка на файл data. php и данные для страниц. Страниц в данном случае может быть неограниченное количество.

ПоказатьСвернуть
Заполнить форму текущей работой