SELFHTML: HTML/XHTML / Multimedia / Objekte einbinden
Author: Redaktion SELFHTML, selfhtml81@selfhtml.org
Description: Wie Sie in HTML Multimedia-Daten und Programme als Objekt einbinden einbinden, welche Dateitypen dafür in Frage kommen, und worauf Sie achten sollten.
Keywords: SELFHTML, HTML, XHTML, Multimedia, Java-Applets, Video, Sound, virtuelle Welten, Plugins, Flash, object, param, data, clsid, name, border, type, codetype, codebase
Date: 2005-11-13T22:12:55+01:00

| # Objekte einbinden
| Allgemeines zu Objekten in HTML Datendateien als Objekt einbinden Verweis-sensitive Grafiken als Objekt einbinden Java-Applets als Objekt einbinden ActiveX-Controls als Objekt einbinden Flash-Anwendungen als Objekt einbinden Rahmen um Objekte Namen für Objekte Weitere Informationen

## Allgemeines zu Objekten in HTML

Unter "Objekt" wird hier jede Art von Datei oder Datenquelle verstanden, die sich außerhalb einer HTML-Datei befindet und in diese HTML-Datei eingebunden werden soll. Es kann sich um eine Datendatei handeln, also etwa um eine Excel-Tabelle, eine AutoCad-Datei, eine Midi-Musikdatei, ein Flash-Movie, eine Streaming-Quelle für Rundfunkübertragung und vieles andere mehr. Es kann sich aber auch um eine vom Web-Browser ausführbare Datei handeln, also um ein Programm. Das können zum Beispiel Java-Applets oder ActiveX-Controls sein.

Damit nicht für jede neue Form der Einbindung anderer Ressourcen ein neues HTML-Element benötigt wird, soll ein einziges, mächtiges HTML-Element für alle Multimedia- und Fremdprogrammreferenzen genügen: das `object`-Element. Dieses Element kann zwar nicht das Problem lösen, wie eine beliebige Datei beim Anwender angezeigt werden kann, aber es bietet zumindest eine einheitliche Syntax und trägt dadurch zur Vereinfachung von HTML bei.

Das `object`-Element wird jedoch immer noch nicht vollständig von den Web-Browsern unterstützt. Das liegt zum Teil allerdings auch an der Vielzahl der proprietären Multimediaformate und ihren unterschiedlichen Schnittstellen. Das `object`-Element ist jedoch so ausgelegt, dass es möglichst flexibel auf alle denkbaren Anforderungen reagieren kann und dem Browser genügend Information liefert, um mit der ausführenden Anwendung zu kommunizieren und sie in sein Anzeigefenster einzubetten.

Objekte sind aus HTML-Sicht Inline-Elemente. In der "Strict"-Variante von HTML müssen solche Elemente innerhalb von Block-Elementen vorkommen, etwa in einem Textabsatz oder einem allgemeinen Bereich oder auch einer Tabellenzelle.

### Beachten Sie:

Wenn Sie mit Versuchen, das `object`-Element zu verwenden, keinen Erfolg haben, probieren Sie folgende herkömmlichen Möglichkeiten:

Multimedia einbinden (Netscape)
Java-Applets einbinden

Das `object`-Element wird vom Internet Explorer seit Version 3.x und von Netscape seit Version 4.x unterstützt. Von einer ernstzunehmenden Implementierung kann bei diesen Produktversionen aber noch keine Rede sein. Deshalb ist bei den Beispielen auf dieser Seite in der Regel Internet Explorer 5.0 und Netscape 6.0 angegeben. Aber auch das bedeutet noch lange nicht, dass mit diesen Browsern alles reibungslos funktioniert.

Binden Sie Multimedia-Dateien im Normalfall nicht kommentarlos in Ihre Web-Seiten ein, sondern weisen Sie den Anwender darauf hin, um welche Art von Daten es sich handelt, und unter welchen Voraussetzungen eine korrekte Anzeige möglich ist.

Wenn Sie große Dateien einbetten, weisen Sie den Anwender im umgebenden Text auf die Größe der Datei hin.

## Datendateien als Objekt einbinden

Sie können eine beliebige Datendatei als Objekt in eine HTML-Datei einbinden, also z.B. ein Video, eine Konstruktionszeichnung, eine als fertige Datei vorliegende 3D-Welt, eine Musikdatei oder dergleichen. Auch einfache Textdateien und andere HTML-Dateien können Sie auf diese Weise einbinden. Ein Web-Browser kann solche Dateien anzeigen, wenn er entweder selber in der Lage ist, das Dateiformat anzuzeigen, oder wenn der Anwender ein entsprechendes Plugin installiert hat. Wenn das Plugin installiert ist, kann der Web-Browser die Datei so in seinem Anzeigefenster präsentieren, wie sie von dem Ursprungsprogramm erstellt wurde. Bei Abspielvorgängen, etwa von Videos oder Sound, wird ein entsprechender Player angezeigt - je nachdem, wie das Plugin beschaffen ist.

Wenn dem Browser eine Verknüpfung zwischen dem Datentyp und einem Fremdprogramm bekannt ist, kann er das Fremdprogramm mit der betreffenden Datei starten. Ob die Daten dann jedoch innerhalb des Bereichs auf der Web-Seite angezeigt werden, der für das Objekt definiert ist, hängt davon ab, ob der Browser und das andere Programm entsprechende Kommunikationsmöglichkeiten, z.B. vom Betriebssystem bereitgestellte Kommunikationsschnittstellen, nutzen.

### Beispiel:

Anzeigebeispiel: So sieht's aus (Beispiel erfordert installierten SVG-Viewer und DOM-fähigen Browser, also mindestens Internet Explorer 5.x oder Netscape 6; mit dem Plugin Adobe SVG Viewer funktioniert es auch schon im Netscape 4.7)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
           "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <title>Datendateien als Objekt einbinden</title>
    </head>
    <body>

    <h1>Analoguhr als SVG-Grafik mit eingebettetem JavaScript</h1>

    <p>
      <object data="uhr.svg" type="image/svg+xml" width="200" height="200">
        <param name="src" value="uhr.svg">
        Ihr Browser kann das Objekt leider nicht anzeigen!
      </object>
    </p>

    </body>
    </html>

### Erläuterung:

Mit `<object>` leiten Sie die Referenz auf die einzubindende Datei ein, mit `</object>` wird das Element beendet. Das `object`-Element hat keine Pflichtattribute. Je nachdem, was Sie damit einbinden, müssen Sie selbst herausfinden oder auf Herstellerhinweise achten, welche der nach HTML-Standard möglichen Attribute Sie angeben sollten oder müssen. Zwischen dem einleitenden `<object>`-Tag und dem abschließenden `</object>`-Tag kann "beliebiger" HTML-Quelltext notiert werden. Im obigen Beispiel ist einfach ein Text notiert, dass der Browser das Objekt nicht anzeigen kann. Ebensogut könnte an dieser Stelle auch eine alternative Grafik notiert werden oder ein alternativer Versuch, das Objekt einzubinden, beispielsweise nach der herkömmlichen Netscape-Syntax. Es ist sogar erlaubt, als Inhalt eines `object`-Elements ein anderes `object`-Element zu notieren, um damit beispielsweise ein alternatives Objekt in einem anderen Dateiformat einzubinden.

Um eine Datendatei einzubinden, ist das Attribut `data` vorgesehen. Damit referenzieren Sie die gewünschte Datei (data = Daten). Bei der Wertzuweisung an dieses Attribut gelten die Regeln zum Referenzieren in HTML. Wenn sich die Datei also beispielsweise im gleichen Verzeichnis wie die HTML-Datei befindet, dann genügt einfach die Angabe des Dateinamens - so wie im obigen Beispiel. Das Referenzieren mit relativen oder absoluten Pfadangaben ist jedoch ebenso möglich, z.B.:
`<object data="verzeichnis/datei.xy">
<object data="../datei.xy">
<object data="../woanders/datei.xy">`
Auch das Referenzieren von einem vollständigen URI ist möglich, z.B.:
`<object data="http://www.example.org/datei.xy">`

Zusätzlich können Sie den MIME-Typ der Datei angeben. Bei Datendateien, die mit `data` referenziert werden, notieren Sie dazu das Attribut `type` - so wie im obigen Beispiel. Als Wert weisen Sie einen gültigen MIME-Typ zu. Wenn Sie den MIME-Typ nicht kennen, lassen Sie die Angabe `type` weg. Wenn Sie den MIME-Typ kennen und angeben, helfen Sie dem Web-Browser durch die Angabe, schneller zu reagieren.

Bei eingebundenen Objekten sollten Sie stets Angaben zu Breite und Höhe notieren. Mit dem Attribut `width` legen Sie die Breite in Pixel oder in Prozent in Bezug auf die verfügbare Breite fest, und mit `height` die Höhe.
Manche Daten, zum Beispiel Videos, haben eine Originalbreite und Originalhöhe. Um so ein Video optimal einzubinden, sollten Sie dessen genaue Breite und Höhe kennen und mit `width` und `height` beim Einbinden der Videodatei angeben.
Manche Plugins, zum Beispiel Sound-Player, haben eine bestimmte Größe. Wenn Sie die genaue Größe kennen, sollten Sie beim Einbinden von Sound-Dateien, die mit dem betreffenden Plugin wiedergegeben werden sollen, die genaue Höhe und Breite des Players angeben. So können Sie den Player vollständig und optimal innerhalb der Bildschirmanzeige der HTML-Datei platzieren. Die Größenangaben sind bei solchen Plugins normalerweise bei der Software dokumentiert.
Wenn Sie zunächst nicht wissen, wie viel Breite oder Höhe das Objekt benötigt, müssen Sie verschiedene Werte ausprobieren.
Mit den Angaben `width="0"` und `height="0"` können Sie die sichtbare Anzeige auch ganz unterdrücken. Das kann zum Beispiel bei Hintergrundmusik erwünscht sein.

### Beachten Sie:

Um Anzeigeprobleme mit verschiedenen Versionen des Adobe SVG Viewers bei Einbinden von SVG-Dateien zu vermeiden, sollten Sie im `object`-Element die Datenquelle zusätzlich als Paramter angeben: `<param name="src" value="uhr.svg">`.

Das `object`-Element darf auch im Dateikopf einer HTML-Datei, also zwischen `<head>` und `</head>` notiert werden. Das ist dann sinnvoll, wenn die Datendatei nicht angezeigt werden soll, z.B. wenn einfach eine Hintergrundmusik abgespielt werden soll. In diesem Fall empfiehlt es sich, die Angaben `width="0"` und `height="0"` im einleitenden `<object>`-Tag zu notieren. Bei Objekten, die im HTML-Dateikopf eingebunden werden, darf jedoch zwischen `<object>` und `</object>` kein alternativer Inhalt stehen, der visuelle Ausgaben erzeugt.

Das W3-Konsortium sieht im HTML-Standard auch die Möglichkeit vor, das `object`-Element innerhalb eines Formulars zu notieren, um beispielsweise in visueller Interaktion mit dem Anwender Werte zu ermitteln, die dann beispielsweise in versteckten Formularfeldern gespeichert und zusammen mit den Formulardaten übertragen werden. Vorgaben, wie genau die Kommunikation zwischen Objekt und Formularelementen funktionieren soll, gehören jedoch nicht zur HTML-Spezifikation.

Konqueror 3.1 interpretiert zwar das `object`-Element, stellt das Beispiel aber nicht dar. Konqueror 3.3 benötigt keinen zusätzlichen Viewer (abgesehen davon, daß Adobe nur Viewer für Windows anbietet), kann jedoch den in die SVG-Datei eingebetteten JavaScript-Code nicht ausführen.

Wenn Sie XHTML-Standard-konform arbeiten, müssen Sie das `param`-Element als inhaltsleer kennzeichnen. Dazu notieren Sie das alleinstehende Tag in der Form `<param ... />`. Weitere Informationen finden Sie im Kapitel XHTML und HTML.

## Verweis-sensitive Grafiken als Objekt einbinden

Diese Möglichkeit des `object`-Elements ist vor allem für Grafiken vorgesehen, die nicht einem der Standardtypen GIF, JPEG oder PNG entsprechen, die üblicherweise mit dem `<img>`-Tag eingebunden werden. Gedacht ist die Möglichkeit beispielsweise für vektorgrafische CAD-Zeichnungen oder andere Grafikformate, die Sie mit Hilfe des `object`-Elements einbinden.

### Beispiel:

Anzeigebeispiel: So sieht's aus (Beispiel erfordert installierten LuraWave-Viewer)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
           "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
    <title>Verweis-sensitive Grafiken als Objekt einbinden</title>
    </head>
    <body>

    <h1>Zur Stadt oder Region Ihrer Wahl!</h1>

    <p>Klicken Sie, falls Sie die LuraWave-Grafik sehen können, auf die Stadt
    oder Region Ihrer Wahl. Falls nichts passiert, unterstützt der Browser zwar
    die Anzeige des Objekts, aber nicht das Feature verweis-sensitiver Grafiken
    für Objekte.</p>

    <p>
      <map name="Landkarte">
        <area shape="rect" coords="11,10,59,29" href="http://www.koblenz.de/" alt="Koblenz">
        <area shape="rect" coords="42,36,96,57" href="http://www.wiesbaden.de/" alt="Wiesbaden">
        <area shape="rect" coords="42,59,78,80" href="http://www.mainz.de/" alt="Mainz">
        <area shape="rect" coords="100,26,152,58" href="http://www.frankfurt.de/" alt="Frankfurt">
        <area shape="rect" coords="27,113,93,134" href="http://www.mannheim.de/" alt="Mannheim">
        <area shape="rect" coords="100,138,163,159" href="http://www.heidelberg.de/" alt="Heidelberg">
        <area shape="rect" coords="207,77,266,101" href="http://www.wuerzburg.de/" alt="Würzburg">
        <area shape="rect" coords="282,62,344,85" href="http://www.bamberg.de/" alt="Bamberg">
        <area shape="rect" coords="255,132,316,150" href="http://www.nuernberg.de/" alt="Nürnberg">
        <area shape="rect" coords="78,182,132,200" href="http://www.karlsruhe.de/" alt="Karlsruhe">
        <area shape="rect" coords="142,169,200,193" href="http://www.heilbronn.de/" alt="Heilbronn">
        <area shape="rect" coords="140,209,198,230" href="http://www.stuttgart.de/" alt="Stuttgart">
        <area shape="rect" coords="187,263,222,281" href="http://www.ulm.de/" alt="Ulm">
        <area shape="rect" coords="249,278,304,297" href="http://www.augsburg.de/" alt="Augsburg">
        <area shape="poly" coords="48,311,105,248,96,210,75,205,38,234,8,310"
              href="http://www.baden-aktuell.de/" alt="Baden">
      </map>
      <object data="karte.lwf" type="image/x-wavelet" width="345" height="312" usemap="#Landkarte">
        Ihr Browser kann das Objekt leider nicht anzeigen!
      </object>
    </p>
    </body>
    </html>

### Erläuterung:

Um eine verweis-sensitive Grafik als Objekt einzubinden, notieren Sie im einleitenden `<object>`-Tag das Attribut `usemap`. Das restliche Verfahren ist dann das gleiche wie bei verweis-sensitiven Grafiken (siehe Beschreibung dort).

### Beachten Sie:

Wenn Sie XHTML-Standard-konform arbeiten, müssen Sie das `area`-Element als inhaltsleer kennzeichnen. Dazu notieren Sie das alleinstehende Tag in der Form `<area ... />`. Weitere Informationen finden Sie im Kapitel XHTML und HTML.

## Java-Applets als Objekt einbinden

Java-Applets sind ausführbare Programme, deren Bildschirmausgaben ein Web-Browser innerhalb seines Anzeigefensters darstellen kann. Applets können z.B. bewegte Animationen (Tricksequenzen) enthalten, Echtzeitabläufe in bewegten Grafiken darstellen (Stichwort: Börsenticker), oder Interaktionen mit dem Anwender austauschen. So werden Java-Applets etwa häufig bei Online-Banking eingesetzt.

Java-Applets müssen in compilierter Form vorliegen, um bei der Referenzierung in einer HTML-Datei ausgeführt werden zu können. Normalerweise haben compilierte Java-Applets die Dateinamenerweiterung .class.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
           "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <title>Java-Applets als Objekt einbinden</title>
    </head>
    <body>

    <h1>Wagen Sie sich durchs Labyrinth!</h1>

    <p>
      <object classid="java:zmaze3d.class" codetype="application/java-vm"
              width="600" height="400"></object>
    </p>

    </body>
    </html>

### Erläuterung:

Mit dem Attribut `classid` im einleitenden `<object>`-Tag referenzieren Sie die Implementierung des JavaApplets (classid = class identifier = Klassenbezeichner). Erlaubt ist ein spezieller URI: Die Wertzuweisung besteht aus der festen Zeichenfolge `java:` - gefolgt von dem Namen der .class-Datei (also der ausführbaren Applet-Datei). Im obigen Beispiel wird auf diese Weise die Datei zmaze3d.class in der Form `classid="java:zmaze3d.class"` eingebunden.

Wenn sich die Applet-Datei in einem anderen Verzeichnis befindet als die HTML-Datei, in der sie referenziert wird, oder auf einem anderen Internet-Server, dann müssen Sie den Pfad bzw. die Adresse des Server-Rechners und das Verzeichnis angeben, wo sich die Programmdatei befindet (nur das Verzeichnis, nicht mehr den Namen der Programmdatei). Dazu verwenden Sie - ebenfalls im einleitenden `<object>`-Tag - das Attribut `codebase`. Bei der Wertzuweisung an dieses Attribut gelten die Regeln zum Referenzieren in HTML. Die Angabe von `codebase` kann in einigen Fällen auch erforderlich sein, um Teile eines Java-Applets von einem bestimmten Internet-Server nachzuladen.

Ähnlich wie für Datendateien gibt es auch für ausführbare Programmdateien MIME-Typen. Bei Java-Applets sind die Angaben `codetype="application/java"` oder `codetype="application/java-vm"` gebräuchlich.

Zwischen `<object>` und `</object>` können Sie im Zusammenhang mit Java-Applets Aufrufparameter notieren. Viele Java-Applets erwarten einen oder mehrere solche Parameter beim Aufruf.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
           "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <title>Java-Applets als Objekt einbinden</title>
    </head>
    <body>

    <h1>Ein Lauftext mit Java</h1>

    <p>
      <object classid="java:zticker.class" codetype="application/java" width="600" height="60">
        <param name="msg" value="Die Energie des Verstehens">
        <param name="href" value="../../../index.htm">
        <param name="speed" value="5">
        <param name="bgco" value="255,255,255">
        <param name="txtco" value="000,000,255">
        <param name="hrefco" value="255,255,255">
      </object>
    </p>

    </body>
    </html>

### Erläuterung:

Jeder Parameter wird durch `<param name= value=>` angegeben. Beim Attribut `name` geben Sie den Namen des Parameters an. Bei `value` geben Sie den gewünschten Wert des Parameters an, der dem Applet übergeben werden soll.

### Beachten Sie:

Bei Java-Applets, die aus mehreren class-Dateien bestehen, müssen Sie die Datei angeben, die den Programmstart enthält. Näheres dazu entnehmen Sie der Dokumentation, die solchen Java-Programmen beigefügt sein sollte. Auch die genauen Anweisungen zum Einbinden eines Java-Applets - z.B. zu erwarteten oder erlaubten Parametern - finden Sie normalerweise in der Dokumentation zu dem Java-Applet.

Beachten Sie auch die herkömmliche Methode zum Einbinden von Java-Applets.

Internet Explorer 5 interpretiert das Beispiel problemlos, während Internet Explorer 6 auf Windows XP nach einem Update auf ServicePack 2 das Applet nicht mehr darstellt.

Wenn Sie XHTML-Standard-konform arbeiten, müssen Sie das `param`-Element als inhaltsleer kennzeichnen. Dazu notieren Sie das alleinstehende Tag in der Form `<param ... />`. Weitere Informationen finden Sie im Kapitel XHTML und HTML.

## ActiveX-Controls als Objekt einbinden

ActiveX-Controls können ähnliche Aufgaben wahrnehmen wie Java-Applets. Jedoch sind sie stärker als Java-Applets in der Windows-Welt und der Welt von Microsoft verankert und werden nur vom Microsoft Internet Explorer interpretiert.

### Beispiel:

Anzeigebeispiel: So sieht's aus ( Quelle zum Beispieltext)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
           "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <title>ActiveX-Controls als Objekt einbinden</title>
    </head>
    <body>

    <h1>Eine MIDI-Datei</h1>

    <p>
      <object width="267" height="175" classid="CLSID:05589FA1-C356-11CE-BF01-00AA0055595A">
        <param name="filename" value="ritmo.mid">
      </object>
    </p>

    </body>
    </html>

### Erläuterung:

Mit dem Attribut `classid` referenzieren Sie die Implementierung des gewünschten ActiveX-Controls (classid = class identifier = Klassenbezeichner). Die Angabe besteht aus der festen Zeichenfolge `CLSID:` - gefolgt von der Bezeichner-ID. Diese ID müssen Sie kennen. Im obigen Beispiel wird ein recht bekanntes ActiveX-Control referenziert, nämlich dasjenige, das unter Windows zum Abspielen von Multimedia-Dateien zuständig ist. Es bindet den Media-Player von Windows in den Bereich des definierten Objekts ein. Mit `classid="CLSID:05589FA1-C356-11CE-BF01-00AA0055595A"` binden Sie also ein ActiveX-Control ein, das es erlaubt, Sound- und Videodateien aller bekannten Formate wie WAV, AU, MID, MP3, AVI, MPEG usw. abzuspielen.

Mit dem Attribut `codebase` können Sie die Internet-Adresse angeben, von der das ActiveX-Control geladen werden kann, falls der WWW-Browser es auf dem Rechner des Anwenders nicht findet (ActiveX-Controls werden nach dem Laden normalerweise in einem Windows-Unterverzeichnis abgespeichert - *.ocx-Dateien - und beim erneuten Aufruf auch wieder von dort geladen).

ActiveX-Controls können genauso wie Java-Applets Parameter übergeben bekommen. Diese werden auch genauso notiert, nämlich mit `<param name= value=>` zwischen `<object>` und `</object>`. Das ActiveX-Control im obigen Beispiel erwartet einen Parameter namens `filename`, der bei `value` die Angabe des gewünschten Dateinamens der abzuspielenden Datei erwartet.

### Beachten Sie:

Wenn Sie XHTML-Standard-konform arbeiten, müssen Sie das `param`-Element als inhaltsleer kennzeichnen. Dazu notieren Sie das alleinstehende Tag in der Form `<param ... />`. Weitere Informationen finden Sie im Kapitel XHTML und HTML.

## Flash-Anwendungen als Objekt einbinden

Zum Einbinden von Flash (*.swf-Dateien) gibt es verschiedene Ansätze. Die beiden ältesten Ansätze entsprechen den Techniken zur Einbindung von Plugins, die Netscape und Microsoft unabhängig voneinander für ihre Browser entwickelten. Der Netscape Navigator erwartete ursprünglich die Einbindung über das Netscape-eigene `embed`-Element, welches unter Multimedia einbinden (Netscape) näher beschrieben wird. Der Microsoft Internet Explorer (Windows) hingegen erwartete, dass die Flash-Anwendung als ActiveX-Control eingebunden wird. Lange Zeit wurden beide Techniken parallel verwendet, sodass soviele Browser wie möglich die Flash-Anwendungen ausführen konnten.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
           "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <title>Flash-Anwendungen als Objekt einbinden</title>
    </head>
    <body>

    <h1>Das gute alte Wurm-Spiel in Flash!</h1>

    <p>Erst auf "Start" klicken. Dann Leertaste drücken. Mit dem Wurm die
    angezeigte Zahl ansteuern und treffen. Außenränder und Hindernisse nicht
    berühren!</p>

    <p>
      <object classid="CLSID:D27CDB6E-AE6D-11cf-96B8-444553540000" width="600" height="400"
              codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0">
        <param name="movie" value="nibbles.swf">
        <param name="quality" value="high">
        <param name="scale" value="exactfit">
        <param name="menu" value="true">
        <param name="bgcolor" value="#000040">
        <embed src="nibbles.swf" quality="high" scale="exactfit" menu="false"
               bgcolor="#000000" width="600" height="400" swLiveConnect="false"
               type="application/x-shockwave-flash"
               pluginspage="http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash">
        </embed>
      </object>
    </p>

    </body>
    </html>

### Erläuterung:

Das Beispiel enthält ein `object`-Element, mit dem die Flash-Anwendung auf die Microsoft-Art eingebunden wird. Mit dem Attribut `classid` referenzieren Sie die gewünschte Implementierung (classid = class identifier = Klassenbezeichner). Die Angabe besteht aus der festen Zeichenfolge `CLSID:` - gefolgt von der Bezeichner-ID. Für das Macromedia-Flash-Plugin müssen Sie stets `classid="CLSID:D27CDB6E-AE6D-11cf-96B8-444553540000"` notieren.

Mit dem Attribut `codebase` können Sie die Internet-Adresse angeben, von der das Flash-Plugin geladen werden kann, falls es beim Anwender nicht vorhanden ist. Im obigen Beispiel ist die Adresse für Flash Version 4 angegeben. Wenn Sie Flash-Anwendungen einsetzen, die mit Flash 5 erstellt wurden, geben Sie `codebase="http://active.macromedia.com/flash5/cabs/ swflash.cab#version=5,0,0,0"` an.

Flash-Anwendungen können genauso wie Java-Applets Parameter übergeben bekommen. Diese werden auch genauso notiert, nämlich mit `<param name= value=>` zwischen `<object>` und `</object>`. Der wichtigste Parameter ist der namens `movie`, bei dem Sie bei `value` die Adresse der gewünschten *.swf-Datei angeben.

Immerhalb des `object`-Elements befindet sich ferner ein `embed`-Element als Alternativinhalt für diejenigen Browser, die die Microsoft-Methode nicht unterstützen. Die Adresse der Flash-Anwendungen geben Sie im `src`-Attribut an.

Diese umständliche doppelte Einbindung mit `object` und einem darin verschachtelten `embed` hat sich als robust erwiesen und wird auch offiziell vom Flash-Hersteller Macromedia empfohlen. Der Nachteil dabei ist jedoch, dass Sie ein HTML-Element verwenden müssen, das nicht zum HTML-Standard gehört. Sie erzeugen damit also ungültiges HTML.

Die im HTML-4-Standard geschaffene allgemeine Möglichkeit des Einbindens von Datendateien als Objekt ist zum Glück auch zum Einbinden von Flash-Anwendungen zu gebrauchen. Damit existiert eine einheitliche, browserübergreifende Schreibweise.

### Beispiel:

    <object data="nibbles.swf" type="application/x-shockwave-flash" width="600" height="400">
      <param name="movie" value="nibbles.swf">
      <param name="quality" value="high">
      <param name="scale" value="exactfit">
      <param name="menu" value="true">
      <param name="bgcolor" value="#000040">
    </object>

### Erläuterung:

Zum Einbinden der Flash-Anwendung wird ein `object`-Element verwendet. Damit die Browser die eingebundene Datei als Flash-Anwendung erkennen, müssen Sie das Attribut `type="application/x-shockwave-flash"` angeben. Die Angabe der Adresse der `swf`-Datei erfolgt im Attribut `data` und gleichzeitig im bekannten Parameter `<param name="movie" value="...">`. Weitere Parameter werden wie gewohnt innerhalb des `object`-Elements notiert.

### Beachten Sie:

Diese neuartige Methode benutzt zwar validen Code und folgt dem HTML-Standard, funktioniert allerdings erst in neueren Browsern und zieht einige weitere Probleme nach sich. Ein gravierender Nachteil ist die Tatsache, dass der Internet Explorer die Flash-Anwendung erst dann startet, wenn sie komplett vom Server übertragen wurde. Bei der Einbindung mithilfe der herkömmlichen Microsoft-Methode oder `embed` wird die `swf`-Datei normalerweise gestreamt. Das heißt, die Flash-Anwendung kann bereits starten, wenn die Datei teilweise heruntergeladen wurde. Das Manko des fehlenden Streamings kann nur recht kompliziert durch eine zusätzliche Flash-Datei umgangen werden, die als Container fungiert. Genauere Informationen und weitere Fallstricke finden Sie unter Flash Satay: Embedding Flash While Supporting Standards. Seien Sie sich der potenziellen Schwierigkeiten bewusst, wenn Sie Flash auf diese Weise in Ihre Seiten einbinden.

Wenn Sie XHTML-Standard-konform arbeiten, müssen Sie das `param`-Element als inhaltsleer kennzeichnen. Dazu notieren Sie das alleinstehende Tag in der Form `<param ... />`. Weitere Informationen finden Sie im Kapitel XHTML und HTML.

## Rahmen um Objekte

Sie können festlegen, dass der Browser einen Rahmen um ein eingebundenes Objekt zeichnet. Das kann zur Verdeutlichung beitragen, dass es sich um ein eingebettetes Objekt handelt. Das Attribut dafür ist jedoch als deprecated gekennzeichnet und soll künftig aus dem HTML-Standard entfallen, da es durch die CSS-Eigenschaft border ersetzbar ist.

### Beispiel:

Anzeigebeispiel: So sieht's aus

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
           "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Rahmen um Objekte</title>
    </head>
    <body>

    <h1>Eine eingerahmte eingebundene Text-Datei!</h1>

    <p>
      <object data="html.txt" type="text/plain" width="300" height="400" border="2">
        Ihr Browser kann das Objekt leider nicht anzeigen!
      </object>
    </p>

    </body>
    </html>

### Erläuterung:

Durch das Attribut `border` innerhalb des einleitenden `<object>`-Tags wird ein Rahmen um das Objekt definiert (border = Rand). Die Angabe erfolgt in Pixeln und bedeutet die Rahmendicke.

### Beachten Sie:

Das obige Beispiel zeigt, wie Sie einfache Textdateien "in a box" einbinden können - ebenso geht es mit HTML-Dateien und dem MIME-Typ `text/html`. Der Internet Explorer 5.0, Opera 6 und Konqueror und Safari zeigen die Dateien an, allerdings keinen Rahmen. Netscape kann erst ab Version 7.0 die Textdatei als Objekt anzeigen. Opera ab Version 7.20 und Firefox zeigen den Rahmen an.

## Namen für Objekte

Sie können einen Namen für ein Objekt vergeben.

### Detailbeispiel:

    <object name="MIDI_Datei" width="267" height="175"
            classid="CLSID:05589FA1-C356-11CE-BF01-00AA0055595A">
      <param name="filename" value="ritmo.mid">
    </object>

### Erläuterung:

Mit `name` vergeben Sie einen Namen für das Objekt.

## Weitere Informationen

In der HTML-Referenz finden Sie Angaben darüber, wo das `object`-Element vorkommen darf, welche Attribute es haben kann und was bei den einzelnen Attributen zu beachten ist:
Element-Referenz für Objektreferenzen (`<object> ... </object>`)
Attribut-Referenz für Objektreferenzen (`<object> ... </object>`)

| Eigenschaften von Objekten
| Frames als Mittel für Seiten-Layouts

© 2007 Impressum