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

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

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

setInterval

выполнять JavaScript-кода через равные промежутки

 

времени;

clearInterval

отменить выполнение JavaScript-код через равные

 

промежутки времени.

Button

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

Input

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

свойства:

value

текст;

style

ссылка на объект стилей.

Flash

Объект осуществляет воспроизведение Adobe Flash – анимации.

методы:

 

 

 

setVariable

установить значение внутренней переменной в объекте

 

Flash;

 

 

getVariable

получить значение внутренней переменной;

callFunction

вызвать внутреннюю функцию. Формат вызова

 

следующий:

 

 

 

 

 

 

myFlash.callFunction

 

 

(

 

 

 

'<invoke

name="myfunc"

returntype="xml">

 

<arguments><string>"Args"</string></arguments>

 

</invoke>'

 

 

 

)

 

 

события:

 

 

 

 

 

 

onFSCommand вызывается при срабатывании FS-команд. В глобальном объекте Event определяются свойства: «command» и «parameters».

Styles

Объект задает свойства (стиль) для текстовых объектов.

171

свойства:

 

 

font

параметры шрифта, например "italic bold 12pt serif";

fontFamily

название шрифта;

fontStyle

наклон шрифта; может принимать значения: «normal»,

 

«italic»;

fontWeight

толщина шрифта; может принимать значения: «normal»,

 

«bold»;

fontSize

размер шрифта; может задаваться как в пикселях, так и в

 

пунктах, например: "14px" или "14pt";

lineHeight

высота строки (межстрочное расстояние) может

 

принимать значение: «normal», а можно также задать

 

цифровые значения в пикселях, пунктах, процентах или

 

быть задано строковой константой «normal», например:

 

"5pх", "3pt", "150%" или "normal";

textAlign

выравнивание текста; возможные значения: "left", "right",

 

"center", "justify";

textIndent

отступ первой строки абзаца; задается в пикселях или

 

пунктах;

color

цвет, возможны следующие форматы задания цвета:

 

#RGB - "#F00";

 

#ARGB - "#7F00";

 

#RRGGBB – "#FF0000";

 

#AARRGGBB – "#77FF0000";

 

– rgb Af Gf Bf – "rgb 1.0 0.5 0.0";

 

– символьное обозначение цвета согласно HTML –

 

"darkblue".

Viewport

Область отображения 3D-сцен

172

свойства:

 

camera

камера 3D-сцены, «через которую смотрим»;

show_hints

флаг «показывать подсказки»;

include

массив ссылок на 3D-объекты, которые надо показывать;

exclude

массив ссылок на 3D-объекты, которые не надо

 

показывать.

методы:

 

getObjectIn

получить 3D объект по двухмерным координатам;

getProjection

получить проекционные координаты 3D объекта или

 

точки.

Object3D

Трехмерный объект.

свойства:

shadow

ссылка на объект Shadows;

materials

свойства материалов;

motion

первоначальное положение.

Scene3D

Трехмерная сцена.

Group

Группа 3D-объектов.

Light

Источник освещения в трехмерной сцене.

Camera

Объект камера в трехмерной сцене.

свойства:

fov

FOV камеры;

dest

точка, куда направлена камера.

173

Motion

Движение 3D-объекта.

свойства:

 

inverse

обратное движение;

duration

длительность движения;

primary

флаг приоритетности движения;

tracks

параметры треков движения.

XML

Объект позволяет получать из OST-сценария доступ ко внешним XML-файлам.

свойства:

XMLDocument ссылка на XML документ (DOM Level 1).

Sequencer

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

Используется также несколько вспомогательных типов данных, которые могут потребоваться для представления некоторых структур данных:

 

Color – цвет

r

красная составляющая цвета [0 … 255];

g

зеленая составляющая цвета [0 … 255];

b

синяя составляющая цвета [0 … 255];

a

alpha, степень непрозрачности цвета [0 … 255].

Point – точка

174

xкоордината X (целое число);

yкоордината Y (целое число).

Rectangle – прямоугольная область left левая граница (целое число);

top верхняя граница (целое число); right правая граница (целое число); bottom нижняя граница (целое число).

Position3D позиция в трехмерном пространстве

xкоордината X (вещественное число);

yкоордината Y (вещественное число);

zкоордината Z (вещественное число).

clone

возвращает копию объекта;

add

прибавляет координаты другого вектора;

sub

вычитает координаты другого вектора;

mult

умножает все компоненты вектора на скаляр;

div

делит все компоненты вектора на скаляр;

dot

вычисляет скалярное произведение векторов;

cross

вычисляет векторное произведение векторов;

blend

интерполирует два вектора;

normalize

нормализует вектор;

length

вычисляет длину вектора.

 

Rotation3D поворот в трехмерном пространстве

x

координата X вектора (вещественное число);

y

координата Y вектора (вещественное число);

175

z

координата Z вектора (вещественное число);

a

угол поворота (вещественное число в радианах).

clone

возвращает копию объекта;

mult

возвращает результат двух последовательных поворотов;

conjugate

возвращает обратный поворот;

blend

вычисляет промежуточный поворот между двумя заданными;

normalize

нормализует кватернион поворота;

Scale3D масштаб в трехмерном пространстве

xмасштаб по координате X (вещественное число);

yмасштаб по координате Y (вещественное число);

zмасштаб по координате Z (вещественное число).

Поддержка XML

Формат XML очень удобен для хранения структурированных данных. Например, его можно использовать для хранения «метасценариев» сцен учебных модулей. Для работы с XML-ресурсами модулей в OST существует специальный тип XML. Тип XML унаследован от базовых типов Element и Loadable. В свойстве src указывается XML-файл, который будет загружен. На основе загруженного XML-файла строится иерархия объектов, которые соответствуют XML-документу (тип XMLDocument), XML-элементам документа (тип XMLElement), текстовым записям в XML-элементах (тип XMLText), секции комментариев (тип mlXMLComment), секции CDATA (тип mlXMLCDATASection), атрибуту (тип mlXMLAttr) и пространству имен (тип mlXMLNameSpace). Доступ к элементам загруженного XML-документа осуществляется через свойство XMLDocument соответствующего типа.

Все объекты иерархии XML-документа (XMLDocument, XMLElement, XMLText, mlXMLComment, mlXMLCDATASection, mlXMLAttr) унаследованы от базового типа

XMLNode (XML-запись), за исключением mlXMLNameSpace. Также введены вспомогательные типы объектов: mlXMLNodeList и mlXMLNamedNodeMap для хранения XML-записей.

XMLNode

свойства:

176

nodeName

имя записи;

nodeValue

значение записи;

nodeType

тип записи:

 

ELEMENT_NODE

1

 

ATTRIBUTE_NODE

2

 

TEXT_NODE

3

 

CDATA_SECTION_NODE

4

 

ENTITY_REFERENCE_NODE

5

 

ENTITY_NODE

6

 

PROCESSING_INSTRUCTION_NODE

7

 

COMMENT_NODE

8

 

DOCUMENT_NODE

9

 

DOCUMENT_TYPE_NODE

0

 

DOCUMENT_FRAGMENT_NODE

1

 

NOTATION_NODE

2

 

NAMESPACE_DECL

8

parentNode

ссылка на родительскую запись;

 

childNodes

список дочерних записей (mlXMLNodeList);

 

firstChild

ссылка на первую дочернюю запись;

 

lastChild

ссылка на последнюю дочернюю запись;

 

previousSibling

ссылка на предыдущую запись;

 

nextSibling

ссылка на следующую запись;

 

attributes

карта атрибутов (mlXMLNamedNodeMap);

 

ownerDocument

ссылка на документ;

 

textContent

объединение значений дочерних записей;

 

nameSpace

пространство имен (XMLNameSpace).

 

методы:

 

 

insertBefore

вставить запись перед дочерней записью;

 

replaceChild

заменить дочернюю запись на другую;

 

removeChild

удалить дочернюю запись;

 

appendChild

добавить дочернюю запись;

 

hasChildNodes

есть ли дочерние записи;

 

cloneNode

сделать копию записи.

 

Некоторые из этих унаследованных свойств имеют различное значение для разных типов записей. Свойство nodeName имеет значение только для XML-элементов и содержит имя тэга. Свойство nodeValue имеет значение только для текстовых записей. У

177

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

XMLDocument

XML-документ может содержать только один дочерний элемент (корневой) и не имеет атрибутов. У XML-документа, кроме унаследованных от базового типа, определены дополнительно следующие

методы:

 

createElement

создать новый элемент;

createTextNode

создать текстовую запись;

createAttribute

создать атрибут для элемента;

createComment

создать новый элемент «комментарий»;

createCDATASection

создать новую секцию CDATA;

getElementsByTagName

получить все элементы с заданным именем тэга

 

(mlXMLNodeList);

getElementById

найти элемент по его идентификатору.

XMLElement

У XML-элементов, кроме унаследованных, существуют следующие

свойства:

 

tagName

имя тэга.

методы:

 

getAttribute

получить значение атрибута по имени;

setAttribute

установить значение атрибута по имени;

removeAttribute

удалить атрибут по имени;

getAttributeNode

получить атрибут по имени (mlXMLAttr);

setAttributeNode

установить атрибут значению объекта mlXMLAttr;

removeAttributeNode

удалить атрибут по имени или по значению объекта

 

mlXMLAttr;

getElementsByTagName

получить все элементы с заданным именем тэга;

findElement

найти дочерний элемент.

XMLText

Текстовая запись имеет следующие

свойства:

178

data

текст записи;

length

длина текста записи.

методы:

 

substringData(offset,size)

получить часть текста;

appendData(str)

добавить текст;

insertData(offset,str)

вставить текст;

deleteData(offset,size)

удалить часть текста;

replaceData(offset,size,str)

заменить часть текста;

splitText(offset)

разбить текстовую запись на две.

mlXMLCDATASection

 

свойства:

data

текстовые данные записи;

length

длина текста записи.

mlXMLNamedNodeMap

свойства:

 

length

размер списка.

методы:

 

item

вернуть элемент по числовому индексу (XMLNode);

getNamedItem

вернуть объект по имени;

setNamedItem

поместить объект в список; объект должен иметь тип

 

mlXMLAttr;

removeNamedItem

удалить объект из списка по имени.

mlXMLNodeList

 

свойства:

 

length

размер списка.

методы:

 

item

вернуть элемент по числовому индексу (XMLNode).

mlXMLNameSpace

 

свойства:

 

179

href

идентификатор пространства имен;

prefix

префикс пространства имен.

Синтаксис

Описание сцены представляется в XML-формате и содержит элементы, соответствующие определенным типам.

Простейшая сцена, содержащая только одно изображение, размещенное по координатам (0, 0), описывается следующим образом.

Пример

<?xml version="1.0" encoding="UTF-8"?>

<RMT>

<scene>

<image src="back.png"/>

</scene>

</RMT>

Кодировка UTF-8, указанная в первой строке, является наиболее часто используемой кодировкой, в которой хранятся XML-документы. Она удобна с технической точки зрения, но не все редакторы могут корректно с ней работать. Можно использовать кодировку windows-1251:

<?xml version="1.0" encoding=" windows-1251"?>

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

В формате XML используются для разметки несколько зарезервированных символов: амперсанд (&), левая угловая скобка (<), правая угловая скобка (>), апостроф (‘) и кавычки (“). Чтобы использовать эти символы в содержимом элемента или атрибута, необходимо использовать ссылку на сущность (entity), которая начинается со знака амперсанда и заканчивается точкой с запятой (;). XML предоставляет следующие внутренние сущности: & – для амперсанда, < – для левой угловой скобки, &gt – для правой, ' – для апострофа и " – для кавычки.

180