Multimediakurs Leinfelder: Inhalt/Modul 8 "Animation und Co./ 8.6 JavaApplets |
(© copyright) Letzte Änderungen: |
Um Plugin-Probleme zu umgehen, gibt es eine elegante Lösung zur Darstellung und Animation von Bildern und Text sowie zur Verwendung von Ton auf der Website. Dazu verwenden Sie sog. JavaApplets. Wenn Sie programmieren können, ist dies sogar die flexibelste Lösung überhaupt. Aber auch ohne Programmierkenntnisse können Sie (einfacher als bei JavaScript) zu sehr schönen Ergebnissen kommen.
Kleine Erläuterung zu Java: Wir sprechen von der Verwendung der Programmiersprache Java. Im Unterschied zu JavaScript ist Java eine komplette, objektorientierte Programmiersprache für alle nur erdenkbaren Anwendungen. Sie hat Ähnlichkeit mit der C++ Sprache, ist aber komplett plattformunabhängig. Dies bedeutet, dass einmal kompiliert, die Programme auf allen Plattformen laufen. Bei anderen Programmiersprachen muss man je nach Plattform jeweils unterschiedlich kompilieren.
Mit Java kann man jede nur erdenkliche Anwendung, z.B. Office-Programme oder Graphikprogramme programmieren. Für uns interessant ist aber, dass man sogenannte JavaApplets programmieren kann. Dies sind Programme, die nicht selbstablaufend sind, sondern nur mit einem JavaApplet-Viewer oder einem Webbrowser ausführbar sind. Dafür könnten diese Programme übers Netz transportiert werden.
Die Applet-Programme liegen in kompilierter Form auf dem Server und werden von dort in den RAM-Speicher des Benutzercomputers übertragen. Dort werden sie dann umgesetzt und ausgeführt. Außer der Angabe bestimmter Parameter zur Anpassung der Progrämmchen an die eigenen Seiten ist im Unterschied zu JavaScript kein Programmcode zu sehen. Selbst wenn sich der Benutzer die Programmdateien vom Server auf seine Festplatte lädt (diese Programme bzw. Programmteile haben die Endung .class), kann er nicht in den Code sehen, da dieser kompiliert ist. Will der Programmierer an seinem Programm etwas ändern, muss er in die unkompiliierte Programmdatei gehen (endet auf .java), seine Änderungen vornehmen (kann wie bei JavaScript mit Texteditor geschehen) und dann mit einem JavaCompiler wieder kompilieren, d.h. in sog. Maschinensprache übersetzen.
Dies bedeutet, dass das Programm dann direkt ausführbar ist, wenn eine sog. Virtuelle Maschine für Java installiert ist. Diese wird seit einigen Jahren direkt mit der Browserinstallation mitinstalliert, sofern sie nicht sowieso bereits ins Betriebssystem (z.B. Apple) integriert ist. Damit benötigt der Webuser keinerlei Plugin.
Einen kleinen Schönheitsfehler gibt es aber doch: In den meisten Browser kann die Java-Ausführbarkeit manuell deaktiviert werden. Überzogene Sicherheitsbedenken eines Users können dazu führen. Da andererseits aber viele interaktiven Seiten auf Java angewiesen sind und die Stabilität in der Ausführung der Programme deutlich angestiegen ist, kann man in der Regel davon ausgehen, dass JavaAusführbarkeit zur Verfügung steht. Wenn Sie allerdings Applets aus der Anfangszeit von Java verwenden, kann es sein, dass manche Browser Fehlermeldungen ausgeben. Leider gibt es auch neuerdings wieder Applets, die nur in einem Browser (meist im IE) laufen, unter Netscape aber ggf. sogar einen Absturz versuchen. Dies liegt nicht an den Mängeln von Netscape sondern an der sehr viel flexibleren, dafür aber eben nicht mehr dem Webstandard entsprechenden Implementierung von Java für den Internet Explorer. Es gibt viele, die darin den Versuch Microsofts sehen, den plattformunabhängigen Standard Java in Misskredit zu bringen, um dessen Verbreitung zu stoppen..... Sei es wie es sei, testen Sie also auch bei der Verwendung von JavaApplets Ihre Seiten mit möglichst vielen verschiedenen Browsern.
Im Kursanhang 10 finden Sie einen Browsertester, der auch die Aktivierung von Java untersucht.
Anwendungsmöglichkeiten:
Diese sind vielfältigst und können bis hin zu interaktiven Lernmodulen, Webspielen, Internet-Chat, virtuellen Kaufhäusern, online-Banking und vielem mehr gehen (zu etlichem davon benötigt man allerdings serverseitige Unterstützung und Datenbankprogrammierung). Zu den klassischen Anwendungen, die Sie in der Regel auch ohne spezielle Serverkonfiguration verwenden können, zählen Bildershows mit speziellen Effekten, Einbau von Ton, Kombination von Ton, Text und Bildern, Textanimationen usw. Das Web beinhaltet viele kostenlose Beispiele, z.B. hier:
The JavaBoutique: http://javaboutique.internet.com Eines der besten Angebote für frei verwendbare Javaapplets
Auch beim Java-Erfinder SUN gibt es einige kostenlose Applets (sowie JavaTutorials incl. Applets): http://java.sun.com/applets
Oder lassen Sie Google nach Free Java Applets suchen.
Hinweis: Ihr Webserver muss die Verwendung von JavaApplets freigeschaltet haben (dies ist meist die Default-Einstellung). Der Server führt sie die Programme ja nicht aus (dies geschieht auf dem Benutzerrechner), aber in seinen Konfigurationsdateien muss eingetragen sein, dass er derartige Dateien (mit Endung .class) übertragen darf (dies gilt übrigens auch für .mov, .pdf und sonstige Dateien). Wenn also etwas nicht klappt, könnte es sein, dass Ihr Provider dies deaktiviert hat. Es kann auch sein, dass Ihr Provider Java .class-Files nur in einem bestimmten Verzeichnis ablegen lässt. In aller Regel sollten Sie aber keine Probleme haben. Probieren Sie aber lieber erst mal ein Beispiel online aus, bevor Sie umfassenderen Einbau von JavaApplets vornehmen.
Wir zeigen hier nur nachfolgend von wenigen Beispielen die generelle Verwendung von JavaApplets.
Die Anpassung erfolgt via des Einbaus im html-Code
Beispiel Diaschau: Hier ein Beispiel für eine einfache Diaschau. Im Unterschied zu einer html-Lösung hat sie den Vorteil, dass Sie nur eine html-Seite generieren müssen. Außerdem können Sie unterschiedlich große Bilder verwenden (womit Sie bei entsprechenden JavaScript-Lösungen Probleme haben können).
Der notwendige Code für die html-Seite sieht folgendermaßen aus:
<APPLET CODE="lsSlideShow.class" width=500 height=350>
<PARAM NAME=number VALUE="3">
<PARAM NAME=descriptions VALUE="Acropora-Korallenriff bei Aqaba,Jordanien^
Die Koralle Thecosmilia, Oberjura, Schwäbische Alb^
Die Sella-Gruppe, ein Triasriffkomplex^ ">
<PARAM NAME=links VALUE="http://www.riffe.de^.^http://www.palaeo.de/3d^">
<PARAM NAME=link VALUE="blue">
<PARAM NAME=text VALUE="black">
<PARAM NAME=background VALUE="white">
</APPLET>
Sie verwenden hier den Applet-Tag. Die restliche Syntax erinnert Sie sicherlich an den Object-Tag. Tatsächlich sehen html4 und xhtml auch für JavaApplets die Verwendung des Object-Tags vor, allerdings wird dies von längst nicht allen Browsern unterstützt. Ich empfehle deshalb nach wie vor den applet-Tag zu benutzen.
Der Rest der Syntax ist relativ selbsterklärend. Ein Applet hat also genau wie ein img-Bild oder ein über embed eingebauter Film eine bestimmte Größe (die muss hier größer als das größte Bild sein und noch Platz für die Steuerelemente lassen. Das Applet selbst wird über param-Angaben mit darzustellenden bzw. umzusetzenden Werten oder Eigenschaften versorgt. Sie unterscheiden sich je nach verwendetem Applet. Man muss dazu die Applet-Dokumentation einsehen. In obigem Beispiel werden drei Bilder dargestellt. Für das erste und letzte wird bei Klick ein URL aufgerufen (für das zweite nicht, daher steht für das zweite Bild nur ^.^ Zwischen den Dächchen würde ansonsten ein URL stehen. Die Bildbeschreibungen stehen unter param name=descriptions und werden ebenfalls mit ^ voneinander getrennt. Sie werden unter dem Bild dargestellt.
Bei param name=number wurde nur 3 eingegeben. Dies entspricht Bildernamen 1.jpg, 2.jpg und 3.jpg. Alternativ kann man Bildnamen eingeben, also z.B.
<param name=number value="erstesbild.jpg^lieblingsbild.jpg^nochnbild.jpg^ ">
Tipp: Sind z.B. param name=number value="4" eingestellt, aber nur Bild 1.jpg bis 3.jpg vorhanden, dafür aber auch ein vierter Link unter param name=links, dann wird der letzte Link angesprungen und die entsprechende Seite aufgerufen, wenn man auf next klickt. Derartige Angaben finden Sie übrigens in der readme oder config-Datei des jeweiligen Autors.
Wichtig: es werden nur jpgs unterstützt. Links müssen absolut sein (also mit http beginnen).
Bei anderen Applets gelten natürlich völlig andere Parameter.
Unter code oder codebase wird die Haupt-Klassendatei angegeben, hier ist es lsSlideShow.class . Sie kann auch in einem anderen Ordner liegen, dann müsste eben z.B. codebase="../javaklassen/lsSlideShow.class" heißen. Manchmal funktioniert dies aber nicht, insbesondere wenn die Codebase mehrere Hierarchien entfernt liegt (bei obigem Packman-Beispiel ist dies z.B. der Fall).
Wichtig: Die jeweiligen Klassen entsprechen in der Regel nicht dem kompletten Appletprogramm, sondern rufen meist noch andere Klassen auf, die sich dann im gleichen Ordner befinden müssen. Sie sind damit den functions von JavaScript vergleichbar, die oft noch als Methode andere functions aufrufen. In unserem Beispiel müssen z.B. folgende Klassen vorhanden sein:
AboutBox.class, lsParser.class, lsSlideShow.class, lsStrings.class, MultilineLabel.class, PictureCanvas.class
Die notwendigen Klassen können Sie sich als Zip-File von der Beispielseite laden.
Öfters werden von verschiedenen Applets auch die gleichen Klassen verwendet. Man kann also die Klassen für alle auf einer Website verwendeten Applets auch in einen Ordner kippen (nur der Link in Codebase muss jeweils stimmen).
Hinweis: dies bedeutet, dass es meist nicht genügt, nur die Klasse vom Netz zu ziehen, die im html-Code als Hauptklasse angegeben ist.
Wichtig: Wenn Sie Klassendateien mit einem ftp-Programm auf den Server hochladen, müssen diese im binary-Mode übertragen werden. Werden sie im ascii-Mode (Text) übertragen, läuft das Applet nicht.
Die englische Beschriftung im obigen Beispiel kann man leider nicht ändern. Dazu bräuchte man den Sourcecode der Klassen (z.B. lsStrings.java), die der Autor aber nicht beigefügt hat. Hier müsste man den Code entsprechend ändern, wieder mit einem Java-Kompilierer (z.B. Javac von SUN) zu einem .class-File kompilieren. Unser Beispiel soll aber nur zur Erläuterung des Einbaus dienen. Es gibt viele weitere Beispiele auf den o.a. Seiten, bei denen z.B. auch die Buttons via parameter-Angaben unterschiedlich beschriftbar sind.
Beispiel Paläontologisches Museum unter Wasser: Anschauen bringt mehr als alle Erläuterungen. Einbauerläuterungen finden Sie auf der Beispielseite.
Beispiel: ClipControl-Soundapplet: Dies ist sehr gut konfigurierbares Applet, um Sound ohne Plugin abzuspielen. Kann als Hintergrundsound beim Laden der Seite abgespielt werden (entweder einmal oder via loop). Es kann auch eine kleine Steuerkonsole eingeblendet werden, auf der der Benutzer den Sound stoppen und ggf. wieder starten kann. Alternativ kann der Sound auch erst durch den Benutzer abgerufen werden (also nicht bereits beim Laden). Es wird nur eine 9kb große Klassendatei benötigt. Das Applet lädt also sehr schnell (natürlich auch abhängig von der Größe der Sounddatei).
Wichtig: Applets verwenden nur Sounds im .au-Format. Mit einer geeigneten Software (viele Sharewaretools) müssen Sie Ihren Sound also entsprechend umwandeln.
Bei den nachfolgenden Beispielen öffnet sich im Extra-Fenster die jeweilige Seite bei JavaBoutique. Dort können Sie auch die Klassen herunterladen, sowie Infos zur html-Konfiguration finden.
Hinweis: die Links wurden im Januar 2002 getestet. Mir ist nicht klar, ob sie bei JavaBoutique stabil bleiben, oder sich ändern. Falls die Links in der Zukunft nicht direkt funktionieren, sehen Sie bei http://www.javaboutique.internet.com bitte im Archiv, unter Namen oder Kategorie nach.
Beispiel Bildüberblendung ImageFader: Sie können bis zu 10 (evtl. auch mehr? Bitte ausprobieren) Bilder verwenden, die automatisch über ein definiertes Bild überblendet werden.
Beispiel ImageViewer: Gefällt mir besonders gut. Alle darzustellen Bilder werden als Thumbnail-Collage dargestellt. Bei Klick darauf schwebt das gewählte Bild bei zunehmender Vergrößerung in den Vordergrund, bei nochmaligem Klick fließt es wieder zurück.
Beim Installieren werden Sie bemerken, dass hier keine Klassendateien, sondern ein JavaArchive (mit der Endung .jar) installiert werden. Dies ist eine weitere Möglichkeit. Hierin verstecken sich dann alle notwendigen Klassen.
Beispiel Slipper: auch recht beeindruckend. Bilder scrollen automatisch durch ein kleines Fenster, und sind auch noch anklickbar. Bis zu 100 Bilder darstellbar
Beispiel ImageAudio: ein einfaches Applet, welches nur eine Klasse benötigt. Ein Bild wird dargestellt. Bei Mausberührung wird ein Sound abgespielt, bei Klick geht's auf Wunsch zu nem anderen URL.
Beispiel Panoramaviewer AdvPano: Tolle Sache, um VirtualReality Panoramen ohne Plugin anzuzeigen. Sehr variabel, aber etwas komplex zu konfigurieren.
Weitere Beispiele (Erläuterungen bei der verlinkten Seite):
kubik, starwars, typewriter, snow und viele mehr, wie z.B. Umsetzung von Spreadsheetdaten in Graphiken, Rechner, 3D-Viewer, Musikgeneratoren, Spiele oder Abfrageapplets. Und natürlich auch das leider nur unter IE laufende Packman-Beispiel ChompText....(welches Sie bei Verwendung eines IE oben auf dieser Seite laufen sehen).
(nochmals: falls sich die Links geändert haben, gehen Sie bitte auf folgende Eingangsseite http://www.javaboutique.internet.com und suchen von dort ab weiter.
>> Modul 8.7.1: Verwendung von Flash-Visualisierungen und -Animationen
<< Modul 8.5: Virtual Reality-Animationen