![]()
|
Dieses
Tutorial stammt aus dem Buch "Flash 5 und Actionscript professionell
- Tutorials und Workshops für fortgeschrittene Techniken". vielen Dank für die Genehmigung an den Autoren und den Verlag. |
![]()
|
Allgemeines
2
Was ist Swift-Generator?
Ein erster Einblick
3
Übersicht über die Funktionsweise
3.1
Erstellen der Vorlage - Templates oder Flashdatei ?
3.2
Das Swift-Skript
3.3
Kommandozeile oder CGI / Online oder Offline
Jetzt wirds ernst
4
Die Schritte im Einzelnen
4.1.1
Die Vorlage erzeugen
4.1.2
Swiftvariablen in die Vorlage einfügen
4.2
Das Swift-Skript im einzelnen
4.2.1
Kommentare
4.2.2
Globale Angaben
4.2.3
Variablen benutzen in Swift-Skript
4.2.4
Schriftarten definieren
4.2.5
Text modifizieren
4.2.6
Textfelder modifizieren
4.2.7
Sound austauschen
4.2.8
Filmsequenzen austauschen
4.2.9
Bilder austauschen
4.2.10
Daten aus Datenbanken
4.2.11
Daten aus Textdateien
4.2.12
Refererliste
4.3
Flashdateien dynamisch generieren
4.3.1
Dateien Offline erzeugen
4.3.2
Dateien Online erzeugen
Bekannte Probleme
5.1
MacOS
5.2
Internet Explorer
5.3
Probleme mit Web Servern
Hier gehe ich auf die Vorgehensweise und Befehle im einzelnen ein. Leider gibt es noch keine visuelle Oberfläche für Swift-Generator, so daß man zur Erstellung der Skripte einen Texteditor benötigt. Dazu kann man entweder das Windows-Notepad benutzen, oder besser einen der vielen Freeware-Editoren.
4.1 Die Vorarbeit - Vorlage als Grundgerüst
Als Grundgerüst für die dynamisch zu erzeugende Flashdatei benötigt Swift-Generator eine Vorlage, welche zum einen statische Elemente enthält, zum anderen Variablen als Platzhalter für die dynamisch einzusetzenden Inhalte beinhalten kann. Diese Vorlage kann entweder eine normale Flashdatei (*.swf) sein, oder eine mit der Exportfunktion von Flash erzeugte Template-Datei (*.swt). Eine Template-Datei ist in der Regel vorzuziehen, da sie im Gegensatz zur normalen Flashdatei mehr Informationen enthält, insbesondere die Schriftartdefinitionen. Um eine Template-Datei zu erstellen öffnet man die Arbeitsdatei (*.fla) und wählt dann Datei / Film exportieren... :

Im folgenden Speicherdialog wählt man dann als Dateityp "Generator Vorlage (*.swt)".

4.1.2 Swiftvariablen in die Vorlage
einfügen
![]()
Das wichtigste an der Vorlage sind die einzufügenden Swiftvariablen, welche als Platzhalter für die dynamisch einzufügenden Texte oder Parameter dienen. Über das später erstellte Swift-Skript erfährt Swift-Generator genau, welche Variablen durch welche Inhalte auszutauschen sind. Diese Swiftvariablen sind nicht zu verwechseln mit den normalen Flashvariablen und werden definiert, indem man sie in geschweifte Klammern setzt:
{swiftvariable}
Variablen in Textelementen
In Textelementen können Variablen direkt eingefügt werden :
![]()
Die Variable {name} kann man jetzt ersetzen in dem man im Swift-Skript folgendes
angibt:
SET name "Welt"
In der mit Swift-Generator erzeugten Flashdatei stünde dann:
Hallo Welt
Achtung: Bei mehrzeiligen Texten würde diese Methode nur die erste Zeile
anstelle der Variable einfügen ! Um mehrzeilige Texte zu ersetzen gibt
es die "SUBSTITUTE TEXT"-Anweisung, mehr dazu in der Skript-Sektion
Kapitel 4.2.
Variablen in Action-Skript Parametern
Swiftvariablen können auch in Action-Skript Parametern eingebunden werden,
z.B. den LoadMovie Befehl:

Daraus wird über die Skript-Anweisung
SET moviename "movie2.swf"
nach Erzeugung des neuen Filmes mittels Swift-Generator:
LoadMovie ("movie2.swf",1)
Die folgende Tabelle zeigt in welchen Parametern von Action-Skript Befehlen man Swiftvariablen einsetzen kann:
| Aktion | Parameter |
| GetUrl | - Url - Fenster |
| GoTo | - Label |
| FSCommand |
- Befehl |
| LoadMovie | - Url - Ziel |
| UnloadMovie | - Ebene |
| TellTarget | - Ziel |
| SetVariable | - Variable - Wert |
4.2 Das Swift-Skript im einzelnen
![]()
Um Objekte wie z.B. Text, Bilder, Sound etc. zu referenzieren benutzt Flash intern sogenannte tagID's, die einfach aus einheitlichen (Ident-)Nummern bestehen. Detailliertere Informationen zu der Dateistruktur finden Sie unter www.openswf.org.
Swift-Generator benutzt unter anderem diese tagID's um Objekte auszutauschen oder zu verändern. Da man diese ID's normalerweise nicht angezeigt bekommt, bietet Swift-Generator die Möglichkeit, diese Informationen aus der Template- oder Flashdatei auszulesen (Flash File Dump) und als Grundlage für das weitere Swift-Skript zu benutzen. Zusätzlich können die in der Vorlage eingefügten Swiftvariablen und bei einigen Objekten die Symbol- bzw. Instanznamen angesprochen werden.
Ein Swift-Skript bekommt die Dateiendung sws und beinhaltet als erstes einen globalen Teil mit allgemeinen Informationen und als zweites die Anweisungen für Text-, Bild- und Soundaustausch oder Schriftartdefinitionen etc...
Die Anweisungen werden grundsätzlich groß geschrieben und darauffolgende Parameter oder Variablen klein. Swift-Generator führt diese Anweisungen Schritt für Schritt aus, bei Syntaxfehlern wird die Ausführung gestoppt.
Template- / Flashdatei auslesen
Um Flashdateien auszulesen startet man Swift-Generator über die Eingabeauf-forderung
mit der Option -d.
swiftgenerator.exe -d vorlage.swt > skript.sws
Hierbei steht vorlage.swt für den Namen der Template- oder Flashdatei.
Es können auch absolute Verweise angegeben werden, z.B. c:\projektx\vorlage.swt.
Am Ende des Befehls wird die Ausgabedatei angegeben (skript.sws). Diese sollte die Endung sws tragen und kann mit jedem Texteditor geöffnet werden.
Das Skript könnte dann folgendermaßen aussehen:
% Script template from Template file best_site.swt
INPUT "best_site.swt"
% Output for testing
OUTPUT "export.swf"
% Output for CGI
%OUTPUT -cgi "-"
% Font definitions
% FONT 2 is Arial Bold
SUBSTITUTE TEXT 3 {
FONT 2 HEIGHT 24 COLOR #ffff99
STRING "Best site of the day"
}
.....
Dieses kann man dann nach Bedarf abändern und für die Erzeugung neuer Flashdateien benutzen.
Kommentare werden mit dem %-Zeichen eingeleitet und gelten bis zum nächsten
Zeilenumbruch, also immer für eine Zeile. Hier das Beispiel:
% Dies ist ein Kommentar in Swift-Skript
Die globalen Angaben, die in keinem Skript fehlen sollten sind folgende:
| INPUT "datei.sw?" | |||
| "datei.sw?" | Name der Vorlagendatei (swt oder swf). "-" verweist auf die Standar-deingabe als Dateneingang. | ||
| OUTPUT [ -cgi ] [ -expires "datum/+delta" ] "datei.swf" | |||
| "datei.swf" |
Name der Ausgabedatei. Wird "-" anstelle eines Dateinamens angege-ben leitet Swift-Generator die Daten an die Standardausgabe. |
||
| -cgi | Stellt der Ausgabe einen HTTP-Header voran (optional, benötigt für CGI-Modus). | ||
| -expires "datum/+delta" | |||
| Optional, erzeugt eine "expires"-Angabe (Gültigkeit der Datei) im HTTP-Header. Es kann ein Datum (im RFC1945-Format) angegeben werden oder die Ablaufzeit 'delta' in Sekunden mit vorangestelltem "+"-Zeichen. | |||
| TTFPATH "fontverzeichnis" | |||
| "fontverzeichnis" |
Gibt den Pfad zum Verzeichnis mit benötigten Schriftarten (Fonts) an. Diese Angabe ist nur nötig, wenn man Flashdateien als Vorlage benutzt oder Schriftarten austauschen möchte. |
||
|
TIPP: Wenn man Swift-Generator mit der Option
-f startet, erhält man eine Liste aller in einem Verzeichnis vorhandenen
Schriften und deren Dateinamen. Der Befehl dazu lautet: |
|||
| FLASH { FRAMERATE n } | |||
|
In zukünftigen Versionen wird es weitere Parameter für den FLASH-Abschnitt geben. |
|||
|
n |
gibt die Framerate in Bildern pro Sekunde an. (nur ganzzahliger positi-ver Wert) | ||
| SAVEDIR "verzeichnispfad" | |||
| SAVE "datei.swf" | |||
| Diese Anweisungen werden benötigt, wenn man im CGI-Modus
Dateien zusätzlich speichern will. Während bei dem Dateinamen
auch Variablen angegeben werden können, muß der Verzeichnispfad
als Zeichenkette angegeben werden! Der komplette Speicherpfad wird aus beiden
Angaben zusammengesetzt. Enthält der Pfad relative Angaben (../) wird
der Vorgang aus Sicherheitsgründen abgebrochen. Die Benutzung von SAVEDIR und SAVE können unter Umständen ein Sicherheitsrisiko bedeuten. Wer sich mit serverseitigen Anwendungen und deren Sicherheitsrisiken nicht auskennt sollte diese Anweisungen also nicht benutzen. |
|||
4.2.3 Variablen benutzen in Swift-Skript
![]()
Innerhalb des Swift-Skriptes können Variablen definiert werden. Die Syntax ist relativ einfach:
SET myvar value
Erzeugt eine Variable namens myvar mit dem Wert value. Value kann hierbei eine Zeichenkette, eine Variablenreferenz, das Ergebnis eines Subprozesses (siehe hierzu auch Anweisungen die Zeichenketten zu-rückgeben, wie FILE oder DBQ) oder eine Verbindung dieser Werte sein.
Beispiele:
SET var1 "Hallo Welt"
Der Variablen var1 wird eine Zeichenkette zugewiesen.
SET var2 $var1
Der Variablen var2 wird der Wert einer Variablenreferenz ($var1="Hallo Welt") zugewiesen.
Es können auch Bereiche oder einzelne Zeilen einer mehrzeiligen Variablen einer anderen Variablen zugewiesen werden.
SET bereich $text<2..3>
Würde der Variablen bereich die zweite und dritte Zeile der Variablen text
zuweisen.
SET bereich $text<5>
Würde der Variablen bereich die fünfte Zeile der Variablen text zuwei-sen.
Ein Subprozess-Ergebnis ist ein Kommandozeilenbefehl der innerhalb von zwei
eckigen Klammern angegeben wird:
SET datum [ date ]
Weist der Variablen datum das Ergebnis des Kommandozeilenbefehls 'date' zu. Ein Kommandozeilenbefehl ist jeder gültige Befehl, der in ein Terminal-/Konsolenfenster oder DOS-Shell eingegeben werden kann.
Benutzt man Flashdateien (swf) als Vorlage, müssen Schriftarten definiert wer-den, bevor man Text in irgendeiner Art und Weise verändern oder austauschen möchte ! Für Template-Dateien (swt) ist dieses nur notwendig, wenn man Schriftarten austauschen möchte.
| DEFINE FONT id "schriftart.ttf" | |||
| id | Gibt die tagID des Fonts an, der durch "schriftart.ttf" ausgetauscht werden soll. | ||
Die tagID und Schriftart müssen existieren, ansonsten wird der Vorgang abgebrochen (siehe auch Anweisung TTFPATH in Kapitel 4.2.3). Leider kann Swift-Generator nicht mit allen True-Type-Schriften umgehen.
Die Syntax für diesen Anweisungsblock lautet:
| SUBSTITUTE TEXT id { ANWEISUNG ..... } |
|||
| id | Entspricht der tagID des zu ändernden Textes der Flashvorlage. | ||
Folgende Angaben können innerhalb der geschweiften Klammern gemacht werden:
| FONT id | Ändert die Schriftart des Textes in die Schriftart mit der tagID id. Es können nur bereits existierende (also vordefinierte) Font-id benutzt werden. | ||
| HEIGHT höhe | Setzt die Schriftgröße auf die in höhe angegebene Zahl (positiver Inte-gerwert). Die Größe wird in Punkten angegeben. | ||
| COLOR #RRGGBB | |||
| Ändert die Schriftfarbe in den angegebenen RGB-Wert (Hexadezimal-Format). | |||
| ALPHA wert | Ändert die Transparenz. Es kann ein Wert zwischen 0 und 255 angege-ben werden. | ||
| VSPACING wert | |||
| Setzt den vertikalen Zeilenabstand eines mehrzeiligen Textes. Muß ein Dezimalwert sein, Vorgabe ist 1.0. | |||
| KERNING wert | Ändert den Abstand zwischen den Buchstaben. Dezimalwert, Vorgabe ist 1.0. | ||
| STRING [ -nocr ] "text" | |||
| Definiert einen neuen Text der mit den aktuellen Schrift, Schriftgröße und -farbe erzeugt wird. Es können mehrere Textdefinitionen hintereinander stehen, die durch einen Zeilenumbruch getrennt werden, außer es wird die Option -nocr mit angegeben. | |||
| ALIGN position | Gibt die Ausrichtung des Textes an. Die Ausrichtung richtet sich nach den Grenzen des ursprünglichen Textes. Mögliche Werte sind left, right und center. Vorgabewert ist left. | ||
Es können so viele neue Zeichenketten wie nötig angegeben werden,
auch wenn der ursprüngliche Text nur einzeilig war.
Wird die Schriftart als erstes geändert, kann es zu einer falschen Positionierung
des Textes kommen. Swift-Generator berechnet die Position zwar neu, kann dieses
aber nur zuverlässig tun, wenn die Größe als letztes angegeben
wird.
Textfelder können ähnlich wie einfacher Text verändert werden. Die Syntax lautet hier:
| SUBSTITUTE TEXTFIELD id { ANWEISUNG ..... } |
|||
| id | Verweist auf die tagID des Textfeldes das verändert werden soll. | ||
Folgende Anweisungen können innerhalb des Blockes gemacht werden:
| FONT id | Ändert die Schriftart des Textfeldes zu der Schriftart mit der tagID id. | ||
| HEIGHT höhe | Ändert die Schrifthöhe des Texfeldes in den Wert höhe (Dezimalwert). | ||
| COLOR #RRGGBB | |||
| Ändert die Schriftfarbe in den angegebenen RGB-Wert (Hexadezimal-Format). | |||
| ALPHA wert | Ändert die Transparenz. Es kann ein Wert zwischen 0 und 255 angege-ben werden. | ||
| STRING "text" | |||
| Ändert den Inhalt des Textfeldes. | |||
| ALIGN position | Gibt die Ausrichtung des Textes an. Die Ausrichtung richtet sich nach den Grenzen des ursprünglichen Textes. Mögliche Werte sind left, right und center. Vorgabewert ist left. | ||
Die Anweisungen sind nicht kumulativ, die letzte Anweisung überschreibt eine identische vorhergehende.
Folgende Sounddateien können ausgetauscht werden:
Soundobjekte werden über die entsprechende tagID angesprochen oder über ihren Symbolnamen.
|
DEFINE SOUND "symbolname" [ -bits n ] "sounddateiname" |
|||
| -bits n | Der optionale Parameter -bits legt die Bitkompression fest und kann die Werte 2,3,4 oder 5 haben (4 ist Vorgabe). Diese Option wird bei MP3-Dateien ignoriert ! | ||
4.2.8 Filmsequenzen austauschen
![]()
Diese Anweisung ermöglicht es, einer Filmsequenz-Instanz ein anderes Symbol
zuzuordnen.
Um eine Filmsequenz-Instanz zu erstellen, zieht man das gewünschte Symbol
von der Bibliothek auf die Bühne. Dort klickt man die Symbolinstanz mit
der rechten Maustaste an und geht dann auf 'Eigenschaften'. Nun muß der
Symboltyp 'Filmsequenz' ausgewählt und ein Instanzname angegeben werden.

Hier die Anweisung für den Austausch des zur Instanz gehörenden Symbols:
| DEFINE MOVIE "instanzname" "symbolname" | |||
| Weist der Instanz instanzname das Symbol symbolname zu. Existiert das neue Symbol nicht, wird die Instanz nicht verändert. | |||
Weitere Änderungen kann man über folgenden Anweisungsblock erreichen:
|
DEFINE MOVIE "instanzname" { |
|||
Mögliche Anweisungen sind:
| NAME "symbolname" | |||
| Name des neuen Symbols. | |||
| COLOR #RRGGBB | Jede Farbkomponente (Rot, Grün und Blau) wird zu den prozentualen (siehe BALANCE) Ursprungsfarbwerten addiert. Die Werte werden Hexadezimal angegeben, Vorgabe ist #000000 (schwarz). | ||
| ALPHA wert | Der Alphawert wird zu der prozentualen Ursprungstransparenz addiert. Die Werte gehen von 0 bis 255. Vorgabe ist 0. | ||
| BALANCE wert | Gibt an wieviel Prozent des Ursprungswertes der beiden vorigen Parameter zu den neuen Werten addiert werden. Wert 0.0 bedeutet 0% des Ursprungswertes und Wert 1.0 bedeutet 100 %. | ||
Die Berechnung des resultierenden COLOR- bzw. ALPHA-Wertes geschieht folgendermaßen:
NEUER WERT = URSPRUNGSWERT x BALANCE + COLOR bzw.ALPHA
Swift-Generator kann mit JPEG oder PNG-Dateien umgehen. GIF-Formate werden aus lizenzrechtlichen Gründen nicht unterstützt. Bilder werden wie Sounds über die tagID oder den Symbolnamen angesprochen, die entsprechende Anweisung lautet:
| DEFINE IMAGE "symbolname" [ -quality N ] [ -size
B,H ] "bildateiname" oder DEFINE IMAGE id [ -quality N ] [ -size B,H ] "bildateiname" |
|||
| id | Bezeichnet die tagID des auszutauschenden Bildes. | ||
| -quality N | Definiert die Kompressionsrate in Prozent. Für N können Werte zwischen 10 und 100 eingegeben werden. Je höher der Wert, um so höher die Bildqualität und somit um so niedriger die Kompression. Vorgabewert ist 50%. | ||
| -size B,H | Mit Hilfe dieser Option kann Swift-Generator Größe eines Bildes anpassen. B steht hier für die Breite und H für die Höhe in Pixeln, auf die das Bild vergrößert oder verkleinert werden soll. Diese Angabe sollte auf jeden Fall gemacht werden, wenn die Abmessungen des neuen Bildes von der Vorlage abweichen, da es sonst zu unschönen Effekten kommen kann. | ||
Seit Version 0.15 unterstützt Swift-Generator auch Datenbanken auf den
Platt-formen Windows (ODBC), Linux und MacOS X (MySQL) wodurch dieses Tool einiges
an Flexibilität gewonnen hat.
Datenbank verbinden
Folgende Syntax wird zum verbinden mit einer Datenbank verwendet:
| DATABASE { DRIVER "name_des_datenbanktreibers" NAME "name_der_datenbank" [ HOST "server_adresse" ] [ USER "user_id" ] [ PASSWORD "password" ] [ PORT tcp_port ] } |
|||
| Die einzelnen Parameter: | |||
| DRIVER "name_des_datenbanktreibers" | |||
| Hier muß der Pfad / Dateiname zum MySQL- bzw. ODBC-Datenbanktreiber angegeben werden. | |||
| NAME "name_der_datenbank" | |||
| Bezeichnet den Namen der MySQL-Datenbank bzw. bei ODBC-Datenbanken den DSN (Data Source Name). | |||
| HOST "server_adresse" | |||
| Optionaler Parameter, der den Servername bzw. -adresse definiert. Vorgabewert ist localhost. Wird bei ODBC-Datenbanken ignoriert. | |||
| USER "user_id" | Optionaler Parameter, um den Benutzernamen für eine Datenbank an-zugeben. Vorgabewert ist die aktuelle User-ID (bei Unix). Entspricht der UIN bei ODBC-Datenbanken. | ||
| PASSWORD "password" | |||
| Optionaler Parameter entsprechend zur User-ID. Unter ODBC als PWD bekannt. Man sollte darauf achten, daß die Swift-Skript Datei nicht über HTTP-Requests abrufbar ist, da sonst jeder auf das Paßwort zugreifen kann. | |||
| PORT "tcp_port" | Optionaler Parameter für MySQL-Datenbanken. Vorgabewert richtet sich nach dem Datenbanktreiber, bei Problemen sollte man 3306 versu-chen. Wird bei ODBC ignoriert. | ||
Kann mit der Datenbank keine Verbindung aufgenommen werden, bricht Swift-Generator den Vorgang ab und gibt eine HTML-Datei mit der Fehlermeldung aus (CGI-Modus). Diese wird allerdings nicht angezeigt, wenn der Aufruf in den EMBED- bzw. OBJECT-Tag einer HTML-Datei eingebettet ist. Testweise sollte man die Funktion also direkt aufrufen.
Datenbankabfrage / Queries
Ist eine Verbindung zur Datenbank zustande gekommen, kann man über die DBQ-Anweisung SQL-Anfragen starten. Hierzu sollte man sich mit der SQL-Syntax auskennen.
|
DBQ "query" |
Innerhalb der Anführungsstriche stehen die entsprechenden SQL-Anfragen in der SQL-Syntax. Swift-Generator leitet diese weiter an die Datenbank und gibt dann die Ergebnisse zurück. Die Anfragen können auch Verknüpfungen von Zeichenketten und Variablen sein. | ||
Das Ergebnis der Anfrage kann man dann einer Variablen zuweisen, z.B.:
|
SET data DBQ "select ort from adressen where plz=54" |
|||
Hierzu ein einfaches Beispiel um z.B. ein Newsforum zu aktualisieren:
SET forum "news"
SET id "id"
SET headlines DBQ "select headline from " + $forum + " where id=" + $id
SET title1 $headlines<1>
SET title2 $headlines<2>
SET title3 $headlines<3>
SUBSTITUTE TEXT 3 {
STRING $title1
}
...etc.
Man sollte Skripte mit solchen Anfragen immer vorher über die Kommandozeile testen, da Swift-Generator bei Fehlern die entsprechende Fehlermeldung der Datenbank zurückgibt.
Man kann auf einfache Weise Inhalte einer Textdatei auslesen. Die Syntax ist eigentlich selbsterklärend und lautet:
|
FILE "dateiname.txt" |
|||
Diesen Inhalt kann man dann wie bei der DBQ-Anweisung einer Variablen zuordnen.
|
SET text FILE "dateiname.txt" |
|||
Diese Funktion wird oft in Verbindung mit CGI-Programmen benutzt, wird also
nur benötigt, wenn man Swift-Generator im CGI-Modus ausführen will.
In der Refererliste werden Domains angegeben, die auf das CGI zugreifen dürfen.
Somit schränkt man das Sicherheitsrisiko ein und sollte deshalb auch nicht
darauf verzichten. Die Syntax:
![]()
|
REFERERS { "www.domainx.com" "localhost" ... } |
|||
| Man kann so viele Domains wie nötig angeben. Die Angabe "localhost" ist z.B. nötig, wenn man das Skript auf seinem lokalen Server testen möchte, je nachdem, welcher Alias angegeben wurde. | |||
Wird versucht, von einer anderen Domain das Skript auszuführen generiert
Swift-Generator eine HTML-Nachricht 'Access denied' und bricht den Vorgang ab.
Verwendet man keine Refererliste, kann von jeder Domain aus auf das Skript zugegriffen
werden.
Die Refererliste bezieht sich nur auf das jeweilige Skript, in dem es steht.
4.3 Flashdateien dynamisch generieren
![]()
Wie am Anfang bereits erwähnt, kann man Swift-Generator offline über Kommandozeilenbefehl ausführen oder online im CGI-Modus. Wie man arbeitet hängt hauptsächlich davon ab, ob man Zugriff auf den Server hat, wie gut die Performance ist (abhängig vom Inhalt des Filmes) und wie oft der Film aktualisiert werden soll.
4.3.1 Dateien Offline erzeugen
![]()
Hier wird einfach über das Terminalfenster das Programm gestartet und als Pa-rameter der Name des Swift-Skriptes mit angegeben. Unter Windows z.B.:

Man kann Swift-Generator natürlich auch von anderen Programmen aus starten, was z.B. in Verbindung mit der Erzeugung von Standard-HTML-Seiten Sinn machen kann.
Online kann man Swift-Generator per HTTP-Aufruf starten, auch hierbei muß man den Namen des Skriptes als Parameter mit übergeben. Das ganze sieht dann z.B. so aus:
http://www.domainxyz.de/cgi-bin/swiftgen.exe?sws=skript.sws
Damit Swift-Generator die Flashdatei an den Browser zurückgibt muß im globalen Teil der Swift-Skriptes die Anweisung OUTPUT -cgi "-" stehen. Sinnvollerweise kann man den Aufruf auch wie eine richtige Flashdatei direkt in die OBJEKT-/EMBED-Tags einer HTML-Datei einsetzen.
Swift-Generator auf dem Server installieren
Für Swift-Generator benötigt man einen Provider, der es erlaubt, selbstausführbare CGI-Programme laufen zu lassen. Leider erlauben viele ISP's nur vorinstallierte CGI's oder nur CGI-Skripte wie Perl oder PHP. Hier muß man sich also vorher bei seinem Provider erkundigen.
Wer Swift-Generator auf seinem lokalen Rechner testen möchte, muß dazu einen Webserver installieren. Ich selber habe mit Omni-HTTPd (www.omnicron.ab.ca) ganz gute Erfahrungen gemacht, Apache (www.apache.org) ist aber auch sehr beliebt (allerdings etwas schwieriger zu administrieren).
Hat man jetzt einen passenden ISP oder seinen lokalen Webserver eingerichtet
muß man die Binärdatei für das richtige Betriebssystem (Linux,
Windows oder Mac ...) von http://www.swift-tools.com/swift-generator.html
herunterladen.
Die entpackten Dateien sind je nach Betriebsystem unterschiedlich. Unter Linux
findet man eine Datei namens 'swift-generator', die man in 'swift-generator.cgi'
umbenennen sollte. Unter Windows heißt die Datei 'swiftgen.exe' , deren
Endung nicht umbenannt werden darf. Theoretisch kann man diese Dateien jetzt
einfach in das Verzeichnis /cgi-bin des Webservers kopieren, unter Linux noch
die Dateirechte auf z.B. chmod 755 setzen (-rwxr-xr-x) und das Programm sollte
laufen.
Zum Testen kann man das Programm mit http://www.domainname.de/cgi-bin/swiftgen.exe oder lokal mit http://localhost/cgi-bin/swiftgen.exe aufrufen aus dem Browser aufrufen (der Webserver muss natürlich vorher gestartet sein). Als Antwort sendet Swift-Generator folgendes:
Swift Generator
Version ?.? Copyright 1999-2000
Olivier Debon
Swift-Generator im eigenen Verzeichnis
Die Swift-Skript-Dateien müssen im selben (bzw. untergeordneten)
Verzeichnis liegen, wie das Programm selber. Das Verzeichnis /cgi-bin ist aber
eigentlich nicht der richtige Ort für solche Dateien. Wenn man die Möglichkeit
dazu hat, bzw. der ISP einwilligt, sollte man ein eigenes Verzeichnis für
Swift-Generator anlegen. Ich benenne es immer mit /swiftgen.
Damit Swift-Generator in diesem Verzeichnis läuft, muß man dem Webserver
dieses noch mitteilen. Unter Apache trägt man dazu in der Datei access.conf
(bzw. httpd.conf) folgendes ein:
<Directory /pfad/zum/verzeichnis/swiftgen > AllowOverride None Options ExecCGI </Directory>
Damit der Server Dateien mit der Endung .cgi auch als CGI-Dateien interpretiert, muß in der Datei srm.conf noch folgendes ergänzt werden:
AddHandler cgi-script .cgi
Benutzt man Omni-HTTPd geht man unter 'Properties / Default Virtual Settings'
in die Rubrik 'Standard-CGI'. Dort kann man das neue Verzeichnis mit einem entsprechenden
Alias angeben.
