В приведенных выше примерах были показаны отдельные определения объектов. Если в документе должно содержаться несколько экземпляров одного и того же объекта, объявление и инициализацию объекта можно разделить. Такой способ имеет несколько преимуществ:
Данные могут загружаться агентом пользователя из сети один раз (во время объявления) и повторно использоваться в каждой инициализации.
Инициализировать объект можно из местоположения, отличного от того, в котором объект объявлялся, например, из ссылки.
Объекты можно определять в качестве рабочих данных для других объектов.
Чтобы объявить объект так, чтобы он не обрабатывался агентом пользователя при чтении, установите логический атрибут declare элемента OBJECT. В то же время авторы должны идентифицировать объявление, установив уникальное значение для атрибута id в элементе OBJECT. Инициализация объекта позже будет ссылаться на этот идентификатор.
Объявленный OBJECT должен присутствовать в документе до первого экземпляра OBJECT.
|
|
Объект, определенный с атрибутом declare, инициализируется каждый раз, когда необходима генерация элемента, ссылающегося на этот объект (например, активизируется ссылка на него, активизируется объект, ссылающийся на него и т.д.).
В следующем примере мы объявляем OBJECT и вызываем его инициализацию, указав его в ссылке. Таким образом, объект можно активизировать, щелкнув, например, на выделенном тексте.
<P><OBJECT declare
id="earth.declaration"
data="TheEarth.mpeg"
type="application/mpeg">
Вид <STRONG>Земли</STRONG> из космоса.
</OBJECT>
...далее в документе...
<P>Красивое<A href="#earth.declaration"> анимационное изображение Земли!</A>
В следующем примере показано, как указать рабочие значения, являющиеся другими объектами. В этом примере мы отправляем текст (стихотворение) гипотетическому механизму для просмотра стихотворений. Объект распознает рабочий параметр с именем "font" (скажем, для генерации текста стихотворения с использованием определенного шрифта). Значение этого параметра само является объектом, вставляющим (но не генерирующим) объект шрифта. Отношение между объектом шрифта и объектом механизма просмотра стихотворений достигается с помощью (1) назначения атрибута id в объявлении объекта шрифта и (2) ссылки на него в элементе PARAM объекта механизма просмотра стихотворений (с помощью valuetype и value).
<P><OBJECT declare
id="tribune"
type="application/x-webfont"
data="tribune.gif">
</OBJECT>
...просмотр стихотворения из файла KublaKhan.txt...
<P><OBJECT classid="https://foo.bar.com/poem_viewer"
data="KublaKhan.txt">
<PARAM name="font" valuetype="object" value="#tribune">
<P>У вас нет такой классной программы просмотра стихотворений...
</OBJECT>
Агенты пользователей, не поддерживающие атрибут declare, должны генерировать содержимое объявления OBJECT.