Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-04-2005, 18:17   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 14
Variablen von PHP in Flash mit AS abfangen

Hi Leute,

an sich ist mein Anliegen sehr einfach aber irgendwie funzt es nicht.

Also:

ich habe ein PHP Skript:

<?php
$test ="hallo";
echo "&anFlash=$test";
?>

Habe es bei Flash mit 2 Varianten schon probiert und ich dachte, dass ich das in Flash mit dem folgenden Skript ganz easy abfangen kann:

1.
myVar = new LoadVars();
myVar.load("meineDatei.php");
myVar.onLoad = function(){
if (success){
output.text = myVar.anFlash; //output heisst mein Textfeld
}
else {
output.text = "fail";
}
}
//hier erhalte ich "fail" in meinem Textfeld

oder 2.

loadVariablesNum ("meineDatei.php", 0, "POST");
output.text = anFlash;
//hier erhalte ich ein "undefined" in dem Textfeld

Woran könnte das liegen? Apache-Geschichten laufen bei mir sonst einwandfrei. Die 2.Geschichte scheint ja gar nicht erst zu klappen, aber warum das beim ersten nicht klappt weiss ich echt nicht.

Danke
cemento
cemento ist offline   Mit Zitat antworten
Alt 04-04-2005, 18:28   #2 (permalink)
poke
 
Registriert seit: Dec 2002
Ort: Iserlohn [NRW]
Beiträge: 2.304
beim ersten musst du die variable success auch bei der funktion übergeben, sonst ist sie undefined und somit nicht "true"

also:

ActionScript:
  1. myVar = new LoadVars();
  2. myVar.load("meineDatei.php");
  3. myVar.onLoad = function( success:Boolean )
  4. {
  5.     if (success)
  6.     {
  7.         output.text = this.anFlash;
  8.     }
  9.     else
  10.     {
  11.         output.text = "fail";
  12.     }
  13. }

beim 2. werden durch das "POST" daten gesendet, das willst du hier aber nicht erreichen. Außerdem ist es sehr wahrscheinlich, dass deine Variable zum Zeitpunkt der Verwendung ("output.text = anFlash;") noch nicht existiert.
Deswegen und auch, weil sie zu alt ist, diese Möglichkeit gleich vergessen
pokepika ist offline   Mit Zitat antworten
Alt 04-04-2005, 18:36   #3 (permalink)
...
 
Benutzerbild von flash bier
 
Registriert seit: Nov 2001
Beiträge: 1.227
Vielleicht macht deine AS-Reihenfolge auch Probleme !

Erst das LoadVars-Objekt erstellen (new LoadVars),
dann diesem Objekt sagen, was es tun soll beim und nach dem Ladevorgang (onLoad)
und dann erst dem Objekt sagen, was es Laden soll (load)!
Möglicherweise ruft es das PHP-Script auf, ohne zu wissen, was damit geschehen soll !

MfG flash bier
__________________
Schweig oder sprich Worte, die besser sind als Schweigen !

Geändert von flash bier (04-04-2005 um 18:37 Uhr)
flash bier ist offline   Mit Zitat antworten
Alt 04-04-2005, 18:43   #4 (permalink)
poke
 
Registriert seit: Dec 2002
Ort: Iserlohn [NRW]
Beiträge: 2.304
nein, das macht normalerweise keine Probleme, also nicht, wenn du das onLoad direkt danach schreibst.

Zitat:
Möglicherweise ruft es das PHP-Script auf, ohne zu wissen, was damit geschehen soll !
ne, er weiß schon, was er machen soll! Er soll es laden, das macht er, und wenn er fertig ist, dann wird die onLoad Prozedur aufgerufen.
Deswegen sollte das danach definieren auch keine Probleme machen, weil er ist ja vor dem definieren des onLoad nicht mit dem laden fertig - normalerweise ^^

ok, besser und sicherer wäre es natürlich, das ereignis zuerst definieren, aber es sollte auch so klappen

Geändert von pokepika (04-04-2005 um 18:44 Uhr)
pokepika ist offline   Mit Zitat antworten
Alt 04-04-2005, 18:46   #5 (permalink)
...
 
Benutzerbild von flash bier
 
Registriert seit: Nov 2001
Beiträge: 1.227
Yo, ich weiss es nicht, ich mach das immer auf die sichere Art, deswegen mein "Vielleicht" zu Anfang des Postings

MfG flash bier
__________________
Schweig oder sprich Worte, die besser sind als Schweigen !
flash bier ist offline   Mit Zitat antworten
Alt 04-04-2005, 18:56   #6 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 14
Ok, das 2.Skript ist wieder vergessen.

pokepika, habe es so umgeschrieben und ausprobiert, liefert trotzdem ein fail:

....
myVar.onLoad = function( success:Boolean )
{
if (success)
{
output.text = this.anFlash;
}
...

flash bier, habe auch mal das load() ans Ende gepackt also erst einmal onLoad deklariert und gesagt was er machen soll und dann die php-Datei reingeladen. Leider hat er da auch ein "fail" geliefert.

Hmmm....
cemento ist offline   Mit Zitat antworten
Alt 04-04-2005, 19:05   #7 (permalink)
poke
 
Registriert seit: Dec 2002
Ort: Iserlohn [NRW]
Beiträge: 2.304
hmm, ich habs jetzt mal mit ner .txt getestet.. klappt perfekt.

habs mal angehängt.
Angehängte Dateien
Dateityp: zip load_txt.zip (5,1 KB, 24x aufgerufen)
pokepika ist offline   Mit Zitat antworten
Alt 04-04-2005, 19:12   #8 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 14
Ja, das was Du mir geschickt hast klappt wunderbar. Ich habe keine Ahnung was bei dem Laden der php-Datei schief geht.
Danke
cemento ist offline   Mit Zitat antworten
Alt 04-04-2005, 19:16   #9 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 14
Klappt jetzt....Danke
cemento ist offline   Mit Zitat antworten
Alt 04-04-2005, 19:18   #10 (permalink)
poke
 
Registriert seit: Dec 2002
Ort: Iserlohn [NRW]
Beiträge: 2.304
hm, also ich habs jetzt auch nochmal per php getestet und es klappt super. - Habs wieder mit angehängt.

Wenn dir das immer noch nicht helfen sollte, dann häng dein Script mal an, evtl. ist da irgendwo ein Fehler drin.


Dumme Frage, aber: in deinem php script steht nicht zufällig als Wert der Variable "fail" oder ?


//edit: ah, klappt? gut
Angehängte Dateien
Dateityp: zip load_php.zip (4,6 KB, 44x aufgerufen)
pokepika ist offline   Mit Zitat antworten
Alt 04-04-2005, 19:21   #11 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 14
Nein, im PHP-Skript steht nicht die Variable fail, hehe.
Aber ich habe jetzt alles mal neu gestartet (Apache...) und habe es nach deinem Skript umgeschrieben und es klappt. Keine Ahnung woran es genau lag.
Besten Dank.
cemento
cemento ist offline   Mit Zitat antworten
Alt 04-04-2005, 19:50   #12 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 14
Ordnerinhalt einlesen und in Flash auswerten

Wie geht man generell vor, wenn man so eine Art Array von PHP an Flash übergibt. Soweit ich weiss ist es nicht direkt möglich, ein Array in PHP zu füllen und dann an Flash weiter zu geben. Oder doch?

Ich will mit PHP den Inhalt eines Ordners einlesen, speichern und dann an Flash übergeben und dort auswerten.

PHP sieht so aus:
<?php
$path ="txt";
$folder = dir($path);
while ($datei = $folder->read()){
echo "&inhalt=$datei";
}
$folder->close();
?>

Bei dem Beispiel liest er die Dateinamen aus dem Ordner 'txt' ein. Leider liefert er Flash gerade nur die letzte Datei die er eingelesen hat.

Wie kann ich dafür sorgen, dass in PHP alle Dateienamen in einer Variable (oder eben Array) gespeichert werden. Und vor allem, wie kann ich dann in Flash das wieder auseinanderpflücken und auswerten.

Gruß
cemento
cemento ist offline   Mit Zitat antworten
Alt 04-04-2005, 20:16   #13 (permalink)
poke
 
Registriert seit: Dec 2002
Ort: Iserlohn [NRW]
Beiträge: 2.304
eine idee wäre das so zu machen, dass du die ausgabe in php so machst:

PHP-Code:
<?php
// $array - beliebiger array

// ausgabe: gibt &inhalt=element1|element2|element3 zurück
echo '&inhalt=' implode'|'$array );
?>
in flash importierst du die variable dann und kannst sie so:

ActionScript:
  1. // Importierte Variable inhalt:String
  2.  
  3. var array:Array = inhalt.split( "|" );

und zack ist dein array da.
pokepika ist offline   Mit Zitat antworten
Alt 04-04-2005, 20:41   #14 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 14
Ok, muss ich bei der Deklaration des Array seitens PHP noch was beachten? Momentan sieht mein PHP Skript wie folgt aus:

<?php
$path ="txt";
$folder = dir($path);
while ($datei = $folder->read()){
$array = $datei;
}
$folder->close();
echo "&inhalt=" . implode('|',$array);
?>


bei Flash wollte ich es wie folgt auffangen und anzeigen lassen:

<as>

myFolders = new LoadVars();
myFolders.onLoad = function(success:Boolean){
if (success){
//var array:Array=inhalt.split("|");
output.text = this.inhalt;
}
else {
output.text = "fail";
}
}
myFolders.load("folder.php");

</as>

Funzt irgendwie nicht. Bei der Ausgabe ist nichts zu sehen. Also du sagtest ja der importierte Inhalt ist ein String. Ist das seitens PHP und Flash klar, dass das ein String ist?

Gruß
cemento
cemento ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 10:52 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele