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

 

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

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

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

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

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






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

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





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

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

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

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







Бэлць - 2012


СОДЕРЖАНИЕ


ВВЕДЕНИЕ

. ОСНОВНЫЕ ПОНЯТИЯ среды разработки FLASH

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

.2 Технологии

.3 История

.4 Недостатки

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

.6 Action script

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

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

.2 Описание объекта sharedobject.getlocal()

.3 Использование места на жестком диске в классе sharedobject

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

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

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

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

.3 План проекта

.4 Проектирование базы данных

.5 Построение базы данных

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

.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 <#"justify">1.2 Технологии


В основе Flash лежит векторный морфинг <#"justify">1.3 История


Технология векторного морфинга применялась задолго до Flash. В 1986 году <#"justify">.4 Недостатки


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

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

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

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

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

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

Другой важный недостаток заключается в том, что не всегда есть возможность запустить Flash-приложение, либо она связана с некоторыми трудностями (например, необходимо установить плагин <#"justify">1.5 Альтернативные технологии


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

Главной альтернативой Adobe Flash в браузерах является использование JavaScript <#"justify">Каждая из этих технологий хорошо справляется с поставленными перед ней задачами, но именно 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 хранение информации можно реализовать различными способами:

. Класс 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 также снабжены элементами управления конфиденциальностью, которые могут запретить сторонним доменам (другим доменам, отличным от домена, указанного в текущий момент в адресной строке обозревателя) чтение или запись локальных общих объектов.файлы, хранящиеся и запускаемые не на удаленном сервера, а на локальном компьютере, всегда могут записывать на диск сторонние общие объекты. Рекомендуется проверять наличие сбоев, связанных с объемом дискового пространства и настройками конфиденциальности пользователей. Выполняйте данные проверки при вызове getLocal() и flush():.getLocal() - если вызов этого метода приводит к сбою, проигрыватель Flash Player создает исключение. Сбой может произойти, если пользователь отключил сторонние общие объекты, а домен SWF-файла не совпадает с доменом в адресной строке обозревателя..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].


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


LSO хранятся на клиентской машине, занимая определенный объем свободного дискового пространства. По умолчанию, Flash может сохранять посредством LSO до 100 килобайт данных. При попытке сохранить большее количество данных, Flash Player выведет диалоговое окно Local Storage, позволяющее пользователю разрешить или запретить роликам из указанного домена сохранять данные локально. (Убедитесь в том, что размер Сцены в вашем ролике не меньше 215 x 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, плеер предупреждает пользователя, что данные будут потеряны.


.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].


.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-приложение ведет себя как независимый клиент, то есть, оно само (не без помощи браузера, естественно) способно передать данные серверу и получить их. При этом данный процесс не затрагивет окружения самого ролика (самой странички). Где это можно использовать? Собственно, там, где нужен обмен данными, но нет особой потребности в поисковой индексации страниц, там где требуется многократная выдача промежуточных данных, различающихся в зависимости от пользовательского ввода. И, конечно, там где требуется анимация или ее элементы. Типичный для сегодняшнего дня пример - онлайновая игрушка с ведением таблицы рекордов. Итак,

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

Решение:

Передать и принять данные в 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:_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.


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


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

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


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


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

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

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


.3 План проекта


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

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


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


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

·Quizzes-тесты

·Answers-ответы

·Questions- вопросы

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


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


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

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

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

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

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


Рис.1 phpMyAdmin


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

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

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


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


.Далее необходимо создать таблицу 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-приложения и подключения к нему базы данных.


.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());_select_db("quiz2") or die("Не выбрана БД");


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


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


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

Переданные данные грузятся и сохраняются в класс Model.as, класс в котором хранятся все нужные данные, к которым может понадобиться доступ из любого места в программе. Как только данные загружены, обработчик событий DataLoader вызывает событие loadComplete, и исходя из этого события класс Main.as продолжает дальнейшую работу Flash-приложения с интерактивными учебными материалами. Далее создается всплывающее окно, где нужно вводить имя пользователя, данный класс называется Login.as, Рис. 6.

Далее если выбираются элементы теста, то это подгружается класс Testslists.as. Когда происзодит переход на страницу тестов, Flash-приложение делает запрос к файлу data.php и передает методом POST переменную action=get_tests.


Рис. 6 Всплывающее окно Логин

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


Рис. 7 Пройденный тест


Класс CurrentTest.as по порядку выдает вопросы с ответами, и если при ответе на вопрос id его совпадает с id_otveta, то он засчитывается как верный ответ, в противном случае ответ засчитывается как неправильный, если существуют в данном тесте еще вопрос, то продолжается тестирование и показывается следующий вопрос, а если вопросов больше не осталось, то тестирование заканчивается и вызывается метод checkResults, который показывает всплывающее окно класса Message Popup,и проверяет не проходил ли этот пользователь тест ранее, если да то записывает результат, который превышает предыдущий.


Рис. 8 Пример теста

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



ЗАКЛЮЧЕНИЕ


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

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

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

·Были описаны и исследованы различные способы хранения информации на стороне клиента.

·При помощи ActionScript 3.0 было создано клиент-серверное приложение, которое использовало хранение данных на стороне клиента.

·По средствам проделанной работы было прояснено, что технологии Flash.

Дополнительные цели:

·Наравне с языком ActionScript 3.0 были описаны в теории взаимодействия технологии Flash и PHP.

·Были описаны недостатки и преимущества описанных методов хранения информации на стороне клиента.

·Были созданные интерактивные учебные материалы.

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

1.Создание интерактивных тестов.

2.Оценивание интерактивных тестов с подсчетом баллов, и процента правильных и неправильных ответов.

.Хранение результатов тестов на стороне клиента, с использованием класса SharedObject

.Загрузка тестов в базу данных.

Все было реализовано с помощью технологии Flash.

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


БИБЛИОГРАФИЯ.


1. Чанг Т.К.; Кларк Ш. Популярные web-приложения на Flash MX. - М.: Кудиц-Образ, - 2003. - 272с.

2. Справочник по языку ActionScript 2.0 и его компонентам [6 февраля 2012] Доступен по адресу : <#"justify">3.Класс Shared Object компонентам [7 февраля 2012] Доступен по адресу: <#"justify">4. Справочник по ActionScript 3.0 для платформы Adobe Flash. [9 февраля 2012] Доступен по адресу: <#"justify">5. Flash Action Script 3.0 Tutorials [10 февраля 2012] Доступен по адресу: <#"justify">6. Website with ActionScript 3.0 [12 февраля 2012] Доступен по адресу: <#"justify">. How to communicate with flash [12 февраля 2012] Доступен по адресу: <#"justify">8. Actionscript [12 февраля 2012] Доступен по адресу: <#"justify">9. КОЛИН МУК ActionScript 3.0 для Flash. Подробное руководство. - М. - 2008. -775 с.

. Introduction to Flash local Shared Object [13 февраля 2012] Доступен по адресу: <#"justify">. Use Flash with PHP and MySQL [13 февраля 2012] Доступен по адресу: <#"justify">12. УОТРОЛЛ Э.; ГЕРБЕР Н. Эффективная работа во Flash MX - СПБ.- 2003. - 720 с.

13. КИФФИ МЭТТ Flash and Php. - М. - 2007. -689 с.

14. Introduction to Flash and Php [14 февраля 2012] Доступен по адресу: <#"justify">15. Flash и XML [14 февраля 2012] Доступен по адресу: <http://www.artlebedev.ru/tools/technogrette/etc/flash-xml/>


Министерство просвещения Республики Молдова Бэлцкий государственный университет им. А. Руссо Факультет реальных наук Кафедра прикладной информатики и и

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ