4 курс (заочка) / Лекции / 1, 2 лекции МИС
.pdf
</scene>
</RMT>
Сообщение о событии формируется в виде объекта. Как только объект «событие» создан, ОМС-плеер присваивает значения его свойствам. Набор свойств, а также их значения зависят от типа события.
Объект хранится в памяти столько времени, сколько необходимо для его обработки. Пока действует обработчик события, объект «событие» доступен для программного кода. В любой момент времени существует не более одного объекта «событие». Все инициированные события выполняются последовательно в порядке их наступления.
В объектной модели ОМС-плеера имеется объект event, являющийся подобъектом (свойством) объекта Player в котором хранится информация о текущем событии.
• Состав, структура и функциональность объектов
Образовательный контент электронных учебных модулей структурирован по уровням. Единица верхнего уровня – сцена, соответственно объект «Сцена» (scene) является базовым в OST. Сцена включает композиции медиаэлементов, представляющих изучаемые объекты и процессы, в ней реализуется интерактив, динамика и функциональность модуля.
Во время синтаксического разбора XML-документа, описывающего сцену, создается иерархическая структура объектов в соответствии с вложенностью элементов XML-файла. Эта иерархическая структура и является тем основным набором объектов, с которыми работают процедуры, описанные на языке JavaScript. Преимущественно это скрипты дополнительной инициализации объектов сцены и скрипты – обработчики событий, возникающих во время работы сцены. Для медиаэлементов и их композиций соответствующий JavaScript-объект является своеобразной «оберткой», позволяющей через скрипт управлять их воспроизведением и получать информацию о параметрах и текущем состоянии.
Все объекты можно условно разделить на глобальные, графические медиа-объекты, объекты 3D-сцен, объекты звуковых фрагментов, объекты для работы с XML и вспомогательные. Объекты каждого типа содержат свой собственный набор свойств и порождаемых событий.
Для динамического создания объектов через JavaScript включены JavaScript-классы для всех типов объектов.
Для создания однотипных объектов и композиций используется возможность создания собственных классов. Использование классов позволяет реализовать механизм наследования. Все объекты, объявленные в сценарии до элемента scene, считаются описанием классов.
151
Для включения медиаэлементов в сцену предусмотрены:
–двухмерные медиа-объекты (статические изображения, анимации и текст);
–объекты для включения звуковых и видео фрагментов;
–3D объекты.
Объявляется несколько специализированных глобальных функций, которые можно вызвать из любого фрагмента на JavaScript и использовать для отладки.
• Объектная модель ОМС-плеера
Как отмечалось выше ОМС-плеер расширяет среду (контекст) выполнения JavaScript, создавая в ней собственные дополнительные объекты и функции. На рис. П 2.1 представлены такие объекты, а также их взаимосвязь. Отличительной особенностью представленных объектов является то, что может существовать всего один экземпляр такого объекта, созданный при запуске ОМС-плеера.
Все объекты являются свойствами глобального объекта _global, поэтому доступ к ним возможен из любого скрипта на JavaScript.
Объект _global
Является корневым для всех остальных объектов и методов. К свойствам и методам объекта можно обращаться напрямую из любого фрагмента на JavaScript без указания самого объекта.
свойства: |
|
Player |
управление ОМС-плером; |
Key |
управление обработкой событий клавиатуры; |
Mouse |
управление обработкой событий мыши; |
Event |
параметры событий; |
scene |
сцены включают в себя медиаэлементы, их композиции и |
|
реализуют интерактив, динамику и функциональность |
|
модуля; |
API_1484_11 |
взаимодействие с системой учета учебных достижений в |
|
соответствии со спецификацией SCORM RTE 1.3.1. |
методы: |
|
trace |
вывод в протокол работы программы-реализатора |
|
отладочной информации, заданной в виде одной строки, |
152
|
передаваемой в качестве аргумента; |
traceRefs |
вывод в протокол работы программы-реализатора пути к |
|
свойствам-ссылкам на указанный объект, передаваемый в |
|
качестве аргумента; |
exit |
позволяет прервать работу целого скрипта, определенного в |
|
соответствующей секции XML; |
resourceExist |
функция возвращает «истина», если ресурс, путь к которому |
|
передан в качестве параметра, существует; |
setFocus |
установить фокус ввода на объект, который передан в |
|
качестве параметра; |
getFocus |
возвратить объект, который владеет фокусом ввода. |
153
Key
Свойства
keyCode : int shiftKey : Boolean shiftLeft : Boolean ctrlKey : Boolean
Mouse
Свойства
x : Number
y : Number target : Object
leftButton : Boolean
_global
trace(String) : void
traceRefs(Object) : String
version
Свойства
major : Number
minor : Number
Player
Свойства
_time
Методы
Event |
scene |
API_1484_11
Методы
Initiliaze(String) : String
Terminate(String) : String
GetValue(String) : String
UI
module
Свойства
identifier : String title : String description : String language : String
metaData : Object {XMLDocument}
width : Number
height : Number
Методы
window
Свойства
Рис. П 2.1. Объектная модель ОМС плеера
154
Объект Player
Позволяет управлять OMC-плеером и получать некоторую информацию о его состоянии, а также о загруженном ЭУМ.
свойства:
window |
объект, представляющий свойства окна ОМС-плеера; |
||||||
module |
объект, представляющий открытый ЭУМ; |
|
|
||||
UI |
объект, |
представляющий |
унифицированный |
||||
|
пользовательский интерфейс (УПИ); |
|
|
||||
_time |
время, прошедшее с момента запуска ОМС-плеера в |
||||||
методы: |
миллисекундах. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
minimize |
минимизировать (свернуть в трей) окно OMC-плеера; |
||||||
exit |
завершить работу ОМС-плеера. |
|
|
|
|||
события: |
|
|
|
|
|
|
|
onReport |
событие, инициируемое ОМС-плеером при ошибке |
||||||
|
воспроизведения ЭУМ. Вся информация о возникшей |
||||||
|
ситуации заноситься в объект Event. При наступлении |
||||||
|
данного события в объекте Event задаются следующие |
||||||
|
свойства: |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Event.type |
|
Тип |
возникшей |
исключительной |
||
|
|
|
ситуации, |
возможны |
следующие |
||
|
|
|
предопределенные |
значения ("error", |
|||
|
|
|
"warning"). |
|
|
|
|
|
|
|
|
|
|
||
|
Event.code |
|
Причина |
|
возникновения |
||
|
|
|
исключительной ситуации. |
||||
|
|
|
Для |
случая "error" |
определены |
||
|
|
|
следующие варианты: |
|
|||
|
|
|
"no_decoder" |
|
|
||
|
|
|
ЭУМ |
затребовал |
недопустимый |
||
|
|
|
компонент программного окружения; |
||||
|
|
|
"no_flash_decoder" |
|
|
||
|
|
|
не найдено программное окружение |
||||
|
|
|
для воспроизведенияAdobe Flash; |
||||
|
|
|
"not_the_true_version_flash" |
||||
|
|
|
найденное |
программное |
окружение |
||
|
|
|
для воспроизведения Adobe Flash не |
||||
|
|
|
|
|
|
|
|
155
соответствует по версии; (param0 – найденная версия, param1 – версия, которая необходима);
"message"
необходимо вывести сообщение о возникновении критической ошибки (param0 – текст сообщения).
Для случая "warning" определены следующие варианты:
"no_found_resource"
запрашиваемый из скрипта медиаэлемент не найден (param0 – имя ресурса);
"no_image_decoder"
для медиаэлемента «растровая картинка» не найден декодер (param0
– имя ресурса);
"no_stream_decoder"
для медиаэлемента «потоковый контент» (аудио или видео) не найден декодер (param0 – имя ресурса).
Event.param[0 ... N] |
Дополнительные |
сведения, |
их |
|
количество и значение зависит от |
||
|
ситуации. |
|
|
|
Объект version |
|
Позволяет получить информацию о версии ОМС-плеера. Версия представляется в |
виде major.minor.micro.build (например: 2.1.0.21) |
|
|
свойства: |
major |
старший номер версии; |
minor |
младший номер версии; |
micro |
номер релиза; |
156
build |
номер сборки; |
number |
номер версии без номера сборки в фиксированном шестизначном |
|
формате xxyyzz. |
Объект window
свойства:
clientWidth |
размер зоны вывода контента и УПИ по горизонтали; |
clientHeight |
размер зоны вывода контента и УПИ по вертикали. |
Объект module
Позволяет получить информацию о загруженном в данный момент ЭУМ.
свойства:
identifier |
идентификатор ЭУМ (берется из метаданных ЭУМ); |
title |
заглавие ЭУМ (берется из метаданных ЭУМ); |
description |
описание ЭУМ (берется из метаданных ЭУМ); |
language |
естественный язык, на котором представлена информация в |
|
ЭУМ (берется из метаданных); |
metaData |
метаданные ЭУМ; |
width |
размер зоны контента по горизонтали; |
height |
размер зоны контента по вертикали. |
методы:
extract(String) распаковка ресурсов (файл или папка) модуля во временную папку, возвращаемая строка - полный путь к временной папке;
gotoLink(String) переход по внешней ссылке. Ссылка имеет следующий формат:
<протокол>://<тело ссылки>, где <протокол> может принимать следующие значения «http», «https», «ftp», «mailto» – будут запущены внешние приложения, ассоциированные средствами операционной системы с соответствующими протоколами; «oms-module» − к текущему экземпляру программы-реализатора будет подгружен ЭУМ с соответствующим идентификатором, если таковой будет найден в Локальном хранилище.
157
события:
onLoad |
вызывается после загрузки метаданных модуля и перед началом |
|
загрузки модуля; |
onUnload |
событие вызывается непосредственно перед началом выгрузки |
|
модуля; |
onSceneComplete |
событие после окончания загрузки сцены. |
Объект Mouse
Позволяет получать данные о положении курсора и управлять видимостью указателя курсора мыши, все свойства объекта доступны только для чтения.
свойства:
x |
координата X указателя мыши; |
y |
координата Y указателя мыши; |
target |
ссылка на объект сцены, над которым находится указатель мыши; |
leftButton |
«истина», если в данный момент нажата левая клавиша мыши; |
rightButton |
«истина», если в данный момент нажата правая клавиша мыши; |
middleButton |
«истина», если в данный момент нажата средняя клавиша мыши. |
методы: |
|
show() |
показать указатель курсора мыши; |
hide() |
скрыть указатель курсора мыши. |
константы:
NO, ARROW, HAND, WAIT, BEAM, SIZENESW, SIZENS, SIZENWSE, SIZEWE, SIZEALL, UPARROW
Объект Key
Позволяет получить информацию о том, какую кнопку нажали и о состоянии управляющих клавиш. В объекте также определены коды управляющих клавиш.
свойства:
keyCode |
код нажатой клавиши; |
shiftKey |
нажата клавиша Shift; |
shiftLeft |
нажата левая клавиша Shift; |
158
ctrlKey |
нажата клавиша Ctrl; |
ctrlLeft |
нажата левая клавиша Ctrl; |
altKey |
нажата клавишаAlt; |
altLeft |
нажата левая клавишаAlt. |
константы:
BACKSPACE, CAPSLOCK, CONTROL, DELETEKEY, DOWN, END, ENTER, ESCAPE, HOME, INSERT, LEFT, PGDN, PGUP, RIGHT, SHIFT, SPACE, TAB, UP
методы:
getCode() |
Возвратить код нажатой клавиши вANSI кодировке; |
getUnicode() |
Возвратить код нажатой клавиши в Unicode кодировке. |
Объект API_1484_11
Позволяет осуществлять взаимодействие с системой учета учебных достижений в соответствии со спецификацией SCORM RTE 1.3.1.
методы:
Initiliaze(String) |
используется для инициализации коммуникационной |
|
сессии. Данная функция должна быть вызвана до вызова |
|
функций передачи данных; |
Terminate(String) |
используется для завершения сессии. После вызова |
|
функции Terminate вызовы всех функций API (кроме |
|
вспомогательных функций) запрещены; |
GetValue(String) |
функция запрашивает значения элементов модели |
|
данных. В качестве параметра передается строка – |
|
название элемента модели данных. Возвращает значение |
|
элемента данных; |
SetValue(String, String) |
функция назначает значение второго параметра элементу |
|
данных, описанному первым параметром; |
Commit(String) |
сохраняет данные, назначенные элементам модели |
|
данных; |
GetLastError() |
возвращает код ошибки, возникшей после последнего |
|
вызова функции; |
GetErrorString(String) |
возвращает описание ошибки, соответствующей коду, |
|
передаваемому в качестве параметра; |
GetDiagnostic(String) |
возвращает дополнительную информацию об ошибке. |
159
•Объекты, поддерживаемые OST
ОМС-плеер расширяет ядро языка JavaScript набором своих объектов для построения интерактивных мультимедиа сцен.
Объекты сцены:
Shape |
кривые; |
Image |
изображение; |
Animation |
растровая анимация; |
Video |
видеофрагмент; |
Text |
текст; |
Viewport |
область отображения 3D-сцен; |
Composition |
композиция объектов; |
Button |
«горячая зона» (кнопка или изображение объекта); |
Styles |
стили текстовых объектов; |
Input |
ввод текста; |
Flash |
Adobe Flash-анимация. |
Объекты3D-сцен: |
|
Object3D |
трехмерный объект; |
Scene3D |
трехмерная сцена; |
Group |
группа 3D-объектов; |
Light |
освещение; |
Camera |
камера; |
Motion |
движение 3D-объекта; |
Path3D |
путь движения 3D-объекта; |
Materials |
набор материалов 3D-объекта; |
Material |
настройки материала 3D-объекта; |
Map |
карта для текстуры 3D-объекта. |
Звуковые медиа-объекты: |
|
Audio |
звуковой фрагмент. |
Поддержка XML: |
|
XML |
XMLDocument, XMLElement, XMLText |
160
