4. Bild, Text und Ton
4.5. Hyperlinks
Mit SMIL lassen sich Hyperlinks definieren, wie wir sie
von HTML her kennen. Links können:
- ein bestimmtes Objekt mit einem anderen Objekt verbinden;
so kann der Nutzer durch Klicken auf den Link statt des ersten
Objekts das zweite Objekt sehen;
- ein Objekt mit einer HTML-Seite verbinden, die durch Anklicken
des Links im Standard-Browser sichtbar wird;
- ein Objekt mit einem anderen SMIL-Dokumente verbinden, so
dass eine völlig neue SMIL-Präsentation gestartet
wird.
SMIL kennt neben Links, die sich auf die gesamte Fläche eines Multimediaobjekts beziehen, auch die Definition von Hotspots, also Links, die sich lediglich auf einen flächenmässigen Ausschnitt eines Multimediaobjekts beziehen. In HTML spricht man in diesem Zusammenhang von Image-Maps.
SMIL kennt aber neben der flächenmäßigen Begrenzung von Links (Hotspots) auch die zeitliche Begrenzung von Links. Dies bedeutet, dass man Links für einen bestimmten Zeitraum aktivieren und wieder deaktivieren kann.
4.5.1. Das <a>-Element
4.5.1.1. Der Objekt-zu-Objekt-Link
Im einfachsten Fall verbindet ein Link ein Objekt
mit einem anderen Objekt . Wie in HTML definiert man auch in SMIL
diesen Link mit dem <a href=....>-Tag als Eröffnungstag
und dem </a>-Tag als Schlusstag.
Formal gesehen wird der <a href=...>-Tag vor dem
Medienelement und der </a>-Tag nach dem Medienelement plaziert.
Auf diese Weise wird das im href-Attribut genannte Objekt mit dem im
Medienelement spezifizierten Objekt verlinkt. Beispiel:
<smil>
<head>
<layout>
<root-layout width="450" height="300" background-color="#FAEBD7" />
<region id="region_1" left="75" top="50" width="310" height="200"
background-color="#000080" fit="fill" />
</layout>
</head>
<body>
<a href="bild.jpg">
<img src="bild2.jpg" region="region_1" />
</a>
</body>
</smil>
In diesem Beispiel ist das Bild "bild.jpg"
mit dem Bild "bild2.jpg" per Link verbunden. Wird die
Präsentation gestartet, wird zunächst das Bild "bild.jpg"
eingeblendet. Führt man den Cursor über das Bild, verändert
sich das Cursor-Icon in eine Hand; die Hand zeigt an, dass das
gesamte Bild durch einen Link mit einem anderen Objekt verbunden
ist. In der Statuszeile des Players wird ausgewiesen, auf welches
Objekt der Link verweist: "bild2.jpg".
Wird durch Klicken des Bildes "bild.jpg"
der Link ausgelöst, wird eine neue Präsentation mit
"bild2.jpg" gestartet. Die Präsentation des neuen
Bildes wird dabei völlig unabhängig von der bisherigen
Präsentation gesehen; d.h. weder die Definition des Präsentationsfensters
durch das <root-layout>-Element noch die Definition des
Präsentationsbereiches durch das <region>-Element gelten
für das neue Bild. Dieses wird vielmehr in seiner Originalgröße
präsentiert. Um das neue Bild ebenfalls im entsprechenden
Layout präsentieren zu können, muss der Link nicht zum
Bild direkt sondern zu einer zweiten SMIL-Datei, in der sich die
entsprechenden Layout-Informationen befinden, definiert werden.
Dies wird im nachfolgenden Beispiel gezeigt.
Bei der Verwendung eines Links ist zu beachten,
dass
- ein Player keinen "zurück"-Button besitzt,
um nach einem Klick wieder zu dem ursprünglichen Objekt
zurückkehren zu können;
- ein Player nur einmal gestartet werden kann, es also nicht
möglich ist, mehrere Präsentationen in mehreren Playerfenstern
ablaufen zu lassen, wie wir das vom Browser her kennen;
- sämtliche Layoutdefinitionen durch das Klicken eines
Links gelöscht werden; sollen die Definitionen erhalten
bleiben, muss der Link zu einem SMIL-Dokument führen, in
dem die entsprechenden Layoutdefinitionen und Medienlemente
abgelegt sind.
4.5.1.2. Der Objekt-zu-HTML-Link
Soll von einer Multimediapräsentation aus auf
eine HTML-Seite verwiesen werden, kann dies problemlos durch einen
Link von dem im RealPlayer sichtbaren Objekt zur HTML-Seite erfolgen.
Um den Standardbrowser, in dem die HTML-Seite sichtbar werden
soll, zu starten, muss in das <a>-Element lediglich das
Attribut show mit dem Attributwert new eingefügt
werden.
Im folgenden
Beispiel wird mit show=new
erreicht, dass:
- beim Klicken des Links
die Präsentation im Realplayer weiterläuft,
- der Standardwebbrowser
des Nutzers gestartet wird, und
- das zweite Bild im Webbrowser
sichtbar wird:
<smil>
<head>
<layout>
<root-layout width="147" height="116" background-color="yellow" />
<region id="region_1" left="8" top="10" width="116" height="81"
background-color="white" fit="slice" />
</layout>
</head>
<body>
<a href="bild2.jpg" show="new">
<img src="bild.jpg" region="region_1" />
</a>
</body>
</smil>
Im obenstehenden Beispiel wird der Link von dem
im RealPlayer sichtabren Bild zur HTML-Seite „Beispiel.html“
gesetzt. Wird auf das Bild geklickt, wird der Standardbrowser
gestartet; die HTML-Seite wird im Standardbrowser sichtbar.
Das <a>-Element besitzt wie gesagt ein Attribut,
mit dem gesteuert werden kann, ob das verlinkte Mediaobjekt in
einem Player oder in einem Browser präsentiert wird. Das
show-Attribut kennt die Parameter replace, new
und pause.
Wird das show-Attribut mit dem Wert "pause"
benutzt, wird die Präsentation des Bildes zunächst einmal
an der betreffenden Stelle angehalten, bis der Nutzer mit der
Play-Taste die Präsentation fortsetzt. Das neue Bild wird
ebenfalls im neu gestarteten Standardbrowser gezeigt. Beispiel:
<smil>
<head>
<layout>
<root-layout width="147" height="116" background-color="yellow" />
<region id="region_1" left="8" top="10" width="116" height="81"
background-color="white" fit="slice" />
</layout>
</head>
<body>
<a href="bild2.jpg" show="pause">
<img src="bild.jpg" region="region_1" />
</a>
</body>
</smil>
Wird das show-Attribut hingegen mit dem "replace"-Wert
benutzt, wird die Präsentation des ersten Bildes durch die
des zweiten Bildes im Player ersetzt. Replace wird als Voreinstellung
automatische benutzt, wenn das show-Attribut nicht angegeben ist.
4.5.1.3. Der SMIL-zu-SMIL-Link
Das folgenden Beispiel
besteht aus zwei SMIL-Dokumenten. Im ersten SMIL-Dokument wurde
der Link nicht direkt auf das Multimediaobjekt sondern auf ein
SMIL-Dokument, das in der Datei ex261c.smi abgelegt ist, definiert.
In diesem Dokument wurden dieselben Layoutdefinitonen wie im ersten
Dokument verwendet. In diesem Fall wird das zweite Bild dann im
selben Präsentationsbereich gezeigt wie das erste Bild.
Erstes SMIL-Dokument mit dem Link auf ein zweites
SMIL-Dokument:
<smil>
<head>
<layout>
<root-layout width="450" height="300" background-color="#FAEBD7" />
<region id="region_1" left="75" top="50" width="310" height="200"
background-color="#000080" fit="fill" />
</layout>
</head>
<body>
<a href="ex261c.smi">
<img src="bild.jpg" region="region_1" />
</a>
</body>
</smil>
Zweites SMIL-Dokument mit dem Dateinamen ex261c.smi
und dem Medienlement für bild2.jpg:
<smil>
<head>
<layout>
<root-layout width="450" height="300" background-color="#FAEBD7" />
<region id="region_1" left="75" top="50" width="310" height="200"
background-color="#000080" fit="fill" />
</layout>
</head>
<body>
<img src="bild2.jpg" region="region_1" />
</body>
</smil>
Wird die Präsentation gestartet, erscheint
zunächst das erste Bild im Präsentationsfenster. Dieses
Bild besitzt einen Link auf das zweite Bild. Wird dieser Link
geklickt erscheint das zweite Bild im Präsentationsfenster.
Diese Technik kann auch benutzt werden, wenn man
von einer SMIL-Datei auf ein andere SMIL-Datei verlinkt, und dabei
an eine bestimmte Stelle dieser SMIL-Datei springen möchte.
In diesem Fall ist in der Linkreferenz der Dateinamen der SMIL-Datei
und der id-Name des betreffenden Elements verbunden duch ein Doppelkreuz
anzugeben. Beispiel:
<a
href="ex261c.smi">
Mit SMIL können Links auf andere SMIL-Dateien
oder auf andere Abschnitte derselben SMIL-Datei (interner Link)
definiert werden. In HTML-Dokumenten werden interne Links dadurch
definiert, dass an einer bestimmten Stelle eines HTML-Dokuments
ein Anker oder target eingefügt wird, der dann als Zielpunkt
des Links benutzt werden kann. In SMIL wird dieser Anker bzw.
target durch das "id"-Attribut unterschiedlichster Elemente
definiert.
Im folgenden Beispiel
wird mit Hilfe des id-Attributs jedem Element ein Name zugewiesen.
Dieser Namen kann dann als Anker oder target für den Link
benutzt werden.
<smil>
<head>
<layout>
<root-layout width="247" height="216" background-color="yellow" />
<region id="region_1" left="8" top="10" width="216" height="181"
background-color="white" fit="slice" />
</layout>
</head>
<body>
<a href="#melonen">
<img id="smily" src="bild2.jpg" region="region_1" />
</a>
<img id="melonen" src="melonen.jpg" region="region_1" />
</body>
</smil>
Wird die Präsentation gestartet, erscheint
zunächst das erste Bild (Smily) im Präsentationsfenster.
Dieses Bild besitzt einen Link auf das zweite Bild (Melonen).
Wird dieser Link geklickt, erscheint das zweite Bild im Präsentationsfenster.
Diese Technik kann auch benutzt werden, wenn man
von einem SMIL-Dokument auf ein anderes SMIL-Dokument verlinkt,
und dabei an eine bestimmte Stelle dieses SMIL-Dokuments springen
möchte. In diesem Fall ist in der Linkreferenz der Dateinamen
der SMIL-Datei und der id-Name des betreffenden Elements verbunden
duch ein Doppelkreuz anzugeben. Beispiel:
<a href="ex263b.smi#melonen">
<img src="bild.jpg" region="region_1" />
</a>
Hierbei sind allerdings einige Einschränkungen
zu beachten:
- Links können nur zu Elementen definiert werden, die ein
id-Attribut kennen.
- Wird ein Link zu einem speziellen Medienelement einer <par>-Gruppe
definiert, wird trotzdem die ganze Grupppe in der Präsentation
zu sehen sein; es ist also nicht möglich, durch Links einzelne
Medienelemente von der Präsentation auszuschliessen.
- Mit Hilfe des <anchor>-Elements lassen sich Hotspots
definieren, die dann mit unterschiedlich spezifiezierten Links
belegt sein können.
4.5.2. Hotspots - Das <area>-Element
Während das <a>-Element die gesamte Präsentationsfläche
eines Medienobjekts als Link benutzt, bietet das <area>-Element
die Möglichkeit, einen bestimmten Bereich zu definieren,
der als Link verwendet wird. Dies bedeutet, dass mit dem <area>-Element,
Hotspots definiert werden können. Neben dieser flächenmässigen
Begrenzung von Links kennt SMIL auch die zeitliche Begrenzung
eines Links. In SMIL 1.0 wurde hierfür das <anchor>-Element
benutzt. Dieses Element wurde in SMIL 2.0 zu Gunsten des <area>-Elements
aufgegeben. Das <area>-Element besitzt gegenüeber dem
<anchor>-Element eine wesentlich erweiterte Funktionalität.
Das <area>-Element wird benutzt, um Links zu einer HTML-Seite,
einem XML-dokument oder einer anderen SMIL-Präsentation herzustellen.
Das <area>-Element kann dabei wie das <a>-Element
unterschiedliche Verfahren zur Aktivierung des Links nutzen. Im
einfachsten Fall wird der Klick auf einen bestimmten Bereich eines
Medienobjekts den Link auslösen. Es ist aber auch möglich,
die Auslösung des Links an ein zeitliches Ereignis oder an
die Eingabe eines definierten Zeichens zu koppeln.
Im einfachsten wird das <area>-Element in
das Mediaelement eingefügt. Beispiel:
<img src="bild.jpg" region="region_1">
<area href="bild2.jpg" show="pause" />
</img>
Das <img>-Element wird nicht wie sonst nach
dem letzten Attribut mit einem Schrägstrich "/"
abgeschlossen wird. Vielmehr wird das <img>-Element wird
mit dem <img ....>-Tag geöffnet. Dem noch offenen <img>-Element
folgt dann das <area>-Element, das nach dem letzten Attribut
mit einem Schrägstrich "/" abgeschlossen wird.
Das noch offene <img>-Element wird dann mit dem </img>-Tag
abgeschlossen. Bis zu diesem Punkt unterscheidet sich das <area>-Element
nicht vonm <a>-Element. Während sich das <a>-Element
aber immer auf das gesamte Medienobjekt bezieht, können mit
dem <area>-Element Bereiche des Medienobjekts als Linkfläche
(Hotspot) markiert werden.
4.5.2.1. Definition eines permanenten Hotspots
Um einen Hotspot zu erzeugen, werden im <area->Element
die räumlichen Koordinaten des Hotspots mit dem coords-Attribut
definiert. Vervollständigen wir unser Beispiel:
<img src="bild.jpg" region="region_1">
<area href="bild2.jpg" show="pause" coords="20,40,100,80" />
</img>
Die Werte der Koordinaten können in Pixeln oder in Prozent angegeben werden. In unserem Beispiel sind die Koordinaten als Abstände in Pixeln angegeben. Die Koordinatenwerte beziehen sich auf den
- linken Rand des Hotspots,
- oberen Rand des Hotspots,
- rechten Rand des Hotspots und
- unteren Rand des Hotspots.
Die Massangaben der Koordinatenwerte werden als Abstand bezogen auf den linken bzw. oberen Rand des Bildes angegeben. In unserem Beispiel ist der Hotspot also 20 Pixel vom linken und 40 Pixel vom oberen Rand des Bildes entfernt; der Hotspot hat eine Breite von 60 Pixeln und eine Höhe von 40 Pixeln. Breite und Höhe des Hotspots ergeben sich aus der Differenz des linken und rechten bzw. des oberen und unteren Randes.
Werden für die Angabe der Hotspotkoordinaten Prozentwerte benutzt, so beziehen diese sich auf die Größe des Bildes. Wird unser Beispiel wie folgt modifiziert:
<img src="bild.jpg" region="region_1">
<anchor href="bild2.jpg" show="pause" coords="25%,25%,75%,75%" />
</img>
so bedeutet dies, dass sich der Hotspot genau in der Mitte des Bildes befindet, und eine Breite und Höhe von jeweils 50% des Bildes besitzt. Der linke und rechte Rand des Hotspots befindet sich 25% bzw. 75% der Bildbreite vom linken Rand des Bildes entfernt; der obere und untere Rand des Hotspots befinden sich 25% bzw. 75% der Bildhöhe vom oberen Rand des Bildes entfernt.
4.5.2.2. Definition eines zeitlich begrenzten Hotspots
Mit dem <area>-Element lassen sich neben permanenten
Hotspots auch zeitlich begrenzte Hotspots durch die Verwendung
der Attribute "begin" und "end" definieren.
Im folgenden Beispiel ist
durch die Spezifikationen des begin- und end-Attributs der Link
für das eingeblendete Bild nur die ersten 3 Sekunden aktiv:
<img src="bild.jpg" region="region_1">
<area href="bild2.jpg" show="pause" coords="25%,25%,75%,75%" begin="0s" end="3s" />
</img>
Es ist auch möglich, nur einen begin-Wert anzugeben. In diesem Fall wird der Link nach der spezifizierten Zeit aktiv und bleibt bis zum Ende der Präsentation aktiv. Sind keine begin- und end-Werte angegeben, bleibt der Link solange aktiv, wie das Bild auf dem Bildschirm erscheint.
4.5.3. Die Link-Module
Nach diesen einführenden Beispielen sollen
die einzelnen Link-Module systematische erläutert werden.
Es handelt sich dabei um das Basic Linking Modul und das Objekt
Linkung Modul sowie um das Linking Attributes Modul.
4.5.3.1. Das Linking Attributes Modul
Das Linking Attributes Modul definiert einige Attribute,
die allgemeine Gültigkeit für alle Link-Elemente besitzen.
Dies sind im einzelnen:
- accesskey Tastenkombination der Tastatur, deren Eingabe
durch den Benutzer den Link auslöst. Beispiel.
- actuate bestimmt ob der Link automatisch oder aufgrund
eines Ereignisses ausgeführt wird, mit den Attributwerten:
- onRequest der Link wird auf Anfrage ausgeführt
(Voreinstellung);
- onLoad wird automatisch ausgeführt, wenn das
Quellobjekt aktiv wird.
- alt Alternativer Text, der statt des Medienobjekts
angezeigt wird.
- destinationLevel Lautstärke des Zielobjekts
in Prozent; Voreinstellung 100%. Beispiel.
- destinationPlaystate Verhalten des Zielobjekts mit
folgenden Attributwerten:
- play Das Zielobjekt beginnt nach Auslösen
des Links (Voreinstellung);
- pause Das Zielobjekt wird auf Pause gesetzt.
- external spezifiziert ob das Zielobjekt durch die
laufende Anwendung oder durch eine externe Anwendung geöffnet
werden soll; mit den Attributwerten:
- true externe Anwendung
- false laufende Anwendung.
- show Verhalten der Präsentation, wenn der Link
ausgelöst wird mit folgenden Attribuwerten:
- new Das Zielobjekt startet in einem neuen Kontext,
ohne dass das Verhalten des Quellobjekts beeinflusst wird;
- pause das Zielobjekt wird auf Pause gesetzt und
das Quellobjekt startet in einem neuen Player (dieser Attributwert
wird in SMIL 2.0 zu Gunsten von new in Verbindung
mit dem Attribute sourcePlaystate und dem Attributwert
pause aufgegeben;
- replace Das Quellobjekt wird auf Pause gesetzt
und das Zielobjekt beginnt (Voreinstellung).
- sourceLevel Lautstärke des Quellobjekts in Prozent;
die Voreinstellung beträgt 100%
- sourcePlaystate Verhalten des Quellobjekts mit folgenden
Attributwerten:
- play Das Quellobjekt läuft nach Auslösen
des Links weiter;
- pause Das Quellobjekt geht nach Auslösen des
Links n den Pause-Status;
- stop Das Quellobjekt stoppt nach Auslösen
des Links.
Anmerkung: Die Attributwerte des show-Attributs haben
eine höhere Wertigkeit.
- tabindex Position in einer Linkfolge, die mit dem
Tabulator abgegangen werden kann.; als Attributwerte werden
Ziffern benutzt.
- target id der Präsentationsumgebung, in der
das Zielobjekt präsentiert werden soll
4.5.3.2. Das Basic Linking Modul
Das Basic Linking Modul wird durch die beiden Element
<a> und <area> definiert.
4.5.3.2.1. Das <a>-Element
Die Funktionaltät des <a>-Elements in
SMIL entspricht der Funktionalität des <a>-Elements
in HTML. Ein <a>-Element besitzt zusätzlich zu den
im Linking Attributes Modul genannten Attributen das href-Attribut:
href URL entsprechend der aus HTML bekannten
Syntax.
Es sind folgende Beispiele denkbar:
- Über einen Link wird eine neue Präsentation gestartet,
die die alte Präsentation ersetzt. Beispiel.
- Über einen Link wird eine neue Präsentation zusätzlich
zur alten Präsentation gestartet. Beispiel.
- Über einen Link wird eine neue Präsentation gestartet;
die alte Präsentation wird auf Pause gesetzt. Beispiel.
4.5.3.2.2. Das <area>-Element
Das <area>-Element entspricht der Bedeutung
des <area>-Elements in HTML 4. Mit seiner Hilfe können
einzelne Bereiche im Quellobjekt definiert werden, die dann mit
einem Link versehen werden können (Hotspots). In SMIL können
diese Hotspots zeitlich begrenzt werden. Das <area>-Element
ist synonym zum <anchor>-Element der SMIL Version 1. Es
besitzt folgende Attribute:
- accesskey Tastenkombination der Tastatur, deren Eingabe
durch den Benutzer den Link auslöst.
- alt Alternative Text, der statt des Medienobjekts
angezeigt wird.
- begin Start der Teilpräsentation mit dem Link.
- coords spezifiziert die Koordinaten des Hotspots
in Abhängigkeit von shape bezogen auf das Quellobjekt;
es gilt:
- x1, y1, x2, y2 für ein Rechteck, wobei x1 und y1 das
linke obere Eck und x2 und y2 das rechte untere Eck bezeichnen;
- x, y, r für einen Kreis, wobei x und y den Mittelpunkt
des Kreises und r den Kreisradius bezeichnen;
- x1, y1, x2, y2, x3, y3, usw. für ein Polygon. Anmerkung:
Wird das Bild durch Layout-Definitionen beschnitten, kann
es zum Wegfall von Hotspots in der entsprechenden Präsentationsfläche
kommen.
- end Ende der Teilpräsentation mit dem Link.
- href URL entsprechend der aus HTML bekannten Syntax.
- id Eindeutige Benennung der Elementspezifikation.
- nohref es existiert kein Link für diesen Hotspot.
- shape Form des Hotspots mit den Attributwerten;
- rect für Rechteck,
- circle für Kreis und
- poly für ein Polygon.
- tabindex Position in einer Linkfolge, die mit dem
Tabulator abgegangen werden kann.; als Attributwerte werden
Ziffern benutzt.
- target id der Präsentationsumgebung, in der
das Zielobjekt präsentiert werden soll.
- title Benennung des Hotspots.
Die Möglichkeiten dieses Elements sollen mit
folgenden Beispielen demonstriert werden:
- Zerlegung eines Videos in zeitliche Segmente. Beispiel.
- Split des Bildschirms in zwei Segmente mit unterschiedlichen
Links. Beispiel.
- Hotspots bei zeitlich begrenzten Teilpräsentationen.
Beispiel.
-
Links in Soundfile, die automatisch eine Folge von Browserfenster öffnen. Beispiel.
4.5.3.3. Das Object Linking Modul
Das Objekt Linking-Modul führt ein weiteres
Attribut in das <area>-Element ein: Das fragment-Attribut.
Dieses Attribut spezifiziert einen bestimmten Teil eines Objekts
als Ausgangspunkt eines Links, wenn dieses Objekt eine HTML-Datei
oder eine XML-Datei ist. Mit dieser Funktion können in der
HTML/XML-Datei vorhandene Links ggbfs. überschrieben werden,
um sie den Gegenbenheiten der SMIL-Präsentation anzupassen.
Als Attributwerte können frei wählbare Zeichenketten
benutzt werden.
Im untenstehenden Beispiel wird eine HTML-Datei
in einer SMIL-Präsentation verwendet. Die HTML-Datei enthält
Links, die in SMIL mit Hilfe des fragment-Attributs des
area-Elements mit einem Link "Überschrieben"
werden.
SMIL-Datei:
<smil xmlns="http://www.w3.org/2001/SMIL20/WD/Language">
<head>
<layout>
<region id="HTML" width="100" height="100"/>
<region id="LinkText" width="100" top ="100"/>
</layout>
</head>
<body>
<par>
<text region="HTML" src="menu.html" dur="indefinite">
<area fragment="link1" href="#LinkOne"/>
<area fragment="link2" href="#LinkTwo"/>
</text>
<excl dur="indefinite" >
<text id="LinkOne" region="LinkText" src="Link1.html"
dur="indefinite"/>
<text id="LinkTwo" region="LinkText" src="Link2.html"
dur="indefinite"/>
</excl>
</par>
</body>
</smil>
HTML-Datei:
<html>
...
<A NAME="link1" HREF="overridden1.html">link
one</A>
<A NAME="link2" HREF="overridden2.html">link
two</A>

|