exsys GbR Emden • Java applets and applications • java.exsys.net


Dokumentation: JET - Java Extended Ticker v2.0
 
 
1 Struktur und Konzept
2 Einbindung des Applets in der HTML-Datei
3 Projekt-Datei
4 Layer-Datei
4.1 Grundeinstellungen
4.2 Definition der Ereignis-Macros
4.3 Definition der Freien Macros
4.4 Definition der verwendeten Fonts
4.5 Definition der verwendeten Bilder
4.6 Design: Angabe der Darstellungsinformationen
4.6.1 Container-Block
4.6.2 Text-Block
4.6.3 Image-Block
4.6.4 Space-Block
4.7 Aktive Komponenten
4.7.1 Verknüpfung Aktiver Komponenten – Container Links
4.8 Befehle & Befehlssequenzen
4.8.1 Sprünge und Labels
5 Unterstützung von JavaScript
5.1 Zugriffe von JavaScript auf das Applet
5.2 Zugriffe des Applets auf JavaScript-Funktionen
6 Syntax Referenz
 
 

 

 

1 Struktur und Konzept

Die Erstellung eines vollständigen Projektes ist in 3 Bereiche eingeteilt. Diese setzen sich zusammen aus:

HTML-Datei
Die Angaben in der HTML-Datei wurden so gering wie möglich gehalten und bestehen lediglich aus der notwendigen Angabe der Projekt-Datei sowie der Angabe der Farben und des Textes, die während des Ladevorganges ausgegeben werden.

Projekt-Datei
In der Projekt-Datei wird die Grundstruktur des Projektes beschrieben und einige Einstellungen vorgenommen, die zum Zeitpunkt des Programmstarts gültig sind, wie z.B. die Grundeinstellungen des Scrollbars.
Die Grundstruktur des Projektes wird durch Auflistung der verwendeten Layers festgelegt, bei denen die Namen der entsprechenden Layers, die zugehörigen Daten-Dateien und die vom Endanwender zu Beginn kontrollierte Layer angegeben werden.

Layer-Dateien
Der Inhalt jeder einzelnen Layer wird in einer eigenen Datei angegeben. In dieser Datei wird die Struktur, der Inhalt und das Verhalten der entsprechenden Layer spezifiziert. Jede Layer hat über den Layer-Namen, der in der Projekt-Datei angegeben wurde, Zugriff auf fremde Layer und kann diese somit direkt beeinflussen.

Die darzustellenden Informationen werden innerhalb der Layer-Datei durch Blöcke strukturiert, d.h., dass sie aus einer Menge aus Daten- und Organisationsblöcken bestehen, auf die bestimmte Operationen ausgeführt werden können.

Der elementarste Block ist der ContainerBlock, der zur Aufnahme weiterer Blöcke dient und in dem festgelegt wird, ob die enthaltenen Blöcke reihen- oder spaltenorientiert dargestellt werden. Innerhalb der ContainerBlöcke können auch Voreinstellungen, wie Textfarbe oder Target der Hyperlinks, vorgenommen werden, die an aufgenommene Blöcke vererbt werden, dort aber wieder überschrieben werden können. ContainerBlöcke können eine beliebige Anzahl weiterer ContainerBlöcke, TextBöcke und ImageBlöcke enthalten.

TextBlöcke (TB) und ImageBlöcke (IB) enthalten die eigentlichen Darstellungsdaten, also Texte bzw. Bilder.

Da die verschiedenen Themenbereiche i.A. durch Containerblöcke auf höchster Ebene strukturiert und somit voneinander getrennt werden, können auf diese Kontext-Blöcke durch Anwendung von SpaceBlöcken gezielt zusätzliche Operationen ausgeführt werden.
Jeder ContainerBlock auf der höchsten Ebene kann durch SpaceBlöcke (SB) bezüglich des vorangegangenen und des folgenden Containerblocks vertikal ausgerichtet werden. In der einfachsten Form geschieht dies durch Hinzufügen eines in Pixel fest angegebenen Leerbereiches, kann aber auch aus der Angabe einer bestimmten Regel bestehen, wie das automatische Hinzufügen von Leerbereichen, um den Container zu zentrieren oder oben bzw. unten bündig darzustellen, ohne dass ein anderer Containerblock der höchsten Ebene zu sehen ist.

Befehle können durch Betätigung einer Aktiven Komponente, dem Eintreten eines Ereignisses oder in Abhängigkeit der Darstellungsposition ausgeführt werden. Deratige positionsabhängige Befehlssequenzen werden ebenfalls auf höchster Ebene definiert und können mit SpaceBlöcken kombiniert werden, um z.B. das automatische Scrolling nach Zentrierung des Containerblockes für eine angegebene Zeitdauer zu pausieren.

Befehlssequenzen aller Arten, also auch Freie Macros und Event-Macros, werden durch Auflistung der auzuführenden Befehle angegeben. Hierbei beziehen sich die Befehle auf die in der Sequenz als letzte angegebene Layer oder, falls entsprechend angegeben, auch auf alle Layer.

Befehle können sich von jeder Layer auf jede Layer beziehen und können auch während der Laufzeit umbelegt bzw. umdefiniert werden.

 

Einfügen von Kommentaren

Kommentare können innerhalb der Projekt-Datei und der Layer-Datei an beliebiger Stelle eingefügt werden. Diese werden durch // eingeleitet und gelten bis zum Ende der Zeile.

 

Beispiel:

// comment: Definition of event macros
Init={start}   // comment: will start the automatic scrolling after initializing this layer

// comment: Definition of used images
Images={
    img1='images/logo.gif'
}

// comment: Definition and Layout of the display information
{ Columns
    TB = { Width='30'
        Text='This text will be displayed in the first column'
    }

    // comment: this container organizes its components in rows and will be centered within its parent container
    { Rows; Center
        TB={ Width='70'
            Text='This text will be displayed in the first row of the second column'
        }
        IB={ Width='70'; Center // comment: image will be centered in the second row of the second column
            Image='img1'
        }
    }
    TB = { Width='100'
        Text='This text will be displayed in the third column'
    }
}
SB='Center' // comment: This will center the whole container
Commands={Pause='3000'} // comment: the automatic scrolling will be paused for 3 seconds after centering the container

SB='1'  // comment: layer will only scroll, if it is larger than the display area

 

 

 

 

2 Einbindung des Applets in der HTML-Datei

Das zur Verfügung stehende Applet und alle zugehörigen Klassen sind in einer einzigen komprimierten Datei untergebracht. Dies reduziert sowohl die zu übertragenden Daten, als auch die zum Server aufzubauenden Verbindungen.

Folgendes darin enthaltene Applet kann eingesetzt werden:

Die Menge an Parametern, die in der HTML-Datei angegeben werden können bzw. müssen, wurde so gering wie möglich gehalten und beinhaltet somit lediglich Informationen, die zum Zeitpunkt des Startens benötigt werden.

 

Wichtig:
Das Applet benötigt den Autor-Parameter, der mit folgender Angabe identisch sein muss:

<PARAM NAME="Author" VALUE="JET - Java Extended Ticker - (c) exsys GbR Emden - www.java.exsys.net">

Bitte fügen sie diese Zeile per copy and paste ein, um Schreibfehler zu vermeiden.

 

Parameter:

Name: ProjectFile (erforderlich)
Beschreibung: Informationen, die für das gesamte Projekt relevant sind. Hierzu gehört insbesondere die Angabe der verwendeten Layer. Die Belegung dieser Datei wird weiter unten näher beschrieben. Die empfohlende Endung für Projekt-Dateien ist .prj
Werte: Name der Projekt-Datei
Default: -

 

Name: LoadingBGColor (optional)
Beschreibung: Hintergrundfarbe während des Lade- und Bearbeitungsvorganges
Werte: hexadezimaler Farbwert in der Form: 0xrrggbb oder #rrggbb
Default: schwarz

 

Name: LoadingTextColor (optional)
Beschreibung: Textfarbe, mit der die Ladenachricht <LoadingMessage> ausgegeben wird
Werte: hexadezimaler Farbwert in der Form: 0xrrggbb oder #rrggbb
Default: weiss

 

Name: LoadingMessage (optional)
Beschreibung: Text, der während des Lade- und Bearbeitungsvorganges ausgegeben wird
Werte: Text
Default: -

 

 

Beispiel:

<APPLET CODE="Ticker.class" WIDTH="360" HEIGHT="240" ARCHIVE="jet.jar" NAME="jet_name" MAYSCRIPT>

    <PARAM NAME="Author" VALUE="JET - Java Extended Ticker - (c) exsys GbR Emden - www.java.exsys.net">

    <PARAM NAME=ProjectFile VALUE="demo.prj">
    <PARAM NAME=LoadingBGColor VALUE="0x000000">
    <PARAM NAME=LoadingTextColor VALUE="0x999999">
    <PARAM NAME=LoadingMessage VALUE="Loading...">

</APPLET>

 

Bedenken Sie, daß die JAR-Datei beim Appletaufruf angegeben werden muß.

Die MAYSCRIPT-Angabe ist nur notwendig, wenn vom Applet aus JavaScript-Aufrufe erfolgen sollen.

Die Vergabe eines Namens (im Beispiel: Name="jet_name") ist nur notwendig, wenn das Applet von JavaScript aus gesteuert werden soll.

Zur Zeit wird die Kommunikation zwischen Java und JavaScript nicht von jedem Browser unterstützt.

 

 

3 Projekt-Datei

In der Projektdatei werden Grundeinstellungen des Projektes vorgenommen, von denen einige aber auch während der Laufzeit verändert werden können.
Neben der Konfiguration des Scrollbars, dem Aktivieren oder Deaktivieren des Drag-Modus und dem Setzen der Hintergrundfarbe, werden die verwendeten Layer und deren Hierarchie angegeben. Die empfohlende Endung für Projekt-Dateien ist .prj

 

Parameter:

Name: BGColor
Beschreibung: Hintergrundfarbe während der Darstellung
Werte: hexadezimaler Farbwert in der Form: 0xrrggbb oder #rrggbb
Default: schwarz

 

Name: DragMode
Beschreibung: Ziehen des Sichtbereiches mit der Maus ein- bzw. ausschalten
Werte: Yes, On, True bzw. No, Off, False
Default: Yes

 

Name: ScrollbarPosition
Beschreibung: Angabe der Position des Scrollbars bzw. dessen Ausschaltung und somit die Unterbindung seiner Darstellung
Werte: Left, Right, Hide
Default: Right

 

Name: ScrollbarActive
Beschreibung: Festlegung, ob der Scrollbar zu Beginn im aktiven oder inaktiven Zustand dargestellt wird. Im inaktiven Zustand wird der Scrollbar zwar angezeigt, ist aber mit keiner Layer verbunden und hat somit keine Funktionalität
Werte: Yes, On, True bzw. No, Off, False
Default: Yes

 

Name: ScrollbarWidth
Beschreibung: Darstellungsbreite des Scrollbars
Werte: ganze Zahl ab 9
Default: 11

 

Name: ScrollbarLeftMargin
Beschreibung: Linker Rand am Scrollbar
Werte: ganze Zahl
Default: 0

 

Name: ScrollbarRightMargin
Beschreibung: Rechter Rand am Scrollbar
Werte: ganze Zahl
Default: 0

 

Name: ScrollbarBGColor
Beschreibung: Hintergrundfarbe des Scrollbars
Werte: hexadezimaler Farbwert in der Form: 0xrrggbb oder #rrggbb
Default: schwarz

 

Name: ScrollbarMarginColor
Beschreibung: Farbe der durch ScrollbarLeftMargin und ScrollbarRightMargin erzeugten Randbereiche
Werte: hexadezimaler Farbwert in der Form: 0xrrggbb oder #rrggbb
Default: schwarz

 

Name: ScrollbarButtonColor
Beschreibung: Grundfarbe der Buttons am Scrollbar zum Hoch- und Runterscrollen
Werte: hexadezimaler Farbwert in der Form: 0xrrggbb oder #rrggbb
Default: grau (0xAAAAAA)

 

Name: ScrollbarSliderColor
Beschreibung: Farbe des Schiebereglers
Werte: hexadezimaler Farbwert in der Form: 0xrrggbb oder #rrggbb
Default: grau (0xAAAAAA)

 

Name: ScrollbarLineColor
Beschreibung: Farbe der Verbindungslinie zwischen den Buttons zum Hoch- und Runterscrollen, auf der sich der Schieberegler bewegt
Werte: hexadezimaler Farbwert in der Form: 0xrrggbb oder #rrggbb
Default: grau (0xAAAAAA)

 

Name: ScrollbarArrowColor
Beschreibung: Farbe der Pfeile auf den Buttons zum Hoch- und Runterscrollen
Werte: hexadezimaler Farbwert in der Form: 0xrrggbb oder #rrggbb
Default: schwarz

 

Name: ScrollbarActiveArrowColor
Beschreibung: Farbe der aktiven Pfeile auf den Buttons zum Hoch- und Runterscrollen. Die Pfeile werden aktiv, sobald sich die Maus auf ihnen befindet
Werte: hexadezimaler Farbwert in der Form: 0xrrggbb oder #rrggbb
Default: rot

 

Name: Layer
Beschreibung: Jede verwendete Layer ist mittels des Schlüsselwortes Layer in der Projektdatei anzugeben, wobei durch die Reihenfolge ihrer Definition auch ihre Darstellungshierarchie angegeben wird. Hierbei steht die als erste definierte Layer in der Hierarchie am höchsten und wird somit über alle anderen Layer dargestellt. Demnach steht die als letzte definierte Layer in der Hierarchie am niedrigsten.
Die Darstellung der Layers erfolgt erst, nachdem sie alle vollständig eingeladen wurden. Alternativ können Layer aber auch während der Laufzeit eingeladen werden, um somit die Verzögerung der Darstellung beim Start zu verringern, wobei dann die Darstellung asynchron stattfindet, d.h. jede Layer wird unabhängig vom Zustand der Restlichen zum frühest möglichen Zeitpunkt dargestellt.
Die Definition einer Layer wird mit dem Schlüsselwort Layer eingeleitet und die Angabe der Schlüsselwörter erfolgt innerhalb geschweifter Klammern
Werte: siehe Beschreibung in 'Schlüsselwörter zu Layer'
Default: -

 

 

Schlüsselwörter zu Layer:

Die Spezifizierung einer Layer erfolgt durch folgende Schlüsselworte:

 

Name: Name
Beschreibung: Der Name der Layer ist das einzige Schlüsselwort, das zwingend erforderlich ist. Der frei wählbare Name der Layer ist für die gesamte Laufzeit gültig und wird verwendet um die Layer von einer fremden Layer aus ansprechen zu können. Der Name ist auch dann gültig, wenn der Inhalt der Layer durch eine Ladeoperation neu belegt wird
Werte: Text
Default: -

 

Name: File
Beschreibung:

Angabe der Datei, die die Darstellungsdaten der entsprechenden Layer enthält. Dieser Parameter ist optional, so dass die Layer auch erst während der Laufzeit mit Daten belegt werden kann.

Werte: Name der Layer-Datei
Default: -

 

Name: UserControl
Beschreibung: Diesem Schlüsselwort wird kein Wert zugewiesen. Die Layer, die dieses Schlüsselwort enthält, ist diejenige, die der Benuzer über den Scrollbar und durch Ziehen des Sichtbereiches mit der Maus zu Beginn kontrollieren kann
Werte: -
Default: -

 

 

Beispiel einer Projekt-Datei:

BGColor = '0x000000'
DragMode='no'
ScrollbarActive='no'
ScrollbarPosition='Right'
ScrollbarWidth='11'
ScrollbarLeftMargin='3'
ScrollbarRightMargin='0'
ScrollbarBGColor='0x000000'
ScrollbarMarginColor='0x000000'
ScrollbarButtonColor='0xAAAAAA'
ScrollbarSliderColor='0xAAAAAA'
ScrollbarLineColor='0xAAAAAA'
ScrollbarArrowColor='0x000000'
ScrollbarActiveArrowColor='0xFF0000'

Layer={
    Name='loading'; File='loadinglayer.jet'
}

Layer={
    Name='menu'; File='menulayer.jet'
}

Layer={
    Name='help'; File='helplayer.jet'
}

Layer={
    Name='info'; File='info_eng.jet'
    UserControl
}

Layer={
    Name='bg'; File='bglayer1.jet'
}

 

 

 

4 Layer-Datei

Eine Layer-Datei enthält alle Informationen, die zu ihrer Darstellung und Verarbeitung notwendig sind. Die Position jeder einzelnen Layer in der Darstellungshierarchie (auf welcher Ebene die verschiedenen Layers stehen) sowie die Namen der einzelnen Layer werden in der Projekt-Datei angegeben und sind für die gesamte Laufzeit gültig. Die empfohlende Endung für Layer-Dateien ist .jet

Eine Layer-Datei besteht aus folgenden Bereichen:

 

 

Beispiel einer Layer-Datei:

// comment: Definition of event macros
Init={start} // comment: starts the automatic scrolling after initializing this layer
MouseEnter={stop} // comment: stops automatic scrolling when mouse enters area
MouseExit={Start} // comment: starts automatic scrolling when mouse leaves area

// comment: Definition of used fonts
Fonts={
   
Name='normalFont'; Size='12'; Style='bold'; font='TimesRoman' |
   
Name='bigFont'; Size='18'; Style='bold'+'italic'; font='TimesRoman'
}

// comment: Definition of used images
Images={
    img1='images/logo.gif' |
    offImg='images/passive.gif' |
    onImg='images/active.gif'
}

// comment: Definition and Layout of the display information

Label='Main'    // comment: sets a label to jump to this position using the jump command
{ Columns
    TB = { Width='30'
        Text='This text will be displayed in the first column'
   
}

    // comment: this container organizes its components in rows and will be centered within its parent container
   
{ Rows; Center
       
TB={ Width='70'
           
Text='This text will be displayed in the first row of the second column'
       
}
       
IB={ Width='70'; Center // comment: image will be centered in the second row of the second column
           
Image='img1' 
       
}
    }

    TB = { Width='100'
       
Text='This text will be displayed in the third column'
   
}
}
SB='Center' // comment: This will center the whole container
Commands={Pause='3000'} // comment: the automatic scrolling will be paused for 3 seconds after centering the container

{ Target='_blank'; Font='normalFont' // comment: default is rows
   
TB={ Center; TextAlignment='Right' // comment: the block will be centered and ist content aligned to the right side
       
Text='This text contains a '
       
URL='www.exsys.net'
       
Commands={Jump='Main'}
       
UnderLine='yes'
       
Font='bigFont'
       
ActiveText='link' // comment: Active Component executes hyperlink call and command
       
UnderLine='no'
       
Font='normalFont'
       
Text=' that will be underlined and displayed with a bigger font and executes a hyperlink call and a command'
   
}
   
IB = {
       
Image='offImg'; ActiveImage='onImg' //comment: switches between both images in dependency of the mouse position
   
}
}
SB='Bottom' // comment: this container will be alligned to the bottom when the first container leaves the visible area

 

 

 

4.1 Grundeinstellungen

Die Grundeinstellungen in einer Layer-Datei legen entweder Werte fest, die für die Verarbeitung der folgenden Daten als Grundwert dienen oder zusätzliche Leistungsmerkmale, die einmalig für jede Layer-Datei angegeben werden können.

 

Parameter:

Name: BaseWidth (optional)
Beschreibung:

Dieser Wert gibt an, welche Breite 100% entsprechen. Durch Angabe der zur Verfügung stehenden Auflösung ist ein pixelgenaues Positionieren möglich.
Dadurch, dass die Basisbreite angegeben und nicht die aktuelle Darstellungsbreite als Grundwert verwendet wird, passen sich die einzelnen Positionen nach einer Veränderung der Appletgröße automatisch den angegebenen Positionierungsregeln an. Auch die Wiederverwendung einer Layer-Datei in weitere Projekte wird hierdurch wesentlich vereinfacht.

Werte: ganze Zahl
Default: 100
Beispiel: BaseWidth='100'

 

Name: ReloadInterval (optional)
Beschreibung: Angabe nach welcher Zeit in Sekunden der Inhalt der Layer neu geladen wird. Das Nachladen der Layer erfolgt periodisch, d.h., dass der Timer nach Ablauf neu gestartet wird. Der Mindestwert beträgt 5 Sekunden
Werte: ganze Zahl ab 5 (Zeitdauer in Sekunden)
Default: -
Beispiel: ReloadInterval='60'

 

Name: ReloadFile (optional)
Beschreibung: Angabe der Layer-Datei, die nach Ablauf der durch ReloadInterval angegebenen Zeit nachgeladen wird. Durch Angabe einer neuen Layer-Datei ist es möglich den Inhalt der Layer auszutauschen und somit z.B. verschiedene Produkte zyklisch zu präsentieren, ohne daß eine Interaktion durch den Benutzer notwendig ist. Wird dieser Parameter nicht angegeben, wird die aktuelle Layer-Datei nachgeladen
Werte: Name der Layer-Datei
Default: -
Beispiel: ReloadFile='info2.jet'

 

Name: ScrollingMode (optional)
Beschreibung: Dieser Parameter legt das Verhalten des Scrollbars und des Ziehens des Sichtbereiches mit der Maus fest. Im Modus Normal wird als letzte Position der Layer der zuletzt vorhandene Datenblock dargestellt. Der Ticker Modus, der bei automatisch scrollenden Layern verwendet werden sollte, fügt am Ende der Layer einen Übergang zum Anfang der Layer ein, so dass ein kontinuierliches Scrollen erfolgen kann.
Werte:

Normal: Empfohlen, wenn die Layer kein automatisches Scrollen verwendet
Ticker: Empfohlen, wenn die Layer automatisch scrollt

Default: Ticker
Beispiel: ScrollingMode='normal'

 

 

 

4.2 Definition der Ereignis-Macros

Ereignis-Macros sind Befehlssequenzen, die beim Eintreten eines Ereignisses automatisch ausgeführt werden. Die Angabe von Ereignis-Macros ist optional. Dennoch ist die Angabe des Start-Befehls innerhalb des Init Ereignis-Macros erforderlich, um das automatische Scrollen einzuleiten.

Bei der Definition der Ereignis-Macros gelten folgende Regeln:

 

Beispiele: Ereignis-Macros:

Init={start}    // comment: will start the automatic scrolling after initializing this layer
MouseEnter='MouseOnApplet'    // comment: executed when mouse enters area; Assignment of Free Macro name
MouseExit='MouseOffApplet'    // comment: executed when mouse leaves area; Assignment of Free Macro name
ReloadRequest={Layer='LoadMsg'; ShowIncrement}    // comment: executed when layer requests reloading
ReloadIndication={Layer='LoadMsg'; HideIncrement}    // comment: executed when layer is reloaded

 

 

Auflistung der Ereignis-Macros:

Init:
Ausführung, nachdem die Layer mit neuen Daten belegt wurde. Dies ist beim ersten Einladen einer Layer-Datei der Fall oder wenn die Layer durch den Load-Befehl mit dem Inhalt einer anderen Layer-Datei belegt wird. Beim Nachladen der Layer mit der aktuell dargestellten Layer-Datei (z.B. durch den Reload-Befehl), wird dieses Macro nicht ausgeführt.
Soll die Layer zu Beginn automatisch scrollen, muss hier zumindest der Start-Befehl (mit oder ohne Prioritätsangabe) aufgeführt sein. Es wird empfohlen im Init-Macro auch die Scroll-Geschwindigkeit und die Richtung des Scrollings festzulegen.

ReloadRequest:
Wird bei der Ausführung eines Load- bzw. Reload-Befehls ausgeführt, sofern die Layer bereits Daten enthält. D.h., dass dieses Ereignis-Macro nicht beim Programmstart oder bei bisher unbelegten Layer ausgeführt wird, da in beiden Fällen noch kein ReloadRequest-Macro definiert ist. Diese beiden Fälle können aber über das Init-Macro der eingeladenen Layer-Datei behandelt werden.

ReloadIndication:
Die Ausführung erfolgt immer, wenn der Inhalt einer bereits belegten Layer nachgeladen wurde – sei es durch eine neue oder die gleiche Layer-Datei. Zu bedenken ist, dass dieses Ereignis-Macro nach dem Ladevorgang und somit aus der neu eingeladenen Layer-Datei ausgeführt wird.

MouseEnter:
Wird jedes Mal ausgeführt, wenn die Maus den Applet-Bereich betritt.

MouseExit:
Wird jedes Mal ausgeführt, wenn die Maus den Applet-Bereich verläßt.

MouseOnLink:
Wird ausgeführt, sobald sich die Maus auf einer Aktiven Komponente befindet.

MouseOffLink:
Wird ausgeführt, sobald die Maus den Bereich einer Aktiven Komponente verläßt.

MousePressed:
Wird immer dann ausgeführt, wenn die Maustaste auf dem Appletbereich gedrückt wird. Diese Ereignis-Macro wird, falls der Drag-Modus aktiv ist, nicht von der vom Anwender kontrollierten Layer ausgeführt. In dem Fall wird das Ereignis-Macro ignoriert und das automatische scrolling pausiert.

MouseReleased:
Wird immer dann ausgeführt, wenn eine gedrückte Maustaste losgelassen wird. Diese Ereignis-Macro wird, falls der Drag-Modus aktiv ist, nicht von der vom Anwender kontrollierten Layer ausgeführt. In dem Fall wird das Ereignis-Macro ignoriert und das automatische Scrolling, sofern es zuvor pausiert wurde, erneut gestartet.

ShowLayer:
Das ShowLayer-Macro wird ausgeführt, wenn eine zuvor unsichtbare Layer sichtbar geschaltet wird.

HideLayer:
Das HideLayer-Macro wird ausgeführt, wenn eine Layer unsichtbar geschaltet wird.

LayerResized:
Wird dann ausgeführt, wenn sich die Darstellungsgrösse des Applets verändert. Dies kann durch Veränderung der Appletgröße oder durch Ein- bzw. Ausschalten des Scrollbars geschehen.
Diese Ereignis-Macro wird im Normalfall nur bei speziellen Effekten benötigt.

 

 

4.3 Definition der Freien Macros

Freie Macros sind Befehlssequenzen, die lediglich für die Zuweisung an Ereignis-Macros und Befehle dienen. Entweder, um sich wiederholende Befehlssequenzen nur einmalig definieren zu müssen, oder um das zyklische Umschalten zwischen verschiedene Zustände eines Befehles zu ermöglichen. Die Angabe von Ereignis-Macros ist optional.

Bei der Definition der Ereignis-Macros gelten folgende Regeln:

 

 

Beispiel: Freie Macros

// Definition of Free Macros
Macros={
    helpOn={Layer='help'; Show; Set='helpOff'} |
    helpOff={Layer='help'; Hide; Set='helpOn'}
}

// Assignment of a Free Macro
{
    TB={
        Commands='helpOn' // comment: Assignment of a Free Macro, that rotates between 2 states
        ActiveText='Help on/off'
    }
}

 

 

 

4.4 Definition der verwendeten Fonts

Alle Fonts, die in einer Layer verwendet werden, sind in der Fontliste zu definieren und können später über ihren Namen angesprochen werden.

Bei der Erstellung der Fontliste gelten folgende Regeln:

 

Anmerkung:
Die Farben der Textausgaben werden in den entsprechenden Container- und/oder Textblöcken vorgenommen.

 

Beispiel:

Fonts={
    Name='F1'; Size = '20'; Style='bold' + 'italic'; font='Serif' |
    Name='F2'; Size = '9'; Style='plain'; font='SansSerif'
}

// Some Data followed by more font-styles

Fonts={
    Name='F3' Size = '12' Style='italic' font='Serif' |
    Name='F4' Size = '12' Style='plain' font='MonoSpaced'
}

 

Parameter:

Name: Fonts
Beschreibung: Auflistung der verwendeten Fonts
Werte: siehe Beschreibung in 'Schlüsselwörter zu Fonts'
Default: -

 

Schlüsselwörter zu Fonts:

Name: Name
Beschreibung: Frei vergebbarer Name, um den Font innerhalb der Blöcke direkt ansprechen zu können
Werte: Text
Default: -

 

Name: Font
Beschreibung: Verwendeter Font
Werte:
  • Serif (TimesRoman)
  • SansSerif (Helvetica)
  • Monospaced (Courier)
  • Dialog
  • DialogInput
Default: SansSerif

Anmerkung:
Unter dem MS IE wird bei der Fontangabe zwischen Groß- und Kleinschreibung unterschieden

 

Name: Size
Beschreibung: Größe des Fonts
Werte: ganze Zahl
Default: 9

 

Name: Style
Beschreibung: Verwendete Schriftart.Die verschiedenen Schriftarten können durch das ‘+‘-Zeichen miteinander kombiniert werden (siehe obiges Beispiel), wobei Doppelnennungen zu Verfälschungen führen können
Werte:
  • Bold (fett)
  • Plain (normal)
  • Italic (kursiv)
Default: Plain

 

 

 

4.5 Definition der verwendeten Bilder

Alle Bilder und Animationen, die in einer Layer verwendet werden, sind in der Bilderliste zu definieren und können später über ihren Namen angesprochen werden.

Bei der Erstellung der Bilderliste gelten folgende Regeln:

 

Beispiel:

Images={ 
   
img1='img/square1.jpg' | 
    img2='img/square2.jpg'
}

// Some Data followed by more images

Images={
    img3='img/product_animation.gif' |
    img4='img/cube.gif'
}

 

 

 

4.6 Design: Angabe der Darstellungsinformationen

Die Strukturierung der Darstellungsinformationen (Layout) erfolgt hauptsächlich mittels Container- und SpaceBlöcke, wohingegen die eigentlichen Daten in Text- und Imageblöcken innerhalb der Containerblöcke angegeben werden.
Hierbei können Containerblöcke mit flexiblen und mit Eigenschaften behafteten Tabellen verglichen werden, in denen primär die Darstellungsstruktur (zeilen- oder spaltenorientiert) der enthaltenen Blöcke festgelegt wird.
Spaceblöcke werden hingegen dazu eingesetzt, um zwischen Containerblöcken der höchsten Ebene, die i.A. verschiedene Themenbereiche behandeln, einen festen oder einer Regel entsprechenden Abstand einzubauen.
Jedem Block, mit Ausnahme des Spaceblocks, kann außerdem eine Ausrichtung innerhalb seines Containers mitgeteilt werden, wobei der Container eines Containerblocks auf höchster Ebene das Appletfenster selbst ist. Diese Ausrichtungen können den Block zentrieren, links- oder rechtsbündig bzw. oben oder unten bündig darstellen. Zusätzlich können die Inhalte der Datenblöcke nach den selben Regeln ausgerichtet werden.

 

 

4.6.1 Container-Block

Der elementarste Block zur Strukturierung der Informationen ist der ContainerBlock, der zur Aufnahme weiterer Blöcke dient und in dem angegeben wird, ob die enthaltenen Blöcke zeilen- oder spaltenorientiert aufgebaut werden. Um die gewünschte Darstellungsstruktur realisieren zu können, ist es möglich Containerblöcke beliebig ineinander zu verschachteln, so dass auch eine spaltenweise Darstellung innerhalb einer zeilenweisen Darstellung problemlos realisiert werden kann.
Innerhalb der ContainerBlöcke können ebenfalls Voreinstellungen, wie Textfarbe oder Target der Hyperlinks, vorgenommen werden, die an enthaltene Blöcke vererbt werden, dort aber wieder überschrieben werden können. ContainerBlöcke können eine beliebige Anzahl weiterer ContainerBlöcke, TextBöcke und ImageBlöcke enthalten.

Syntax:
Ein Containerblock wird mit dem {-Zeichen geöffnet und mit dem }-Zeichen geschlossen.

 

Beispiel:

{ ROWS; CENTER; Color='0xFF0000'; Target='_blank'    // comment: opening first container block
    { COLUMNS    // comment: opening second container block
       
IB = {
           
// specify image block content
       
}
       
TB = {
           
// specify text block content
       
}
   
}    // comment: closing second container block

    TB= {
       
// specify text block content
   
}
}    // comment: closing first container block

 

 

Parameter:

Namen: Columns, Rows
Beschreibung: Legt die Struktur des Containers fest, also ob die enthaltenen Blöcke spalten- oder zeilenweise dargestellt werden
Werte: -
Default: Rows

 

Namen: Center, Top, Bottom, Left, Right
Beschreibung: Ausrichtung des Containers innerhalb des ihn enthaltenden Containers. Falls der Container in einem Container enthalten ist, der zeilenweise darstellt, werden als Parameter nur Center, Left und Right berücksichtigt. Bei spaltenweiser Darstellung des Vater-Containers hingegen nur Center, Top und Bottom
Werte: -
Default: Innerhalb zeilenorientierter Container: Left
Innerhalb spaltenorientierter Container: Top

Anmerkung:
Der Haupt-Container (Applet-Fenster) stellt seine enthaltenen Container zeilenweise dar.

 

Name: BGColor
Beschreibung: Angabe der Hintergrundfarbe, mit der der Container unterlegt werden soll. Der Gültigkeitsbereich kann durch die verschiedenen BGMargin-Parameter beschränkt werden
Werte: hexadezimaler Farbwert in der Form: 0xrrggbb oder #rrggbb
Default: -

 

Name: BGImage
Beschreibung: Angabe des Hintergrundbildes (über den vergebenen Namen in der Bilderliste), mit dem der Container unterlegt werden soll. Der Gültigkeitsbereich kann durch die verschiedenen BGMargin-Parameter beschränkt werden
Werte: Name des Bildes, der in der Bilderliste vergeben wurde
Default: -

 

Namen: BGMargin, BGTopMargin, BGBottomMargin, BGLeftMargin, BGRightMargin
Beschreibung: Diese Ränder werden lediglich benötigt, wenn der Container eine Hintergrundfarbe und/oder ein Hintergrundbild enthält. Mit diesen Werten wird der jeweilige Abstand zwischen Blockrand und Hintergrundrand angegeben.
Mit BGMargin können alle Ränder gleichzeitig gesetzt werden. Wird eines dieser Parameter ohne Wertzuweisung angegeben, so wird der entsprechende Rand auf 0 zurückgesetzt
Werte: ganze Zahlen ab 0 oder kein Wert, um auf 0 zurückzusetzen
Default: 0

 

Name: Font
Beschreibung: Vorbelegung des verwendeten Fonts aller im Container enthaltenen Textblöcke. Diese Voreinstellung kann in enthaltenen Containern oder Textblöcken überschrieben werden
Werte: Name des Fonts, der in der Fontliste angegeben wurde
Default: Falls kein Font vererbt wurde: Name:Default; Font: SansSerif; Size: 9; Style: Plain

 

Name: Color
Beschreibung: Vorbelegung der normalen Textfarbe aller im Container enthaltenen Textblöcke. Diese Voreinstellung kann in enthaltenen Containern oder Textblöcken überschrieben werden
Werte: hexadezimaler Farbwert in der Form: 0xrrggbb oder #rrggbb
Default: weiss

 

Name: OffMouseColor
Beschreibung: Vorbelegung der Farbe der Aktiven Textkomponenten (Links, JavaScript-Aufrufe und Commands) aller im Container enthaltenen Textblöcke. Diese Voreinstellung kann in enthaltenen Containern oder Textblöcken überschrieben werden
Werte: hexadezimaler Farbwert in der Form: 0xrrggbb oder #rrggbb
Default: rot

 

Name: OnMouseColor
Beschreibung: Vorbelegung der Farbe der Aktiven Textkomponenten (Links, JavaScript-Aufrufe und Commands) im aktiven Zustand (Maus über der Komponente). Es werden alle im Container enthaltenen Container- und Textblöcke vorbelegt, gleichgültig auf welcher Ebene der Hierarchie sie sich befinden. Diese Voreinstellung kann in enthaltenen Containern oder Textblöcken überschrieben werden
Werte: hexadezimaler Farbwert in der Form: 0xrrggbb oder #rrggbb
Default: gelb

 

Name: Target
Beschreibung: Vorbelegung des Targets (in welchem Fenster/Frame eine Seite eingeladen werden soll) für Aktive Komponenten, die einen Hyperlink ausführen. Es werden alle im Container enthaltenen Blöcke vorbelegt, gleichgültig auf welcher Ebene der Hierarchie sie sich befinden
Werte:
  • Name des Frames
  • _self: Frame, in dem sich das Applet befindet
  • _blank: neues Fenster
  • _parent: übergeordnetes Frame des Appletframes. Wenn nicht vorhanden, entspricht diese Angabe der von _self
  • _top: Hauptframe des Appletfensters. Wenn beide identisch sind, entspricht diese Angabe der von "_self"
Default: -

Anmerkung:
Wenn Target und URL in einem Container angegeben sind, werden alle darin enthaltenen Aktive Komponenten miteinander verbunden.

 

Name: URL
Beschreibung: Vorbelegung der URL (welche Seite eingeladen werden soll) für Aktive Komponenten, die einen Hyperlink ausführen. Es werden alle im Container enthaltenen Blöcke vorbelegt, gleichgültig auf welcher Ebene der Hierarchie sie sich befinden
Werte: Entweder eine relative Adresse zur CodeBase (Verzeichnis, in dem das Applet liegt) oder eine absolute Adresse
Default: -

Anmerkung:
Da bei gleichzeitiger Angabe des Targets und der URL in einem Container alle enthaltenen Aktive Komponenten miteinander verbunden werden, wird die URL i.A. nur zu diesem Zweck in einem Container angegeben

 

Name: JSCall
Beschreibung: Angabe einer JavaScript-Funktion. Wie bei der Angabe eines Targets und einer URL bzw. eines Commands in einem Container, werden durch die Angabe einer JavaScript-Anweisung in einem Containerblock alle in ihm enthaltenen Aktiven Komponenten miteinander verbunden. Bei Anwahl einer dieser Aktiven Komponenten wird die angegebene JavaScript-Anweisung ausgeführt
Werte: JavaScript Funktion inklusive der Parameter
Default: -

 

Name: Commands
Beschreibung: Angabe einer Befehlssequenz. Wie bereits bei der Angabe eines Targets und einer URL bzw. einer JavaScript-Anweisung (JSCall) in einem Container, werden durch die Angabe einer Befehlssequenz in einem Containerblock alle in ihm enthaltenen Aktiven Komponenten miteinander verbunden. Bei Anwahl einer dieser Aktiven Komponenten werden die in der Befehlssequenz enthaltenen Befehle ausführen
Werte: Befehlssequenz oder Name eines Freien Macros
Default: -

 

Name: TB
Beschreibung: Definition eines Textblocke zur Darstellung von Texten
Werte: Beschreibung und Inhalt des Textblocks
Default: -

 

Name: IB
Beschreibung: Definition eines Imageblocks (Bildblocks) zur Darstellung eines Bildes, bzw. zwei Bildern bei Aktiven Komponenten
Werte: Beschreibung und Inhalt des Imageblocks
Default: -

 

Weitere ContainerBlöcke
Zur weiteren Strukturierung des Containers können weitere Containerblöcke aufgenommen werden, auf die die selben Regeln und Parameter angewendet werden können.

 

Vererbte Informationen:

 

 

 

4.6.2 Text-Block

Textblöcke (TB) werden stets innerhalb eines Containerblocks angegeben und enthalten die auszugebenden Texte.
Hierbei setzt sich der gesamte auszugebende Text des Blocks aus einer unbeschränkten Menge von Text- und ActiveText-Angaben (Aktive Textkomponenten) zusammen, die aber letztendlich als durchgehender Text ausgegeben werden. Jede einzelne Text- und ActiveText-Angabe erhält dabei die zum Zeitpunkt ihrer Definition gesetzten Eigenschaften, wie Farben, Font, Tief- oder Hochstellen und Unterstreichen.

Bei der Angabe von Texten kann an jeder beliebiger Position eine optionale Worttrennung angegeben werden. Diese Umbrüche, die in beliebiger Anzahl definiert werden können, werden nur aktiv, wenn das gesamte Wort nicht vollständig in die aktuelle Zeile passt. In einem solchen Fall wird eine Trennung an der optimalsten angegebenen Stelle vorgenommen. Derartige optionale Worttrennungen verringern im Vergleich zu festen Umbrüchen bei Nachbearbeitungen oder Veränderungen der Appletgröße, des Inhaltes oder des Layouts enorm den Wartungsaufwand. Sie sind aber auch bei Veränderung der Darstellungsgröße während der Laufzeit durch sichtbar bzw. unsichtbar schalten des Scrollbars nützlich, da der Text in diesen Fällen neu formatiert wird und sich somit dem neuen Format anpaßt.

Bei Text- und ActiveText-Angaben ist weiterhin zu beachten, dass enthaltene Zeilenumbrüche bei der Darstellung wiedergegeben werden. Tabulatoren hingegen werden vor der Darstellung herausgefiltert und können somit zur Formatierung des Quelltextes eingesetzt werden.

 

Syntax der optionalen Worttrennung:

Optionale Worttrennungen werden durch \- angegeben, wobei die Sequenz durch das Voransetzen eines weiteren \ Zeichens selbst dargestellt wird, dafür aber die Funktion der optionale Worttrennung verliert. Durch das Voransetzen weiterer \ Zeichen kann die Ausgabe des \ Zeichens mit der Funktionalität der optionalen Worttrennung kombiniert werden.

 

Beispiele: Optionale Worttrennungen

In\-for\-ma\-tion: enthält 3 optionale Worttrennung
\\- wird als \- ausgegeben und enthält keine optionale Worttrennung
\\\- wird als \ ausgegeben und enthält eine optionale Worttrennung
\\-\- wird als \- ausgegeben und enthält eine optionale Worttrennung

 

In jedem Textblock kann ebenfalls angegeben werden wie der enthaltene Text innerhalb des Blocks ausgerichtet werden soll. Bei dieser mit TextAlignment angegebene Ausrichtung wird zwischen Center (zentriert), Left (linksbündig) und Right (rechtsbündig) unterschieden, wobei sich die Ausrichtung auf jede einzelne Zeile des Blocks bezieht. Wie bei jedem anderen Block, kann der gesamte Textblock auch innerhalb seines Containers ausgerichtet werden.

Wie bereits bei Containerblöcken beschrieben, können auch Textblöcke eine Hintergrundfarbe und/oder ein Hintergrundbild enthalten, was insbesondere bei der Gestaltung von Tabellen oder der Erzeugung von Menüpunkten von Nutzen ist. Bei Tabellen ist es aber in den meisten Fällen sinnvoller die Hintergundfarbe und/oder das Hintergrundbild im Container anzugeben, der die jeweilige Zeile bzw. Spalte darstellt.

 

Beispiel:

TB= { Right; TextAlignment='Center'; BGColor='0xFFFFFF';
            OffMouseColor='0xFF0000'; OnMouseColor='0x00ff00'; Target='_blank'
           
Font='standartFont'; Color='0x000000';
   
Text='This textblock will be aligned to the right side of its container and each line of its content will be centerd within the textblock.
'
   
Color='0x0000FF';
   
Text='This text starts in a new line, will be displayed in blue and contains an '
   
Font='newFont'
   
URL='www.exsys.net'
   
Commands={Layer='all'; Stop}
   
ActiveText='Active Component'
   
Font='standartFont'
   
Text=' that will be displayed in another font and performs a hyperlink call and a command sequence.'
}

 

 

Parameter:

Name: Text
Beschreibung: Angabe des auszugebenden Textes
Werte: Text
Default: -

 

Name: ActiveText
Beschreibung: Angabe des Textes einer Aktiven Komponente, d.h. der Text, der einen Hyperlink, eine JavaScript-Anweisung und/oder eine Befehlssequenz ausführen soll
Werte: Text
Default: -

 

Name: File
Beschreibung: Der dargestellte Text besteht aus dem Inhalt der angegebenen Datei. Bei der Ausgabe des enthaltenen Textes gelten alle bis zu diesem Zeitpunkt angegebenen Zustände, wie Textfarbe, Font, etc. Die einzigen Zeichen, die bei der Ausgabe herausgefiltert werden, sind die Tabulatoren, so dass auch Hochkommata (‘) dargestellt werden.
Die durch File ausgegebenen Texte können nicht als Aktive Komponente definiert werden
Werte: Name der Textdatei
Default: -

 

Name: Font
Beschreibung: Angabe des Fonts, der für die folgenden Text- und ActiveText-Angaben verwendet werden soll. Wenn verschiedene Fonts mit unterschiedlichen Größen in einer Zeile auftreten, werden die Texte mit den kleineren Fonts von der Höhe her entsprechend angepasst, so dass der gesamte Text der Zeile auf gleicher Höhe geschrieben steht.
Der Font kann innerhalb eines Textblocks beliebig oft umgeschaltet werden
Werte: Name des Fonts, der in der Fontliste angegeben wurde
Default: Falls kein Font vererbt wurde: Name:Default; Font: SansSerif; Size: 9; Style: Plain

 

Name: Color
Beschreibung: Angabe der Farbe, mit der folgende Text-Angaben ausgegeben werden.
Farbwerte können innerhalb eines Textblocks beliebig oft umgeschaltet werden und gelten bis zur nächsten Umschaltung
Werte: hexadezimaler Farbwert in der Form: 0xrrggbb oder #rrggbb
Default: weiss

 

Name: OffMouseColor
Beschreibung: Angabe der Farbe, mit der nachfolgende ActiveText-Angaben (Aktive Textkomponenten, die Hyperlinks, JavaScript-Funktionen und/oder Befehlssequenzen ausführen) ausgegeben werden.
Farbwerte können innerhalb eines Textblocks beliebig oft umgeschaltet werden und gelten bis zur nächsten Umschaltung
Werte: hexadezimaler Farbwert in der Form: 0xrrggbb oder #rrggbb
Default: rot

 

Name: OnMouseColor
Beschreibung: Angabe der Farbe, mit der nachfolgende ActiveText-Angaben (Aktive Textkomponenten, die Hyperlinks, JavaScript-Funktionen und/oder Befehlssequenzen ausführen) ausgegeben werden, wenn sich die Maus über den entsprechenden Text befindet.
Farbwerte können innerhalb eines Textblocks beliebig oft umgeschaltet werden und gelten bis zur nächsten Umschaltung
Werte: hexadezimaler Farbwert in der Form: 0xrrggbb oder #rrggbb
Default: gelb

 

Name: UnderLine
Beschreibung: Legt fest, ob folgende Text-Angaben (Text und ActiveText) unterstrichen ausgegeben werden. Die Farbe zum Unterstreichen des Textes entspricht der des Textes.
Diese Einstellung kann beliebig oft umgeschaltet werden und gilt bis zur nächsten Umschaltung
Werte: Yes, On, True bzw. No, Off, False
Default: No

 

Name: Up
Beschreibung: Angabe um welchen Betrag in Pixel die folgenden Text-Angaben (Text und ActiveText) hochgestellt werden. Wird durch das Hochsetzen die aktuelle Zeilenhöhe überschritten, so wird diese um den entsprechenden Betrag erhöht.
Dieser Parameter steht in einer Wechselwirkung mit dem Down-Parameter, so daß von beiden lediglich der zuletzt Gesetzte gültig ist.
Diese Einstellung kann beliebig oft umgeschaltet werden und gilt bis zur nächsten Umschaltung
Werte: ganze Werte ab 0 oder kein Parameter, um den Wert auf 0 zu setzen
Default: 0

 

Name: Down
Beschreibung: Angabe um welchen Betrag in Pixel die folgenden Text-Angaben (Text und ActiveText) tiefer gestellt werden. Wird durch das tiefer Setzen die aktuelle Zeilenhöhe überschritten, so wird diese um den entsprechenden Betrag erhöht.
Dieser Parameter steht in einer Wechselwirkung mit dem Up-Parameter, so daß von beiden lediglich der zuletzt Gesetzte gültig ist.
Diese Einstellung kann beliebig oft umgeschaltet werden und gilt bis zur nächsten Umschaltung
Werte: ganze Werte ab 0 oder kein Parameter, um den Wert auf 0 zu setzen
Default: 0

 

Name: LineHeight
Beschreibung: Mit LineHeight läßt sich eine Mindest-Zeilenhöhe für die folgenden Text-Angaben (Text und ActiveText) angeben. Diese Option ist besonders bei Tabellen sinnvoll, die spaltenorientiert aufgebaut sind und deren Spalten verschiedene Fonts verwenden. Durch die Festlegung einer Mindest-Zeilenhöhe ist es möglich die sich ergebenden Zeilen trotz verschiedener Fonts auf selber Höhe darzustellen. Um diese Einstellung zu vereinfachen, kann man abgesehen von einem Wert in Pixel, auch ein Referenzfont angeben, dessen Höhe dann als Mindesthöhe verwendet wird.
Diese Einstellung kann beliebig oft umgeschaltet werden und gilt bis zur nächsten Umschaltung
Werte: Referenzfont aus der Bilderliste oder ganze Werte ab 0 bzw. kein Parameter, um den Wert auf 0 zu setzen
Default: 0

 

Name: Target
Beschreibung: Angabe, in welchem Fenster/Frame die unter URL angegebene Seite nach Betätigung einer Aktiven Komponente (ActiveText) eingeladen werden soll. Es werden nur Seiten eingeladen, wenn der Aktiven Komponente eine URL und ein Target zugewiesen wird.
Diese Einstellung kann beliebig oft umdefiniert werden und gilt bis zur nächsten Umdefinition.
Wenn Target und URL in einem Container angegeben sind, werden alle im Container enthaltenen Aktive Komponenten miteinander verbunden
Werte:
  • Name des Frames
  • _self: Frame, in dem sich das Applet befindet
  • _blank: neues Fenster
  • _parent: übergeordnetes Frame des Appletframes. Wenn nicht vorhanden, entspricht diese Angabe der von _self
  • _top: Hauptframe des Appletfensters. Wenn beide identisch sind, entspricht diese Angabe der von "_self"
Default: -

 

Name: URL
Beschreibung: URL (Adresse) der einzuladenden Seite bei Betätigung einer Aktiven Komponenten (ActiveText). Es werden nur Seiten eingeladen, wenn der Aktiven Komponente eine URL und ein Target zugewiesen wird.
Diese Einstellung kann beliebig oft umdefiniert werden und gilt bis zur nächsten Umdefinition.
Wenn Target und URL in einem Container angegeben sind, werden alle im Container enthaltenen Aktive Komponenten miteinander verbunden
Werte: Entweder eine relative Adresse zur CodeBase (Verzeichnis, in dem das Applet liegt) oder eine absolute Adresse
Default: -

 

Name: JSCall
Beschreibung: Angabe einer JavaScript-Funktion (inklusiv Parameter), die bei Anwahl nachfolgend definierter Aktiver Komponenten (ActiveText) ausgeführt werden soll.
Diese Einstellung kann beliebig oft umdefiniert werden und gilt bis zur nächsten Umdefinition oder der Zuweisung eines leeren Wertes (JSCall=’’).
Wie auch bei der Angabe eines Targets und einer URL bzw. eines Commands in einem Container, werden durch die Angabe eines JSCall in einem Containerblock alle in ihm enthaltenen Aktiven Komponenten miteinander verbunden
Werte: JavaScript Funktion inklusive der Parameter
Default: -

 

Name: Commands
Beschreibung: Angabe einer Befehlssequenz, die bei Anwahl nachfolgend definierter Aktiver Komponenten (ActiveText) ausgeführt werden soll.
Diese Einstellung kann beliebig oft umdefiniert werden und gilt bis zur nächsten Umdefinition oder der Zuweisung einer leeren Befehlssequenz (Commands=’’ oder Commands={}).
Wie auch bei der Angabe eines Targets und einer URL bzw. eines JSCall in einem Container, werden durch die Angabe einer Befehlssequenz in einem Containerblock alle in ihm enthaltenen Aktiven Komponenten miteinander verbunden
Werte: Befehlssequenz oder Name eines Freien Macros
Default: -

 

Name: TextAlignment
Beschreibung: Festlegung der Ausrichtung der einzelnen Zeilen innerhalb des Textblocks.
Diese Einstellung gilt für den gesamten Textblock, so dass bei mehrfacher Angabe lediglich die zuletzt vorgenommene Einstellung gültig ist
Werte: Center, Left oder Right
Default: Left

 

Namen: Center, Top, Bottom, Left, Right
Beschreibung: Ausrichtung des gesamten Textblocks innerhalb des ihn enthaltenden Containers. Falls der Textblock in einem Container enthalten ist, der zeilenweise darstellt, werden als Parameter nur Center, Left und Right berücksichtigt. Bei spaltenweiser Darstellung des Vater-Containers hingegen nur Center, Top und Bottom.
Diese Einstellung gilt für den gesamten Textblock, so dass bei mehrfacher Angabe lediglich die zuletzt vorgenommene Einstellung gültig ist
Werte: -
Default: Innerhalb zeilenorientierter Container: Left
Innerhalb spaltenorientierter Container: Top

 

Name: Width
Beschreibung: Durch diesen Wert kann die Breite eines TextBlocks (oder ImageBlocks) begrenzt werden.
Wenn dieser Wert nicht angegeben ist, belegen Datenblöcke soviel Platz wie möglich bzw. nötig und reichen daher meist bis zum rechten Rand. Da bei spaltenorientiertem Aufbau jede Spalte eine bestimmte Breite haben soll, ist i.A. eine Begrenzung der Breite der einzelnen Spalten mit Ausnahme der Letzten notwendig.
Der dem Parameter Width zugewiesene Wert bezieht sich auf den in BaseWidth angegebenen Wert. Somit kann bei einer BaseWidth, die der Darstellungsbreite in Pixel entspricht, eine pixelgenaue Positionierung vorgenommen werden. Da sich die Breitenangabe auf den Wert von BaseWidth bezieht, kann die Grösse des Applets nachträglich verändert oder die Layer-Datei in andere Projekte wiederverwendet werden, ohne dass die Layer-Datei überarbeitet werden muss. Die angegebene Struktur folgt weiterhin den vorgegebenen Regeln und hält somit das Verhältnis der Breitenangaben ein.

Die Width-Angabe stellt im eigentlichen Sinne nicht die Breite des Datenblocks dar, sondern die Position seines rechten Randes. Die Position des linken Randes ist automatisch 0 oder wird durch die Position des rechten Randes der vorangegangenen Spalte vorgegeben. Daher werden 3 Spalten, die jeweils 33% des Platzes einnehmen sollen und in deren Layer-Datei eine BaseWidth von 100 angegeben wurde, mit einem Width-Wert von 33, 66 und 99 belegt.

Durch die Begrenzung der Breite eines Datenblocks und zusätzlicher Ausrichtung des gesamten Blocks, lassen sich auch auf einfache Weise Ränder an der linken und/oder rechten Seite erzeugen, sofern der Container groß genug ist, um eine Ausrichtung des Datenblocks zu ermöglichen

Werte: ganze Zahlen ab 0
Default: 100

 

Name: BGColor
Beschreibung: Angabe der Hintergrundfarbe, mit der der Textblock unterlegt werden soll. Der Gültigkeitsbereich kann durch die verschiedenen BGMargin-Parameter beschränkt werden
Werte: hexadezimaler Farbwert in der Form: 0xrrggbb oder #rrggbb
Default: -

 

Name: BGImage
Beschreibung: Angabe des Hintergrundbildes (über den vergebenen Namen in der Bilderliste), mit dem der Textblock unterlegt werden soll. Der Gültigkeitsbereich kann durch die verschiedenen BGMargin-Parameter beschränkt werden
Werte: Name des Bildes, der in der Bilderliste vergeben wurde
Default: -

 

Namen: Margin, TopMargin, BottomMargin, LeftMargin, RightMargin
Beschreibung: Durch diese Parameter können die Ränder des Textblocks gesetzt werden, um somit Abstände zu anderen Blöcken zu erzeugen. Die Ränder werden innerhalb des Blocks erzeugt, so dass vorgegebene Blockgrößen erhalten bleiben.
Mit dem Parameter Margin können alle Ränder gleichzeitig gesetzt werden. Wird kein Wert angegeben, so wird der entsprechende Rand auf 0 zurückgesetzt
Werte: ganze Zahlen ab 0 oder kein Wert, um auf 0 zurückzusetzen
Default: 0

 

Namen: BGMargin, BGTopMargin, BGBottomMargin, BGLeftMargin, BGRightMargin
Beschreibung: Diese Art von Ränder werden lediglich benötigt, wenn der Textblock eine Hintergrundfarbe und/oder ein Hintergrundbild enthält. Mit diesen Werten wird der jeweilige Abstand zwischen Blockrand und Hintergrundrand angegeben.
Mit BGMargin können alle Ränder gleichzeitig gesetzt werden. Wird kein Wert angegeben, so wird der entsprechende Rand auf 0 zurückgesetzt
Werte: ganze Zahlen ab 0 oder kein Wert, um auf 0 zurückzusetzen
Default: 0

 

 

 

4.6.3 Image-Block

Imageblöcke (IB) werden stets innerhalb eines Containerblocks angegeben und enthalten die auszugebenden Bilder, die auch aus einer gif-Animation bestehen können.
Jeder ImageBlock enthält ein Bild bzw. zwei Bilder, falls es sich um eine Aktive Komponente handelt, die zwischen den beiden Bildern umschaltet. Bei solchen Aktiven Komponenten ist die Grösse des ersten Bildes maßgebend, wodurch das aktive Bild die Grösse des Standardbildes annimmt.
Ebenso wie bei Textblöcken, können auch Imageböcke innerhalb ihres Containers ausgerichtet werden. Auch eine Ausrichtung des Bildes innerhalb seines Blocks ist möglich, wenn dem Block eine feste Grösse zugewiesen wurde, die grösser als das Bild selbst ist.

 

Beispiel:

IB= { Bottom; Width='100'; ImageAlignment='Center'; Target='_blank'
    URL='www.exsys.net'
   
Commands={Layer='info'; Load='exsysInfo.jet'}
   
Image='img1'
   
ActiveImage='img2'
}

 

 

Parameter:

Name: Image
Beschreibung: Angabe des Standardbildes, das dargestellt werden soll
Werte: Name des Bildes, der in der Bilderliste vergeben wurde
Default: -

 

Name: ActiveImage
Beschreibung: Angabe des Bildes, das dargestellt werden soll, wenn sich die Maus auf dem entsprechenden Bereich befindet. Durch Angabe dieses Bildes, wird der ImageBlock automatisch zu einer Aktiven Komponente
Werte: Name des Bildes, der in der Bilderliste vergeben wurde
Default: -

 

Name: Target
Beschreibung: Angabe, in welchem Fenster/Frame die unter URL angegebene Seite nach Betätigung der Maustaste auf dem Bild der Aktiven Komponente eingeladen werden soll. Es werden nur Seiten eingeladen, wenn der Aktiven Komponente eine URL und ein Target zugewiesen wird. Durch Angabe dieser beiden Werte wird der ImageBlock zu einer Aktiven Komponente.
Wenn Target und URL in einem Container angegeben sind, werden alle im Container enthaltenen Aktive Komponenten miteinander verbunden
Werte:
  • Name des Frames
  • _self: Frame, in dem sich das Applet befindet
  • _blank: neues Fenster
  • _parent: übergeordnetes Frame des Appletframes. Wenn nicht vorhanden, entspricht diese Angabe der von _self
  • _top: Hauptframe des Appletfensters. Wenn beide identisch sind, entspricht diese Angabe der von "_self"
Default: -

 

Name: URL
Beschreibung: URL (Adresse) der einzuladenden Seite nach Betätigung der Maustaste auf dem Bild der Aktiven Komponente. Es werden nur Seiten eingeladen, wenn der Aktiven Komponente eine URL und ein Target zugewiesen wird. Durch Angabe dieser beiden Werte wird der ImageBlock zu einer Aktiven Komponente.
Wenn Target und URL in einem Container angegeben sind, werden alle im Container enthaltenen Aktive Komponenten miteinander verbunden
Werte: Entweder eine relative Adresse zur CodeBase (Verzeichnis, in dem das Applet liegt) oder eine absolute Adresse
Default: -

 

Name: JSCall
Beschreibung: Angabe einer JavaScript-Funktion (inklusiv Parameter), die bei Anwahl nachfolgend definierter Aktiver Komponenten ausgeführt werden soll. Durch Angabe einer JavaScript-Funktion wird der ImageBlock zu einer Aktiven Komponente.
Wie auch bei der Angabe eines Targets und einer URL bzw. eines Commands in einem Container, werden durch die Angabe eines JSCall in einem Containerblock alle in ihm enthaltenen Aktiven Komponenten miteinander verbunden
Werte: JavaScript Funktion inklusive der Parameter
Default: -

 

Name: Commands
Beschreibung: Angabe einer Befehlssequenz, die bei Anwahl des Bildes mit der Maus ausgeführt werden soll. Durch Angabe einer Befehlssequenz wird der ImageBlock zu einer Aktiven Komponente.
Wie bereits bei der Angabe eines Targets und einer URL bzw. eines JSCall in einem Container, werden durch die Angabe einer Befehlssequenz in einem Containerblock alle in ihm enthaltenen Aktiven Komponenten miteinander verbunden
Werte: Befehlssequenz oder Name eines Freien Macros
Default: -

 

Name: ImageAlignment
Beschreibung: Festlegung der Ausrichtung des Bildes (bzw. der Bilder) innerhalb des Imageblocks, sofern der Block durch Angabe einer Breite (Width-Parameter) größer als das durch Image angegebene Standardbild ist
Werte: Center, Left oder Right
Default: Left

 

Namen: Center, Top, Bottom, Left, Right
Beschreibung: Ausrichtung des gesamten Imageblocks innerhalb des ihn enthaltenden Containers. Falls der Imageblock in einem Container enthalten ist, der zeilenweise darstellt, werden als Parameter nur Center, Left und Right berücksichtigt. Bei spaltenweiser Darstellung des Vater-Containers hingegen nur Center, Top und Bottom
Werte: -
Default: Innerhalb zeilenorientierter Container: Left
Innerhalb spaltenorientierter Container: Top

 

Name: Width
Beschreibung: Durch diesen Wert kann die Breite eines ImageBlocks (oder TextBlocks) begrenzt werden.
Wenn dieser Wert nicht angegeben ist, belegen Datenblöcke soviel Platz wie möglich bzw. nötig und reichen daher meist bis zum rechten Rand. Da bei spaltenorientiertem Aufbau jede Spalte eine bestimmte Breite haben soll, ist i.A. eine Begrenzung der Breite der einzelnen Spalten mit Ausnahme der Letzten notwendig.
Der dem Parameter Width zugewiesene Wert bezieht sich auf den in BaseWidth angegebenen Wert. Somit kann bei einer BaseWidth, die der Darstellungsbreite in Pixel entspricht, eine pixelgenaue Positionierung vorgenommen werden. Da sich die Breitenangabe auf den Wert von BaseWidth bezieht, kann die Grösse des Applets nachträglich verändert oder die Layer-Datei in andere Projekte wiederverwendet werden, ohne dass die Layer-Datei überarbeitet werden muss. Die angegebene Struktur folgt weiterhin den vorgegebenen Regeln und hält somit das Verhältnis der Breitenangaben ein.

Die Width-Angabe stellt im eigentlichen Sinne nicht die Breite des Datenblocks dar, sondern die Position seines rechten Randes. Die Position des linken Randes ist automatisch 0 oder wird durch die Position des rechten Randes der vorangegangenen Spalte vorgegeben. Daher werden 3 Spalten, die jeweils 33% des Platzes einnehmen sollen und in deren LayerDatei eine BaseWidth von 100 angegeben wurde, mit einer Width von 33, 66 und 99 belegt.

Durch die Begrenzung der Breite eines Datenblocks und zusätzlicher Ausrichtung des gesamten Blocks, lassen sich auch auf einfache Weise Ränder an der linken und/oder rechten Seite erzeugen, sofern der Container groß genug ist, um eine Ausrichtung des Datenblocks zu ermöglichen

Werte: ganze Zahlen ab 0
Default: 100

 

Namen: Margin, TopMargin, BottomMargin, LeftMargin, RightMargin
Beschreibung: Durch diese Parameter können die Ränder des Imageblocks gesetzt werden, um somit Abstände zu anderen Blöcken zu erzeugen. Die Ränder werden innerhalb des Blocks erzeugt, so dass vorgegebene Blockgrößen erhalten bleiben.
Mit dem Parameter Margin können alle Ränder gleichzeitig gesetzt werden. Wird kein Wert angegeben, so wird der entsprechende Rand auf 0 zurückgesetzt
Werte: ganze Zahlen ab 0 oder kein Wert, um auf 0 zurückzusetzen
Default: 0

 

 

 

4.6.4 Space-Block

SpaceBlöcke (SB) werden verwendet, um ContainerBlöcke, die auf der höchsten Ebene (also nicht innerhalb eines Container- oder Datenblocks) definiert wurden, vertikal auszurichten oder um einen Abstand zum folgenden ContainerBlock und somit zu seinem Inhalt herzustellen. Daraus ergibt sich, dass SpaceBlöcke ebenfalls nur auf der höchsten Ebene definiert werden können.

Im Allgemeinen bestehen die Informationen einer Layer aus verschiedenen Themenbereichen, die durch verschiedene Containerblöcke strukturiert werden und somit einen bestimmten Kontext wiedergeben. Oft ist es erwünscht diese Kontexte durch Hinzufügen von Leerräumen sichtbar voneinander zu trennen oder gar dafür zu sorgen, dass sie einzeln dargestellt werden. Eine übliche Anwendung wäre z.B. das automatische Scrolling zu pausieren, nachdem der KontextBlock (wiedergegeben durch einen ContainerBlock) auf dem Sichtbereich zentriert wurde, ohne dass ein fremder Kontext-Block sichtbar ist. Dies kann natürlich durch Einfügen fester Leeräume erreicht werden, hat aber den Nachteil, dass diese bei einer Veränderung der Appletgröße oder des Kontextblockes angepasst werden müssen. Einfacher und wartungsfreundlicher ist es, eine der vorhandenen Regeln anzuwenden, die automatisch den jeweils vorangegangenen ContainerBlock zentrieren bzw. oben oder unten bündig darstellen und dafür sorgen, dass sich fremde KontextBlöcke außerhalb des Sichtbereiches befinden. Befehlssequenzen, die nach dem SpaceBlock angegeben wurden, werden erst nach Erreichen der vorgegebenen Position ausgeführt.

Die Position eines Labels (Sprungmarke) wird ebenfalls durch Spaceblöcke beeinflusst. Da SpaceBlöcke, die einen Leerbereich vor dem KontextBlock setzen (Center und Bottom), einen durch den vorangegangenen Kontextblock bereits gesetzten Leerbereich berücksichtigen, also aufrechnen, ist die Positionierung eines Labels am oberen Rand des ausgerichteten Blocks nicht ohne weiteres möglich. Bedenken Sie, dass der Leerbereich durch den bereits vorhandenen Leerbereich des vorangegangenen Blocks geringer ausfällt und das Label somit tiefer liegt. Um in einem solchen Fall dennoch das Label an der gewünschten Stelle positionieren zu können, gibt es für die Regeln Center und Bottom die Ersatzregeln FixCenter und FixBottom, die vorangegangene Leerbereiche ignorieren und somit den geforderten Leerbereich vollständig einfügen.

 

Beispiel:

Label='main'
{
    TB = {
        // specify text block content
    }
}
SB = 'Top'
Commands={Pause='3000'}

Label='intro'
{
   
TB = {
       
// specify text block content
   
}
}
SB = 'FixCenter'
Commands={Pause='5000'}

 

Werte eines SpaceBlockes

Fester Wert: ganze Zahl größer 0:
Fügt einen festen Leerraum ein, der in der Größe dem angegebenen Wert entspricht

Center:
Zentrierung des vorangegangen Containerblocks, ohne dass fremde ContainerBlöcke sichtbar sind. Hierbei werden bereits vorhandene Leerbereiche berücksichtigt, indem die zu setzenden Leerräume um deren Größe verringert werden.

Top:
Fügt hinter dem vorangegangenen ContainerBlock einen Leerbereich ein, der so groß ist, dass der folgende ContainerBlock noch nicht zu sehen ist, wenn der auszurichtende Container am oberen Rand des Sichtbereiches dargestellt wird.

Bottom:
Fügt vor dem vorangegangenen ContainerBlock einen Leerbereich ein, der so groß ist, dass der vorherige ContainerBlock nicht mehr zu sehen ist, wenn der auszurichtende Container am unteren Rand des Sichtbereiches dargestellt wird. Hierbei werden bereits vorhandene Leerbereiche berücksichtigt, indem die zu setzenden Leerräume um deren Größe verringert werden.

FixCenter:
Zentrierung des vorangegangen Containerblocks, so dass fremde ContainerBlöcke nicht sichtbar sind. Hierbei werden, im Gegensatz zu Center, bereits vorhandene Leerbereiche nicht berücksichtigt.

FixBottom:
Fügt vor dem vorangegangenen ContainerBlock einen Leerbereich ein, der so groß ist, dass der vorherige ContainerBlock nicht mehr zu sehen ist, wenn der auszurichtende Container am unteren Rand des Sichtbereiches dargestellt wird. Hierbei werden, im Gegensatz zu Bottom, bereits vorhandene Leerbereiche nicht berücksichtigt.

ClearScreen:
Fügt einen Leerberreich ein, der so groß wie der Sichtbereich ist, wobei bereits vorhandene Leerbereiche berücksichtigt werden, indem der zu setzende Leerraum um dessen Größe verringert wird.

FullScreen:
Fügt einen Leerberreich ein, der so groß wie der Sichtbereich ist. Hierbei werden, im Gegensatz zu ClearScreen, bereits vorhandene Leerbereiche nicht berücksichtigt.

 

 

4.7 Aktive Komponenten

Wie bereits in den Beschreibungen der Text- und ImageBlöcke erläutert, sind Aktive Komponenten Bilder oder Textkomponenten, die eine Funktion beinhalten. Diese Funktion kann aus der Ausführung eines Hyperlinks, einer JavaScript-Anweisung und/oder einer Befehlssequenz bestehen, die bei Anwahl der Komponente mit der Maus aktiviert werden. Aktive Komponenten können aber auch funktionslos sein und stellen dann lediglich durch die optische Änderung ihres Zustandes eine Aktive Komponente dar.

Textbereiche, die eine Aktive Komponente darstellen sollen, werden mittels ActiveText, statt der normalen Textangabe durch Text, angegeben. Der Aktiven Komponente kann durch Angabe einer Befehlssequenz, einer JavaScript-Anweisung und/oder einer URL und eines Targets eine Funktionalität zugewiesen werden.

Bei Bildern, die eine Aktive Komponente darstellen sollen, reicht die Angabe eines alternativen Bildes aus, das angezeigt wird, sobald sich die Maus auf dem entsprechenden Bereich befindet. Diesen Bildern kann dann ebenfalls durch Angabe einer Befehlssequenz, einer JavaScript-Anweisung und/oder einer URL und eines Targets eine Funktionalität zugewiesen werden. Bei Bildern reicht bereits die Angabe einer Funktion aus, um sie zu Aktiven Komponenten zu machen, ohne dass ihnen ein alternatives Bild zugewiesen werden muss.

 

4.7.1 Verknüpfung Aktiver Komponenten – Container Links

Um eine Aktive Komponente zu erzeugen, die aus Bildern und Texten besteht, ist es möglich verschiedene Aktive Komponenten miteinander zu verbinden. Dabei ist es ohne Bedeutung welcher Art diese sind, also ob Text oder Bild, oder wieviele Komponenten miteinander verbunden werden sollen.
Miteinander verbundene Aktive Komponenten verhalten sich wie eine einzige Aktive Komponente, indem sie alle gleichzeitig ihren Zustand wechseln, sobald sich die Maus auf dem Bereich einer dieser Komponenten befindet. Da sich die verbundenen Komponenten wie eine einzige Komponente verhalten, sind die von ihnen auszuführenden Funktionen auch die Selben, gleichgültig welche dieser Komponenten ausgewählt wird. Die Funktionalität und automatisch auch die Verknüpfung der Aktiven Komponenten wird in dem ContainerBlock festgelegt, der die Aktiven Komponenten beinhaltet. Zu diesem Zweck kann natürlich auch speziell ein Container erzeugt werden. Individuelle Funktionalitäten, die direkt bei einer Aktiven Komponente angegeben wurden, werden bei Container Links ignoriert.

Die Verknüpfung Aktiver Komponenten erfolgt durch Angabe einer Befehlssequenz, einer JavaScript-Funktion und/oder einer URL und eines Targets innerhalb eines Containers.

 

Beispiel:

{ CENTER; Columns; URL='www.exsys.net'; Target='_blank'; JSCall='openWindow("parameter1", "parameter 2")'
   
TB={ Width='45'
       
Text='This is the first column including the first connected '
       
ActiveText='Active Component'
   
}
   
TB={ Width= '90'
       
Text='This is the second column including the second connected '
       
ActiveText='Active Component'
   
}
}

 

 

 

4.8 Befehle & Befehlssequenzen

Befehle dienen zur Steuerung und Beeinflussung der verschiedenen Layers während der Laufzeit. Die Angabe eines Befehls erfolgt stets als Bestandteil einer Befehlssequenz, welche eine Auflistung der auszuführenden Befehle darstellt, und deren Bestandteile beim Eintreten der auslösenden Bedingung in der angegebenen Reihenfolge ausgeführt werden.
Durch Angabe einer Bezugslayer innerhalb der Befehlssequenz können Befehle direkt an fremde Layer gerichtet werden, um dort ausgeführt zu werden und so das Verhalten der fremden Layer zu steuern, was insbesondere bei Menü-Layern oder zum Nachladen fremder Layer erforderlich ist.
Um die Bezugslayer anzugeben, wird dem Layer-Parameter der Layer-Name zugewiesen, der in der Projekt-Datei festgelegt wurde. Die Bezugslayer kann innerhalb der Befehlssequenz an beliebiger Stelle und beliebig oft angegeben und umdefiniert werden. Jeder Befehl bezieht sich bei seiner Ausführung auf die zum Zeitpunkt seines Auftretens zuletzt angegebene Bezugslayer, wobei bei fehlender Angabe die eigene Layer als Bezugslayer verwendet wird.
Neben der Angabe einer Bezugslayer über den Layernamen, stehen noch die Schlüsselworte 'Self' zur Referenzierung der eigenen Layer und 'All', um die Befehle auf alle Layer zu beziehen, zur Verfügung.

Befehlssequenzen werden innerhalb geschweifter Klammern angegeben und enthalten eine Auflistung der auszuführenden Befehle und eine beliebig oft und optionale Angabe der Bezugslayer. Die einzelnen Befehle bzw. Anweisungen der Sequenz können durch Semikolons voneinander getrennt werden.

 

 

Prinzipiell kann zwischen drei Arten ausführender Befehlssequenzen unterschieden werden. Diese verschiedenen Typen unterscheiden sich primär durch die Art und Weise wie sie ausgelöst werden.

Ausführung durch Aktive Komponenten
Die Befehlssequenz ist an eine Aktive Komponente eines Text- oder Imageblockes gebunden und wird erst durch deren Anwahl ausgeführt. Das Konzept einer solchen Befehlssequenz entspricht dem eines Hyperlinks. Eine Aktive Komponente kann die Funktionalität einer Befehlssequenz, einer JavaScript-Funktion und eines Hyperlinks enthalten und somit alle drei Aktionen gleichzeitig bei ihrer Anwahl ausführen.

Beispiel:

TB = { Target='_blank'; URL='www.exsys.net'
   
Commands={Layer='All'; Stop; Layer='Self'; Jump='index'; Layer='main'; Reload}
   
ActiveText='Active Component'
}

 

Positionsabhängige Ausführung
Positionsabhängige Befehlssequenzen werden auf höchster Ebene angegeben, also nicht innerhalb eines Container- oder Datenblocks, und werden in Abhängigkeit ihrer Definitionsposition und der Darstellungsposition der Layer ausgeführt.
Positionsabhängige Befehlssequenzen unterstützen einen zusätzlichen Parameter, durch den angegeben werden kann, ob die Befehlssequenz beim Erreichen ihrer Definitionsposition am unteren oder am oberen Rand des Darstellungsbereiches ausgeführt wird.

Da bei jedem Neustart des automatischen Scrollings erneut geprüft wird, ob an der aktuellen Position ein Befehl auszuführen ist, sollte bei positionsabhängigen Befehlssequenzen der Einsatz des Stop-Befehls vermieden werden - dieser würde bei einem ausgeführten Start-Befehl das Scrolling erneut stoppen. Möchte man das Scrolling dennoch stoppen, wird die Verwendung des Pause-Befehls empfohlen, da dieser sowohl bei Ablauf der angegebenen Zeitspanne wie auch bei Ausführung des Start- und Continue-Befehles das automatische Scrolling aufnimmt ohne die Befehlssequenz erneut auszuführen.

 

Beispiel 1:

{
    TB = {
        // Specify block content
    }
}
Commands={Bottom; Pause='2000'}

Effekt:
Ungeachtet der Größe des Datenblocks, wird das automatische Scrolling für 2 Sekunden pausiert, nachdem der Containerblock (und somit der Datenblock) am unteren Rand des Darstellungsbereiches ausgerichtet ist.

 

Beispiel 2:

{
    TB = {
        // Specify block content
    }
}
Commands={TOP; Speed='20'}

Effekt:
Ungeachtet der Größe des Datenblocks, wird die Geschwindigkeit des Scrollings verändert, sobald der Containerblock (und somit der Datenblock) am oberen Darstellungsbereiches herausgescrollt ist.

 

Beispiel 3:

{
    TB = {
        // Specify block content
    }
}
SB='TOP'
Commands={Bottom; Pause='2000'}

Effekt:
Fall 1: Containerblock ist größer als der Darstellungsbereich
Das automatische Scrolling wird, nachdem das Ende des Datenblockes am unteren Rand des Darstellungsbereiches dargestellt wird, für 2 Sekunden pausiert.

Fall 2: Containerblock ist kleiner als der Darstellungsbereich
Das automatische Scrolling wird, nachdem der Datenblock am oberen Rand des Darstellungsbereiches ausgerichtet ist, für 2 Sekunden pausiert.

 

Ausführung durch Ereignis-Macros
Die Befehlssequenzen der Ereignis-Macros werden durch das Eintreten des Ereignisses, das den Macro characterisiert, automatisch ausgeführt. Die einzelnen Ereignis-Macros sind in einem gesonderten Kapitel näher beschrieben.

Beispiele:

Init = {Stop='1000'}

ReloadRequest = {Layer='LoadMessage'; ShowIncrement}
ReloadIndication = {Layer='LoadMessage'; HideIncrement}

MouseEnter = {Stop}
MouseExit = {Start}

MouseOnLink = {Pause}
MouseOffLink = {Continue}

 

 

 

Umdefinition von Befehlssequenzen während der Laufzeit
Jede Befehlssequenz mit Ausnahme der Freien Macros kann während der Laufzeit umdefiniert werden. Hierdurch können Befehle so definiert werden, dass sie lediglich ein einziges Mal ausgeführt werden, oder auch so, dass während der Laufzeit ihre Funktionalität verändert wird.
Die Umbelegung erfolgt innerhalb der ursprünglichen Befehlsfolge durch den Set-Parameter, dem entweder der Name eines freien Macros oder direkt eine neue Befehlssequenz zugewiesen wird. Der neue Zustand wird nach Ausführung der urprünglichen Befehlssequenz eingenommen. Es ist auch möglich eine leere Befehlsfolge anzugeben, wodurch der Befehl zu einem einmalig ausführbaren Befehl wird.

 

Beispiel:

// Free Macros
Macros = {
    State1={SetBGColor='0x000000'; Set='State2'} |
    State2={SetBGColor='0xFF0000'; Set='State3'} |
    State3={SetBGColor='0x00FF00'; Set='State4'} |
    State4={SetBGColor='0x0000FF'; Set='State5'} |
    State5={SetBGColor='0xFFFFFF'; Set='State1'}
}

// Display Information
{
    TB = {
        Commands = 'State1'
        ActiveText='Active Component 1, '    // rotating states
        Commands = {Load='newFile.jet'; Set={}}
        ActiveText='Active Component 2, '    // use once command
        Commands = {Direction='Back'; Set={Direction='Forward'}}
        ActiveText='Active Component 3'    // direct reassignment; only once
    }
}

 

Da Befehlssequenzen auch von fremden Befehlssequenzen und sogar von fremden Layern aus umdefiniert werden können, kann jeder Befehlssequenz zu ihrer Referenzierung ein Name zugewiesen werden.
Die explizite Namensvergabe wird nur bei Befehlssequenzen Aktiver Komponente und positionsabhängiger Befehlssequenzen unterstützt, da Ereignis-Macros und Freie-Macros von Haus aus über einen Namen verfügen.
Die Vergabe des Namens erfolgt innerhalb der Befehlssequenz über den Name-Parameter.

Einem Commands-Parameter, der seine Befehlssequenz über einen Freien Macro zugeordnet bekommt, kann kein Name zugewiesen werden. In einem solchen Fall, gerade wenn es sich um zyklische Zustandswechsel handelt, kann die erste Belegung durch direkte Zuweisung einer Befehlssequenz mit Angabe eines Namens erfolgen und weitere Zustandsänderungen dann in gewohnter Weise über die Freien Macros behandelt werden.

Ereignis-Macros werden durch Angabe ihres Macro-Namens umdefiniert.

Freie-Macros können nicht umdefiniert werden, da sie eine Sammlung unveränderlicher Befehlssequenzen darstellen.

 

Beispiel:

// Free Macros
Macros = {
    State1={SetBGColor='0x000000'; Set='State2'} |
    State2={SetBGColor='0xFF0000'; Set='State3'} |
    State3={SetBGColor='0x00FF00'; Set='State4'} |
    State4={SetBGColor='0x0000FF'; Set='State5'} |
    State5={SetBGColor='0xFFFFFF'; Set='State1'}
}

// Display Information
{
    TB = {
        Commands = {Name='ColorSwitcher'; SetBGColor='0x000000'; Set='State2'}
        ActiveText='Active Component 1, ' // rotating states
        Commands = {ColorSwitcher='state1'}
        ActiveText='Active Component 2, ' // resets command of ‘Active Component 1’
        Commands = {MouseEnter='Stop'; MouseExit='Start'}
        ActiveText='Active Component 3, ' // defines MouseEnter & MouseExit Event-Macros
        Commands = {Layer='info'; ReloadCommand={}}
        ActiveText='Active Component 4' // clears command in Layer ‘info’
    }
}

 

Anmerkungen:
Befehlssequenzen verschiedener Instanzen werden asynchron ausgeführt. Dies bedeutet, dass wenn zwei Befehlssequenzen schnell hintereinander ausgelöst werden, die zweite Sequenz die Erste bei der Ausführung überholen kann. Selbiges gilt auch bei Befehlen innerhalb einer Sequenz, sofern sie sich auf verschiedene Layer beziehen.

Alle Befehle beziehen sich auf die Layers und nicht auf die Befehle selbst. D.h., dass ein Pause-Befehl nicht die Auswertung der Befehlsfolge sondern das Scrolling der Layer pausiert.

Bei positionsabhängigen Befehlssequenzen wird nach einem Stop (Stop-Befehl) und einem folgenden Neustart (Start-Befehl) des automatischen Scrollings erneut geprüft, ob an der aktuellen Position ein Befehl ausgeführt werden muss. Dies ist bei einer Pausierung (Pause-Befehl) und einer Fortsetzung des automatischen Scrollings (Start-Befehl, Continue-Befehl oder Ablauf der Pause) nicht der Fall.

 

 

Angaben innerhalb einer Befehlssequenz

Name: Layer
Beschreibung: Angabe der Layer, auf die sich die folgenden Befehle beziehen
Werte: Self, All oder Name der Layer (angegeben in der Projekt-Datei)
Default: Self
Beispiel: Commands={Layer='info'; Reload}

 

Namen: Top, Bottom
Beschreibung:

Legt fest, ob die Befehlssequenz beim Erreichen des unteren oder des oberen Randes des Sichtbereiches ausgeführt wird.
Diese Werte sind Schlüsselwörter ohne Parameter und finden nur bei positionsabhängigen Befehlssequenzen Verwendung

Werte: -
Default: Bottom
Beispiel: Commands={Top; Pause}

 

 

 

Befehle

Name: Speed
Beschreibung:

Angabe der Geschwindigkeit des automatischen Scrollings. Der angegebene Wert gilt als Richtwert, wieviele Schritte in Pixel pro Sekunde zurückgelegt werden sollen

Werte: ganze Zahl ab 0
Default: 40
Beispiel: Commands={Speed='50'}

 

Name: Direction
Beschreibung:

Angabe in welche Richtung das automatische Scrolling erfolgen soll

Werte: Back, Forward
Default: Forward
Beispiel: Commands={Direction='Back'}

 

Name: Jump
Beschreibung:

Sprung zu einem definierten Label. Der Sichtbereich wird entsprechend der Label-Position neu ausgerichtet

Werte: Name des Labels, zu dem der Sprung erfolgen soll
Default: -
Beispiel: Commands={Jump='index'}

 

Name: Pause
Beschreibung:

Leitet die Pausierung des automatischen Scrollings für die angegebene Zeitspanne in ms ein. Wird kein Wert angegeben, ist die Pause unbegrenzt und kann nur über den Continue- oder Start-Befehl aufgehoben werden

Werte: Zeitspanne in ms oder kein Wert für unbegrenzte Pause
Default: -
Beispiel: Commands={Pause='2000'}

 

Name: Continue
Beschreibung:

Hebt eine zuvor eingeleitete Pause auf, wodurch das automatische Scrolling wieder aufgenommen wird

Werte: -
Default: -
Beispiel: Commands={Continue}

 

Name: Start
Beschreibung:

Startet das automatische Scrolling, sofern der Wert der angegebenen Priorität grösser oder gleich der Prioriät ist, die durch einen Stop-Befehl gesetzt wurde. Die Priorität des Stop-Befehles dient dem Setzen einer Bedingung, anhand der ermittelt wird, ob folgende Start-Befehle ausgeführt werden. Somit kann die Ausführung von Start-Befehlen unterdrückt werden, die zu dem Zeitpunkt unerwünscht sind. Ist die Priorität eines Start-Befehls ausreichend hoch, wird die durch den Stop-Befehl gesetzte und von der Layer geforderte Priorität zurückgesetzt. Die Priorität lässt sich auch mit dem LowerStopPriority-Befehl herabsetzen, ohne dass das automatische Scrolling durch den Start-Befehl gestartet wird.
Wird dem Start-Befehl keine Priorität angegeben, gilt eine Priorität von 0

Werte: ganze Zahl ab 0 oder kein Parameter (entspricht Priorität 0)
Default: 0
Beispiel: Commands={Start='1000'}

 

Name: Stop
Beschreibung:

Stoppt das automatische Scrolling. Die Priorität des Stop-Befehls dient dem Setzen einer Bedingung, anhand der ermittelt wird, ob folgende Start-Befehle ausgeführt werden. Somit kann die Ausführung von Start-Befehlen unterdrückt werden, die zu dem Zeitpunkt unerwünscht sind. Ist die Priorität eines Start-Befehles ausreichend hoch, wird die durch den Stop-Befehl gesetzte und von der Layer geforderte Priorität zurückgesetzt. Die Priorität lässt sich auch mit dem LowerStopPriority-Befehl herabsetzen, ohne dass das automatische Scrolling durch den Start-Befehl gestartet wird.
Wird dem Stop-Befehl keine Priorität angegeben, gilt eine Priorität von 0, so dass das automatische Scrolling durch jeden Start-Befehl (auch ohne Prioritäts-Angabe) gestartet wird

Werte: ganze Zahl ab 0 oder kein Parameter (entspricht Priorität 0)
Default: 0
Beispiel: Init={Stop='100000'}

 

Name: LowerStopPriority
Beschreibung:

Setzt die durch einen Stop-Befehl gesetzte Priorität (von Start-Befehlen zu erfüllende Bedingung) auf den angegebenen Wert herunter, ohne dass weitere Aktionen ausgeführt werden

Werte: ganze Zahl ab 0
Default: -
Beispiel: Commands={LowerStopPriority='0'}

 

Name: Reload
Beschreibung:

Nachladen der aktuellen Layer-Datei

Werte: -
Default: -
Beispiel: Commands={Reload}

 

Name: Load
Beschreibung:

Ersetzt den Inhalt der Layer durch die angegebene Layer-Datei

Werte: Layer-Datei
Default: -
Beispiel: Commands={Layer='info'; Load='info2.jet'}

 

Name: LoadProject
Beschreibung:

Ersetzt das aktuelle Projekt durch die angegebene Projekt-Datei

Werte: Projekt-Datei
Default: -
Beispiel: Commands={LoadProject='products.prj'}

 

Name: Hide
Beschreibung:

Unterdrückt die Darstellung einer Layer indem sie unsichtbar geschaltet wird

Werte: -
Default: -
Beispiel: Commands={Layer='menu'; Hide}

 

Name: Show
Beschreibung:

Schaltet eine unsichtbare Layer wieder sichtbar

Werte: -
Default: -
Beispiel: Commands={Layer='menu'; Show}

 

Name: HideIncrement
Beschreibung:

Ähnlich wie bei dem Hide-Befehl, dient dieser Befehl dem Ausschalten einer Layer. Hierbei wird aber bei jeder Ausführung des Befehles ein Zähler hochgezählt. Die Layer ist immer dann unsichtbar, wenn die Anzahl der HideIncrement-Ausführungen größer ist als die der ShowIncrement-Ausführungen.
Ein Anwendungsbeispiel wäre das Einschalten einer Loading-Layer, die während des Ladevorganges eine Lade-Nachricht ausgibt. Durch die HideIncrement- und ShowIncrement-Befehle bleibt die Nachricht auch dann aktiv, wenn mehrere Layer gleichzeitig am Laden sind und wird erst durch die Beendigung des letzten Ladevorganges wieder ausgeschaltet.
Eine direkte Ausführung der Show- und Hide-Befehle sowie des SwitchShowHide-Befehls setzt den Zähler auf 0 oder 1, je nachdem welcher Befehl angewendet wurde

Werte: -
Default: -
Beispiel: ReloadIndication={Layer='loading'; HideIncrement}

 

Name: ShowIncrement
Beschreibung:

Ähnlich wie bei dem Show-Befehl, dient dieser Befehl dem Einschalten einer Layer. Hierbei wird aber bei jeder Ausführung des Befehls ein Zähler hochgezählt. Die Layer ist immer dann sichtbar, wenn die Anzahl der ShowIncrement-Ausführungen größer oder gleich ist als die der HideIncrement-Ausführungen.
Ein Anwendungsbeispiel wäre das Einschalten einer Loading-Layer, die während des Ladevorganges eine Lade-Nachricht ausgibt. Durch die HideIncrement- und ShowIncrement-Befehle bleibt die Nachricht auch dann aktiv, wenn mehrere Layer gleichzeitig am Laden sind und wird erst durch die Beendigung des letzten Ladevorganges wieder ausgeschaltet.
Eine direkte Ausführung der Show- und Hide-Befehle sowie des SwitchShowHide-Befehls setzt den Zähler auf 0 oder 1, je nachdem welcher Befehl angewendet wurde

Werte: -
Default: -
Beispiel: ReloadRequest={Layer='loading'; ShowIncrement}

 

Name: SwitchShowHide
Beschreibung:

Schaltet den Status einer Layer zwischen sichtbar und unsichtbar um, wobei der von ShowIncrement und HideIncrement verwendete Zähler angepasst wird

Werte: -
Default: -
Beispiel: Commands={Layer='loading'; SwitchShowHides}

 

Name: SetUserControl
Beschreibung:

Setzt die vom Anwender kontrollierte Layer, deren Darstellungsposition über den Scrollbar und durch Ziehen des Sichtbereiches mit der Maus verändert werden kann.
Die aktive Bezugslayer in der Befehlssequenz wird bei Ausführung des Befehls zur neuen vom Anwender kontrollierten Layer

Werte: -
Default: -
Beispiel: Commands={Layer='info1'; Hide; Layer='info2'; SetUserControl; Show}

 

Name: Scrollbar
Beschreibung:

Legt die Darstellungsweise und den Zustand des Scrollbars fest

Werte:

Hide: ausblenden
Left: an der linken Seite sichtbar darstellen
Right: an der rechten Seite sichtbar darstellen
Yes, On, True: Scrollbar aktiv
No, Off, False: Scrollbar inaktiv

Default: -
Beispiel: Commands={Scrollbar='Left'; Scrollbar='On'}

 

Name: DragMode
Beschreibung:

Legt fest, ob der Sichtbereich der vom Anwender kontrollierten Layer durch ziehen mit der Maus verändert werden kann

Werte: Yes, On, True bzw. No, Off, False
Default: Yes
Beispiel: Commands={DragMode='Off'}

 

Name: SetBGColor
Beschreibung:

Setzt die Hintergrundfarbe, auf der alle Layer dargestellt werden

Werte: hexadezimaler Farbwert in der Form: 0xrrggbb oder #rrggbb
Default: -
Beispiel: Commands={SetBGColor='0x0000FF'}

 

Name: Set
Beschreibung:

Umbelegung der aktuellen Befehlssequenz durch die angegebene Befehlssequenz. Die neue Befehlssequenz wird erst nach Abarbeitung der aktuellen Befehlssequenz aktiv

Werte: Befehlssequenz oder Name eines Freien Macros
Default: -
Beispiel:

Macros = {
         Color1={SetBGColor='0x000000'; Set='color2'} |
         Color2={SetBGColor='0xFFFFFF'; Set='color1'} |
         Macro1={Stop; Set={Jump='index'}}
}

 

Namen: Init, MouseEnter, MouseExit, MouseOnLink, MouseOffLink, MousePressed, MouseReleased, ReloadRequest, ReloadIndication, ShowLayer, HideLayer, LayerResized
Beschreibung:

Umbelegung der Befehlssequenz des angegebenen Ereignis-Macros. Der Befehl zur Umbelegung entspricht stets dem Namen des Ereignis-Macros

Werte: Befehlssequenz oder Name eines Freien Macros
Default: -
Beispiel: Commands={MouseOnLink={Pause}; MouseOffLink={Continue; Pause='1200'}; MousePressed='MPMacro'}

 

 

 

4.8.1 Sprünge und Labels

Die Definition von Labels (Sprungmarken) kann in beliebiger Anzahl auf höchster Ebene (nicht innerhalb von Container- und Datenblöcken) erfolgen. Diese Labels dienen als Sprungadressen, zu denen mittels eines Jump-Befehls gesprungen werden kann, um den Darstellungsbereich entsprechend der Definitionsposition des Labels am oberen Rand des Darstellungsbereiches neu auszurichten.

Die Angabe eines Labels wird mit dem Schlüsselwort Label eingeleitet, dem ein durch Hochkommatas begrenzter und frei wählbarer Labelname zugewiesen wird.

 

Beispiel:

Label='home'
{
    TB={
        Text='Jump to Label: '
        Commands={Jump='Label2'}
        ActiveText='Label 2'
    }
}
SB='FixCenter'
Commands={Pause='2000'}

Label='Label2'
{
    TB={
        Text='Jump to Label: '
        Commands={Jump='Home'}
        ActiveText='Home'
    }
}
SB='Top'
Commands={Pause='2000'}


 

 

 

5 Unterstützung von JavaScript

Dieses Tool unterstützt die Kommunikation mit JavaScript in beide Richtungen, d.h. sowohl Aufrufe von JavaScript-Funktionen über Anwahl einer Aktiven Komponente, wie auch die Steuerung des Tools durch JavaScript über Angabe einer auszuführenden Befehlssequenz.

Diese Funktionalität ist jedoch vom verwendeten Browser abhängig, wird aber z.Z sowohl vom MS Internet Explorer wie auch vom Netscape Navigator unterstützt.

 

 

5.1 Zugriffe von JavaScript auf das Applet

Um auszuführende Befehlssequenzen mittels JavaScript anzugeben, verfügt das Tool über die Methode evalCommand(layer, commands).
Diese Methode erhält als zweiten Parameter die vom Applet auszuführende Befehlssequenz. Diese Befehlssequenz unterliegt den selben Regeln wie die Befehlssequenzen, die innerhalb der Layer-Datei definiert werden und besteht somit aus einem oder mehreren Befehlen sowie Layer-Zuweisungen, die zwischen geschweiften Klammern aufgelistet werden.
Da innerhalb der Befehlssequenz die Zuweisung einer Layer optional ist, wird im ersten Parameter eine Layer angegeben, die solange als Bezugslayer gilt, wie in der Befehlssequenz keine explizite Angabe einer Bezugslayer vorgenommen wird.
Beide Parameter sind dem Applet als String zu übergeben.

Syntax:

document.<applet name>.evalCommand(<reference Layer>, <command sequence>);

Beispiel:

document.jet_applet.evalCommand("info", "{Load='products.jet'}");

 

Wie aus den Beispielen zu ersehen ist, benötigt das zu referenzierende Applet einen Namen, der mittels des NAME-Parameters bei der Applet-Definition angegeben werden kann.
Es existieren weitere Möglichkeiten das Applet zu referenzieren – auch Möglichkeiten, bei denen dem Applet kein Name zugeordnet werden muss. Diese können in entsprechender HTML/JavaScript-Literatur nachgeschlagen werden.

 

Beispiel: HTML-Datei

<HTML>
<HEAD></HEAD>
<BODY>

<APPLET CODE="Ticker.class" WIDTH="360" HEIGHT="240" NAME="jet_name" ARCHIVE="jet.jar" >
    <PARAM NAME="Author" VALUE="JET - Java Extended Ticker - (c) exsys GbR Emden - www.java.exsys.net">
    <PARAM NAME=ProjectFile VALUE="demo.prj">
    <PARAM NAME=LoadingMessage VALUE="Loading...">
    <PARAM NAME=LoadingBGColor VALUE="0x000000">
    <PARAM NAME=LoadingTextColor VALUE="0xFFFFFF">
</APPLET>

<FORM NAME="form1">
    <INPUT TYPE="text1" SIZE="15" NAME="layer" value="info">
    <INPUT TYPE="text2" SIZE="30" NAME="cmd" value="{Layer='All'; Stop}">
    <BR><BR>
    <INPUT TYPE="button" VALUE="Send Command"
    onClick="document.jet_name.evalCommand(document.form1.layer.value, document.form1.cmd.value)">
</FORM>

</BODY>
</HTML>

 

 

 

5.2 Zugriffe des Applets auf JavaScript-Funktionen

Die Ausführung von JavaScript-Funktionen durch Ereignisse des Applets, erfolgt nach dem selben Prinzip wie die Ausführung von Befehlssequenzen oder Hyperlinks.
Jeder Aktiven Komponente kann eine JavaScript-Funktion zugeordnet werden, die bei Anwahl der Aktiven Komponente ausgeführt wird. Somit kann eine Aktive Komponente bis zu drei Funktionen enthalten: Ausführung einer Befehlssequenz, eines Hyperlinks und einer JavaScript-Funktion.
Die Angabe der JavaScript-Funktion erfolgt über den Parameter JSCall, dem als Wert die JavaScript-Funktion inklusive Parameter zugewiesen wird. Die Parameter der JavaScript-Funktion sind als String anzugeben.

Beispiel:

JSCall='displayText("hello")'

 

Wichtig ist, dass bei der Angabe des Applets in der HTML-Datei das Schlüsselwort MAYSCRIPT angegeben wird, andernfalls wird vom Browser die Ausführung von JavaScript-Funktionen durch das Applet nicht unterstützt.

 

Beispiel: HTML-Datei

<HTML>
<HEAD></HEAD>
<BODY>

<SCRIPT LANGUAGE="JavaScript">
    <!--
    function test(text) {
       
javascript:alert(text);
    }
    //-->
</SCRIPT>

<APPLET CODE="Ticker.class" WIDTH="360" HEIGHT="240" ARCHIVE="jet.jar" MAYSCRIPT>
    <PARAM NAME="Author" VALUE="JET - Java Extended Ticker - (c) exsys GbR Emden - www.java.exsys.net">
    <PARAM NAME=ProjectFile VALUE="demo.prj">
    <PARAM NAME=LoadingMessage VALUE="Loading...">
    <PARAM NAME=LoadingBGColor VALUE="0x000000">
    <PARAM NAME=LoadingTextColor VALUE="0xFFFFFF">
</APPLET>

</BODY>
</HTML>

 

 

Beispiel: Layer-Datei

Init={SPEED='40'; Direction='Forward'; Start}
MouseOnLink={Pause}
MouseOffLink={Continue; Pause='1000'}

{ CENTER
    TB={
        Text='This '
        JSCall='test("hello")'
        ActiveText='Active Component'
        Text=' calls a JavaScript function that opens a window with a "hello" message.
'
        Text='This '
        JSCall='javascript:alert("hello")'
        ActiveText='Active Component'
        Text=' does the same without calling the test() function'
    }
}
SB='Center'

{
    // more information
}

 

 

 

6 Syntax Referenz

 

HTML Datei

<PARAM NAME="Author" VALUE="JET - Java Extended Ticker - (c) exsys GbR Emden - www.java.exsys.net">
ProjectFile,
LoadingBGColor, LoadingTextColor, LoadingMessage

 

Projekt Datei

BGColor,
DragMode,
ScrollbarPosition, ScrollbarActive,
ScrollbarWidth, ScrollbarLeftMargin, ScrollbarRightMargin,
ScrollbarBGColor, ScrollbarMarginColor, ScrollbarButtonColor, ScrollbarSliderColor, ScrollbarLineColor, ScrollbarArrowColor, ScrollbarActiveArrowColor,
Layer

 

Layer Datei: Grundeinstellungen

BaseWidth,
ReloadInterval, ReloadFile,
ScrollingMode

 

Ereignis Macros

Init,
ReloadRequest, ReloadIndication,
MouseEnter, MouseExit,
MouseOnLink, MouseOffLink,
MousePressed, MouseReleased,
ShowLayer, HideLayer,
LayerResized


Freie Macros

Font Liste

Image Liste


Container Block

Columns, Rows,
Center, Top, Bottom, Left, Right,
BGColor, BGImage,
BGMargin, BGTopMargin, BGBottomMargin, BGLeftMargin, BGRightMargin,
Font, Color, OffMouseColor, OnMouseColor,
Target, URL, JSCall, Commands,
TB, IB, <weitere container>

 

Text Block

Text, ActiveText, File,
Font, Color, OffMouseColor, OnMouseColor,
UnderLine, Up, Down, LineHeight,
Target, URL, JSCall, Commands,
TextAlignment,
Center, Top, Bottom, Left, Right,
Width,
BGColor, BGImage,
Margin, TopMargin, BottomMargin, LeftMargin, RightMargin,
BGMargin, BGTopMargin, BGBottomMargin, BGLeftMargin, BGRightMargin

Image Block

Image, ActiveImage,
Target, URL, JSCall, Commands,
ImageAlignment,
Center, Top, Bottom, Left, Right,
Width,
Margin, TopMargin, BottomMargin, LeftMargin, RightMargin


Space Block

<ganze Zahl>,
Center, Top, Bottom,
FixCenter, FixBottom,
ClearScreen, FullScreen