Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

4 курс (заочка) / Лекции / 1, 2 лекции МИС

.pdf
Скачиваний:
11
Добавлен:
30.10.2024
Размер:
4.69 Mб
Скачать

</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