3QuarksAppletsTickerLineInterface
English
Die Audioausgabe des Nachrichtentickers kann via Java oder JavaScript ferngesteuert werden. Dazu stellt das Applet zwei öffentliche Methode zur Verfügung:

  public void    enableSound    (boolean enable);
  public boolean isSoundEnabled ();


Die Methode "enableSound" schaltet abhängig vom übergebenen Wert die Audioausgabe ein oder aus. Mit der zweiten Methode "isSoundEnabled" läßt sich der aktuelle Status der Audioausgabe abfragen. Beide Methoden können über JavaScript oder Java angesprochen werden. Die folgenden zwei Beispiele zeigen, wie es gemacht wird.
BeispielJavaScript
Sound Button

Bei diesem Nachrichtenticker wird die Audioausgabe via JavaScript ein- und ausgeschaltet. Dazu bekommt das Ticker-Applet den eindeutigen Namen "Ticker1" zugewiesen; es läßt sich dann mit JavaScript über diesen Namen ansprechen:

  <applet code=TickerLine.class name="Ticker1" width=369 height=44>

Rechts neben dem Ticker befindet sich ein mit JavaScript realisierter Button namens "soundButton":

  <a href="#"
     onMouseOver="selectSound(1)"
     onMouseOut="selectSound(0)"
     onClick="setSound(); return false;">

  <img src="PlaySound.gif" name="soundButton" width=30 height=28 border=0>

  </a>

Der Verweis auf "#" im Anchor-Tag ist nur für Netscape-Browser notwendig. Der Event-Handler "onClick" funktioniert in allen Netscape-Browsern nämlich nur dann im Anchor-Tag, wenn auch ein Verweis angegeben wird. Das "return false;" im Handler "onClick" bewirkt, daß der Verweis nicht ausgeführt wird.

Eine Variable und zwei Funktionen übernehmen nun die Visualierung des Buttons und die Steuerung der Audioausgabe:

  var isSoundEnabled = false;

  function selectSound (selected)
    {
    var imageName;

    if (isSoundEnabled)
      imageName = "StopSound";
    else
      imageName = "PlaySound";

    if (selected)
      imageName += "-select";

    if (document.images)
      document.soundButton.src = imageName + ".gif";
    }

  function setSound ()
    {
    enableSound = !enableSound;
    document.Ticker1.enableSound (isSoundEnabled);
    selectSound (1);
    }


Die Variable "isSoundEnabled" speichert den Status der Audioausgabe und wird anfangs auf den Wert "false" gesetzt.

In der Funktion "selectSound" wird zuerst der Bildname zusammengesetzt. Ist die Soundausgabe aktiviert, dann beginnt der Bildname mit "StopSound", anderenfalls mit "PlaySound". Befindet sich die Maus über dem Button, dann hat das Argument "selected" den Wert "1" und die Zeichenkette "-select" wird dem Namen angehängt. Schließlich wird noch ".gif" hinzugefügt und der nun komplette Bildname wird dem SoundButton zugewiesen. Hier die vier Bilder "PlaySound.gif", "PlaySound-select.gif", "StopSound.gif" und "StopSound-select.gif":
PlaySoundPlaySound-selectStopSoundStopSound-select
Die Sicherheitsabfrage "if (document.images)" ist speziell für den Microsoft Explorer 3, denn dieser Browser kennt das Object "images" nicht und würde hier eine Fehlermeldung produzieren.

Die Funktion "setSound" setzt die Variable "isSoundEnabled" um und schaltet dann die Audioausgabe im Applet "Ticker1" mit der Methode "enableSound ()" ein oder aus. Anschließend zeichnet sie über den Aufruf "selectSound (1)" den Button neu.
BeispielJava

In diesem Beispiel wird die Audioausgabe durch ein zweites Applet ein- und ausgeschaltet. Dazu wird die so genannte Inter-Applet-Kommunikation verwendet. Auch hier bekommt das Ticker-Applet einen eindeutigen Namen "Ticker2" zugewiesen:

  <applet code=TickerLine.class name="Ticker2" width=369 height=44>

Dieser Name wird dem zweiten Applet "SoundButton" mit dem Parameter "Receiver" übergeben:

  <applet code=SoundButton.class width=30 height=28>
    <param name=BackgroundColor value="#f5f5f3">
    <param name=ButtonImage     value="SoundButton.gif">
    <param name=Receiver        value="Ticker2">
    <param name=OnMessage       value="Tonausgabe einschalten">
    <param name=OffMessage      value="Tonausgabe ausschalten">
  </applet>


Die anderen Parameter bestimmen die Hintergrundfarbe des Applets, die Bilddatei mit den verschiedenen Button-Phasen und die Nachrichten für die Statuszeile. Sie sind für das Verständnis der Inter-Applet-Kommunikation unwichtig und werden hier nicht näher erläutert. Die Steuerung des Nachrichtentickers erfolgt durch folgendes Codefragment:

  private boolean isSoundEnabled = false;

  try
    {
    isSoundEnabled = !isSoundEnabled;
    Applet receiver = getAppletContext ().getApplet (getParameter ("Receiver"));
    ((TickerLine) receiver).enableSound (isSoundEnabled);
    }
  catch (Exception exception) {}


Die Variable "isSoundEnabled" speichert den aktuellen Status der Audioausgabe und wird mit dem Wert "false" initialisiert. Um auf möglichst einfache Weise Fehler abzufangen, stehen die nachfolgenden Anweisungen in einem try-catch-Block. Zunächst wird hier der Wert der Variablen "isSoundEnabled" invertiert. Die zweite Anweisung liest den Parameter "Receiver" ein - er enthält als Argument den Namen "Ticker2" - und sucht auf der HTML-Seite nach einem Applet mit diesem Namen. Dieses Applet wird dann in der nächsten Zeile auf die Klasse "TickerLine" gecasted und die Methode "enableSound" dieser Klasse wird gerufen. Dabei wird der Wert der Variablen "isSoundEnabled" als Argument übergeben.
21. Mai 2000