Swift-Generator Grundlagen

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.

Jetzt bestellen bei Amazon


Thema:
Swift-Generator und Flash Grundlagen
Description:
Einführung in Swift-Generator
Keywords:
Flash, Swift-Generator, CGI
Author:
Stephan Fischer
Date:
4.05.2001
Doc-ID:
18-003
URL:
http://www.flashworker.de/tutorial/18/003.html
Version:
1.2
Änderungen:
-
Anforderungen:
Flash 4
Vorkenntnisse:
Sicherer Umgang mit Flash / Action-Script,
Grundkenntnisse in CGI und Datenbanken vorteilhaft
Download:
"Swift-Generator-Tutorial.zip", 154 kB

Zum Tutorial
  1 Einleitung

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

 

4 Die Schritte im einzelnen

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

4.1.1 Die Vorlage erzeugen

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
- Argumente

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.



 

 

4.2.1 Kommentare

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




 

4.2.2 Globale Angaben

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:
swiftgen.exe -f c:\windows\fonts (unter Windows) oder
swiftgenerator -f /pfad/zum/schriftverzeichnis (unter Linux).

     
  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.




 

4.2.4 Schriftarten definieren

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.




 

4.2.5 Text modifizieren

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.

 




 

4.2.6 Textfelder modifizieren

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.




 

4.2.7 Sound austauschen

Folgende Sounddateien können ausgetauscht werden:

Soundobjekte werden über die entsprechende tagID angesprochen oder über ihren Symbolnamen.

   

DEFINE SOUND "symbolname" [ -bits n ] "sounddateiname"
oder
DEFINE SOUND id [ -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" {
     ANWEISUNG
     ....
}

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




 

4.2.9 Bilder austauschen

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.




 

4.2.10 Daten aus Datenbanken

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.




 

4.2.11 Daten aus Textdateien

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"




 

4.2.12 Refererliste

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.




 

4.3.2 Dateien Online erzeugen

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.

 




Weiter