![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 | |
|
Erfahrener Benutzer
Registriert seit: 18.03.2005
Beiträge: 576
|
Datenaustausch PHP und Flash
Diesmal möchte ich auf die Möglichkeiten eingehen, um Daten zwischen PHP,MySQL und Flash auszutauschen. Wozu überhaupt das ganze ? Klar, es gibt Pro und Contra was den Einsatz von Flash betrifft, jedoch sollten meine folgenen Zeilen nicht dazu dienen, dies zu diskutieren. Flash bietet sehr viele Einsatzmöglichkeiten, um Daten bzw. Informationen grafisch, interaktiv oder Multimediafähig darzustellen. Ob nun Gästebücher, Statistiken, Browsergames, Navigationen oder Präsentationen ist erstmal egal. Im folgenden möchte ich als Beispiel ein Gästebuch nutzen. ( link derzeit leider nicht aktiv ) Wobei ich aber hier auf den kompletten PHP-Quelltext eines Gästebuches verzichten möchte, dazu findet man hier im Forum genug. Vielmehr möchte ich auf den Datenaustausch eingehen. Wie kommen die PHP-Daten nun zum Flash ? Die wohl einfachste Variante, die Werte an die Flash-Datei anzuhängen, wäre vieleicht so: Code:
mein_flash.swf?start=1 aber was wenn wir eine größerer Anzahl von Daten aus einer Datenbank im Flash haben möchten. Dann sollten wir uns für einen anderen Weg entscheiden - Flash holt sich die Daten. Variablen für Flash lesbar machen ? Ein ganz wichtiger Punkt muss noch angesprochen werden. Damit Flash auch die Variablen aus einer PHP-Datei erkennt, müssen diese in einer bestimmte Syntax geschrieben werden. Hierzu benutzt Flash das &-Zeichen als - naja sagen wir einfach mal als Trenner (klingt einfacher). Weiterhin kommt hinzu, dass die Werte, die zum Flash gelangen sollen mit echo ausgegegebn werden. Beispiel: PHP-Code:
PHP-Code:
Code:
&flash_variable=$php_variable Das Zeichen & wird meist als belanglos betrachtet ! Nehmen wir an, wir wollen den Textinhalt an Flash übergeben. Beispiel: PHP-Code:
Warum ? Wie bereits oben beschrieben, benutzt Flash das Zeichen & als Trennzeichen zwischen den Variablen. Da im letzten Beispiel kein &-Zeichen mehr folgt, kann dies zu problemen führen. Schreibe dann bei der letzten Variable noch ein echo mit dem &-Zeichen. Beispiel: PHP-Code:
Auch ist darauf zu achten, dass sich in den Inhalten der Variablen keine &-Zeichen befinden. Man könnte dies verhindern, wenn man vorher die Zeichen umwandelt und im Flash wieder zurück wandelt. Daten vom Flash aus laden Hierzu gibt es im Flash den sogenannten AcrionScript (AS). Um Variablen zu laden stehen hierzu zwei Befehle zur Verfügung (bis Flash MX:( Code:
loadVariables() - loadVariables ("url" , ziel [, variablen])
loadVariablesNum() - loadVariablesNum ("url" ,stufe [, variablen])
Beim laden von Daten können wir den 3 Parameter [,variablen] weg lassen. Als URL sollte eine absolute oder relative URL stehen. Ziel kann ein MovieClip sein. Stufe ist eine Ganzzahl, die die Stufe im Flash-Player darstellt. Auf Ziel und Stufe möchte ich aber hier erstmal nicht weiter eingehen. Um nun meine PHP-Datei zu laden, kann folgende Zeile benutzt werden: Code:
loadVariables('FMX_GB.php', '');
loadVariablesNum('FMX_GB.php', 0, '');
Nun gibt es noch eine Möglichkeit die ab Version Flash MX möglich ist. Code:
LoadVars() Um nicht den Rahmen hier zu sprengen will ich nur ganz kurz darauf eingehen. Variablen aus der PHP-Datei können damit z.B. so geladen werden: Code:
file = 'FMX_GB.php'; test = new LoadVars(); test.load( file ); Der ein oder andere wird jetzt vermuten, durch den etwas mehr AS-Code wäre dies umständlich. Mag sein, aber diese LoadVars-Klasse bietet weitaus mehr Möglichkeiten als man annimmt :-) Sie kann auf den HTTP-Header reagieren, die geladenen Bytes ermtteln, MIME-Typ ermitteln und kann prüfen ob ein load- oder sendAndLoad-Vorgang abgeschlossen ist. Diese Möglichkeiten gibt es bei loadVariables() oder loadVariablesNum() nicht. Nützlich sind Angaben, um z.B. zu prüfen, ob auch wirklich alles geladen wurde. loadVariables() und loadVariablesNum() laden - naja sagen wir mal Blindlinks :-) Mitunter muss man prüfen, ob eine Variable richtig im Flash geladen wurde, sonst kann es dazu führen, dass das Flash plötzlich stehen bleibt, und wer will das schon. Werden MySQL-Abfragen gemacht müssen diese auch mit echo "&nr=$nr" ... ausgegeben werden. Nachdem wir uns die Möglichkeiten angeschaut haben, um Werte aus einer PHP-Datei zu holen, wollen wir uns nun ansehen wie Variablen vom Flash zur PHP-Datei kommen. Wie kommen die Flash-Daten nun zur PHP-Datei ? Ähnlich wie bei HREF-Links oder Formulare, gibt es auch hier zunächst die GET- und POST-Methode. Nehmen wir an, wir wollen den Text vom Gästebuch an eine PHP-Datei schicken. Die Flash-Variable sei hier mal »inhalt«. Ähnlich wie beim Laden von Werten, können wir auch senden: Code:
loadVariables('FMX_GB.php', '');
Code:
loadVariables('FMX_GB.php', '', 'POST');
loadVariables('FMX_GB.php', '', 'GET');
Betrachten wir uns die Methode GET. Ähnlich wie bei Links mit <a href="blablabla" ..> kann dies auch im Flash gemacht werden. Code:
loadVariables('FMX_GB.php?text=' + inhalt , '', 'GET');
Bei der Methode POST kann folgende Syntax benutzt werden: Code:
inhalt = 'uhu aha oho';
loadVariables('FMX_GB.php', '', 'POST');
Aber, hier gibt es noch einen Hacken. Flash sendet hier ALLE Flash-Variablen per POST ! Man kann dies einfach in der PHP-Datei überprüfen: PHP-Code:
Code:
test.send(url [,ziel, methode]) Wollen wir nun unseren Inhalt damit an die PHP-Datei senden, würde unser Beispiel so aussehen: Code:
test.inhalt = 'uhu aha oho';
test.send('FMX_GB.php', '', 'POST')
Meist stolpert man über das Problem, dass Umlaute im Flash nicht dargestellt werden, wenn man Werte aus einer PHP-Datei oder genrell aus einer Datei bezieht. Abhilfe schafft hier eine Zeile, die gleich zu beginn im Flashfilm als AS eingegeben werden muss: Code:
System.useCodepage=true; Zitat:
und den Datenaustausch zwischen PHP und Flash etwas vermitteln. PS: Man möge mir verzeihen, wenn Tippfehler enthalten sind. Dieses Tutorial entstand nach 10h Programmierarbeit ... Sollte ich etwas vergessen haben -> Spam mich zu :-) (Änderungen vorbehalten - CIX88) Geändert von CIX88 (10.01.2007 um 08:46 Uhr). Grund: Link zum GB rausgenommen |
|
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| PHP 5.2 Kompilierung schlägt fehl | Byrel | Tools, Server, Betriebssysteme | 0 | 03.11.2006 21:09 |
| PHP 5.1.5, PHP 4.4.4 und PHP 5.2.0 RC2 veröffentlicht | Ben | Nachrichten | 2 | 01.09.2006 16:05 |
| Flash -> PHP -> MySQL | thrawn | Sonstige Programmiersprachen | 8 | 02.02.2006 18:10 |
| PHP 5.1 ist drausen | robo47 | Nachrichten | 5 | 28.11.2005 20:30 |
| Neue PHP "release candidates": PHP 4.4.2 RC 1 und PHP 5.1 RC 6 | Ben | Nachrichten | 1 | 21.11.2005 20:48 |