![]()
|
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 noch ein paar Informationen zu bekannten Problemen und deren Lösung.
Einige auf MacOS erstellte Template- oder Flashdateien enthalten Schriftartin-formationen,
die Swift-Generator nicht richtig interpretieren kann. Man sollte in diesem
Fall die Vorlagen unter Windows erstellen.
![]()
![]()
Microsoft Internet Explorer (IE) hat einen Bug wenn ein über CGI generiertes
Multimedia-Objekt in einem Vollbild (100% im Fenster oder Frame) angezeigt werden
soll. Wird Swift-Generator direkt (z.B. über die Adresszeile) aufgerufen,
kann dadurch der IE abstürzen. Serverseitige Analysen ergaben, daß
der IE mehrere Anfragen hintereinander abschickt (mit fehlerhaften Parametern
in der letzten Abfrage). Dadurch wartet der IE immer noch auf zurückkommende
Daten, obwohl bereits alle gesendet wurden.
Ist der Aufruf hingegen in ein OBJECT-Tag eingebunden, funktioniert es ohne
Probleme. Auch unter Netscape läuft beides problemlos.
Hier ist ein kleines Perl-Skript, welches das Problem umgeht, der Aufruf erfolgt
dann mit 'embed.cgi' anstelle von 'swift-generator.cgi'. Das Skript packt den
Aufruf in HTML-Code und leitet ihn dann einfach weiter an Swift-Generator. Eventuell
muß das Skript noch ein bißchen angepaßt werden.
![]()
embed.cgi:
#!/usr/bin/perl
print "Content-Type: text/html\r\n\r\n";
if ("$ENV{REQUEST_METHOD}" eq 'POST') {
$query = <>;
$query =~ s/(\r|\n)//g;
} else {
$query = $ENV{QUERY_STRING};
}
print <<END_OF_HTML;
<HTML>
<BODY BGCOLOR=#ffffff>
<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" WIDTH=100% height=100%>
<PARAM NAME="MOVIE" VALUE="swift-generator.cgi?$query">
<PARAM NAME="QUALITY" VALUE="HIGH">
<EMBED SRC="swift-generator.cgi?$query" WIDTH=100% HEIGHT=100% TYPE="application/x-shockwave-flash">
</EMBED></OBJECT>
</BODY>
</HTML>
END_OF_HTML
5.3 Probleme mit Web Servern
![]()
Mit Apache (Unix und Windows), Sambar Server (Windows) und Omni-HTTPd (Windows) wurden bisher gute Ergebnisse erzielt. Einige Web Server halten sich allerdings anscheinend nicht an CGI1.1-Konventionen.
Bei manchen Servern (Xitami, IIS, Personal Web Server) wird die Testseite nicht angezeigt, wenn Swift-Generator ohne Parameter aufgerufen wird. In diesem Fall kann man einfach den Parameter ?test an den Aufruf anhängen (swiftgen.exe?test oder swift-generator.cgi?test).
Viele Probleme liegen aber einfach an einer falschen Serverkonfiguration oder falsch vergebenen Dateirechten (Unix). Also bitte immer erst die Serverdokumentation gründlich durchlesen.
Arbeitet man mit Microsofts Internet Information Manager (IIS) sollte man
auf keinen Fall swiftgen.exe in swiftgen.cgi umbenennen, da es sonst Probleme
mit eventuell installierten Perl-Skripten geben könnte.
IIS startet CGI-Dateien immer aus dem Haupt-Webverzeichnis. Arbeitet man mit den Voreinstellungen ist dieses C:\InetPub\wwwroot. Wurde die Swift-Skriptdatei skript.sws in das Unterverzeichnis C:\InetPub\wwwroot\swiftgen gelegt, wäre der Aufruf um Swift-Generator zu starten entsprechend:
http://hostname/cgi-bin/swiftgen.exe? sws = swiftgen/skript.sws