Zurück   Flashforum > Flash und Server > Flash mit XML und Webservices

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-01-2008, 14:31   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
.xml wird eingelesen, .php nicht.

hallo,
wenn ich variablen aus einer lade.xml importieren will:
PHP-Code:
ladeXML.load("lade.xml"); 
und diese weiter verarbeiten möchte, dann funktioniert das. (ich teste online)

habe ich aber nun eine dynamische PHP datei, die mir denselben Inhalt ausgibt wie auch die statische XML, da flash vorher einen Wert an die PHP sendet und diese dann als ausgabe einen XML-Quelltext hat, der sich von der Statischen XML nicht unterscheidet, geht es nicht.
einlesen tue ich dies natürlich mit
PHP-Code:
ladeXML.load("lade.php"); 
alle meine eingelesenen/einzulesenden variablen sind dann "undefined"
woran kann das denn liegen?
am lade.php doch nicht oder? weil meine PHP Datei erzeugt ja keine XML datei, sondern gibt den xml quelltext aus, welcher auch korrekt angezeigt wird. genau so wie auch eine statische xml datei.

weiss jemand, woran das liegen kann?

real2k
Real2k ist offline   Mit Zitat antworten
Alt 10-01-2008, 14:36   #2 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
Hier gleich mal das ganze (gekürzte) script:
PHP-Code:
_root.Mladen.btladespiel.onPress = function() {
    
_root.Mschwierig._visible false;
    
vxladen 1;
    
lade1 = new LoadVars();
    
lade1.id _root.Mladen.identifikationladen;
    
lade1.sendAndLoad("lade.php"lade1"POST");
    
lade1.onLoad = function(lade1erfolg) {
        if (
lade1erfolg) {
            
ladeXML = new XML();
            
ladeXML.ignoreWhite true;
            
ladeXML.onLoad = function(pseudonym) {
                
//  
                
var neuesArray = new Array();
                
arrayXML ladeXML.firstChild.childNodes;
                for (var 
0i<54i++) {
                    
trace(arrayXML[0].attributes["save"+i]);
                }
                
delete ladeXML;
            };
            
ladeXML.load("lade.php"); // bei lade.xml geht es, wenn ich eine lade.xml im ordner hochgeladen hab.
            
_root.identifikation _root.arrayXML[0].attributes.id;
            
_root.vxintervall _root.arrayXML[0].attributes.save1;
            
_root.vxholz _root.arrayXML[0].attributes.save2;
            
// schnipp
            
_root.xporzellanmanufakturresint _root.arrayXML[0].attributes.save52;
            
_root.xbananenbrotereiresint _root.arrayXML[0].attributes.save53;
            
_root.Mladen.play();
        }
    };
}; 

Geändert von Real2k (10-01-2008 um 14:49 Uhr)
Real2k ist offline   Mit Zitat antworten
Alt 10-01-2008, 14:54   #3 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
und was steht in der php?

Edit: da fällt mir nochwas auf... gibt es einen besonderen Grund, warum Du die Variablen die Dir zurück gegeben werden nicht in Deinem "onLoad" Event setzt?
__________________
Alles ist wie immer. Nur schlimmer.

Geändert von querkopf (10-01-2008 um 14:57 Uhr)
querkopf ist offline   Mit Zitat antworten
Alt 10-01-2008, 15:28   #4 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
Zitat:
Zitat von querkopf Beitrag anzeigen
und was steht in der php?

Edit: da fällt mir nochwas auf... gibt es einen besonderen Grund, warum Du die Variablen die Dir zurück gegeben werden nicht in Deinem "onLoad" Event setzt?
meinst du so?

PHP-Code:
_root.Mladen.btladespiel.onPress = function() {
    
_root.Mschwierig._visible false;
    
vxladen 1;
    
lade1 = new LoadVars();
    
lade1.id _root.Mladen.identifikationladen;
    
lade1.sendAndLoad("lade.php"lade1"POST");
    
lade1.onLoad = function(lade1erfolg) {
        if (
lade1erfolg) {
            
ladeXML = new XML();
            
ladeXML.ignoreWhite true;
            
ladeXML.onLoad = function(pseudonym) {
                
//  
                
var neuesArray = new Array();
                
arrayXML ladeXML.firstChild.childNodes;
                for (var 
0i<54i++) {
                    
trace(arrayXML[0].attributes["save"+i]);
                }
                
delete ladeXML;
            
            
ladeXML.load("lade.xml");
            
_root.identifikation _root.arrayXML[0].attributes.id;
            
_root.vxintervall _root.arrayXML[0].attributes.save1;
            
_root.vxholz _root.arrayXML[0].attributes.save2;
//schnipp
            
_root.xporzellanmanufakturresint _root.arrayXML[0].attributes.save52;
            
_root.xbananenbrotereiresint _root.arrayXML[0].attributes.save53;
            
_root.Mladen.play();
            };
        }
    };
}; 
so geht praktisch garnichts, wenn ich auf den button klicke.
auch dass_root.Mladen.play(); nicht

also der xml quelltext:
PHP-Code:
<?xml version="1.0" encoding="UTF-8" ?>  
<result id="139636742"> 
<zeige id="139636742" save1="4084" save2="450" save3="181" save4="209" save5="215" save6="110" save7="161" save8="346" save9="197" save10="299" save11="401" save12="197" save13="199" save14="195" save15="310" save16="311" save17="351" save18="253" save19="17650" save20="91" save21="3" save22="3" save23="1" save24="2" save25="2" save26="0" save27="2" save28="1" save29="3" save30="1" save31="1" save32="3" save33="3" save34="2" save35="3" save36="1" save37="2" save38="1" save39="200" save40="0" save41="400" save42="400" save43="200" save44="100" save45="600" save46="800" save47="40" save48="100" save49="100" save50="100" save51="250" save52="1000" save53="800" />  
</result>
und der quelltext der php ausgabe ist das gleiche
Real2k ist offline   Mit Zitat antworten
Alt 10-01-2008, 15:29   #5 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Und du testest auch auf dem Server?
sebastian ist offline   Mit Zitat antworten
Alt 10-01-2008, 15:37   #6 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
Zitat:
Zitat von Sebastian W. Beitrag anzeigen
Und du testest auch auf dem Server?
alles online, ja
edit: udn habe ich die lade.xml (die ja nur zum test da ist) hochgeladen ist, und flash die lade.xml einläd, dann gehts ja auch. nur wenn es dynamisch werden soll, dann geht es nicht mehr.

Geändert von Real2k (10-01-2008 um 15:42 Uhr)
Real2k ist offline   Mit Zitat antworten
Alt 10-01-2008, 15:57   #7 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230

hier nochmal ein screen von der lade.xml und der lade.php

die lade.xml wurde einfach wie sie sist auf den server geladen. und da funktioniert auch alles. jedoch nicht dynamisch sondern nur für genau eine ID nummer

die lade.php wurde mit flash angesprochen, hat eine id von flash mitgesendet bekommen, und daraufhin hat sie die zur id gehörigen variablen aus der datenbank geladen, den xml code erzeugt und wurde als popup ausgegeben
PHP-Code:
lade1.send("lade.php","blank","POST"); //<< damit sich ein popup öffnet und ich die lade.php einsehen kann
//lade1.sendAndLoad("lade.php", lade1, "POST"); << das is das original 
also für mich sind die beiden dateien exakt dasselbe. nur warum kann flash dann nicht mit
PHP-Code:
ladeXML.load("lade.php"); 
die phpdatei-ausgabe einlesen, sondern nur mit
PHP-Code:
ladeXML.load("lade.xml"); 
die xmldatei-ausgabe?


Ich hoffe ihr könnt mir helfen.

real2k

Geändert von Real2k (10-01-2008 um 16:00 Uhr)
Real2k ist offline   Mit Zitat antworten
Alt 10-01-2008, 17:18   #8 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Verstehe übrigens nicht, warum du jetzt wieder diese 2 Ladevorgänge
verschachtelt hast. Lädst ja 2x die gleiche Datei, ist doch unnötig.
(Siehe Thread von gestern)
sebastian ist offline   Mit Zitat antworten
Alt 10-01-2008, 18:47   #9 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
Zitat:
Zitat von Sebastian W. Beitrag anzeigen
Verstehe übrigens nicht, warum du jetzt wieder diese 2 Ladevorgänge
verschachtelt hast. Lädst ja 2x die gleiche Datei, ist doch unnötig.
(Siehe Thread von gestern)
ehrlich gesagt weiss ichs einfach nicht besser.
ich bin froh wenn es irgendwie geht. mir langsam völlig egal wie. ich versuche das jetzt schon seit über 4 wochen (!) hinzukriegen mit der speicherfunktion für das spiel, und es geht einfach nicht.
was hab ich mich gefreut, als das ding online schon mal XML eingelesen hat.. und jetzt.. die php erzeugt im grunde das gleiche, aber neeee *.php mag flash ja nicht einlesen..
könnte kotzen langsam
Real2k ist offline   Mit Zitat antworten
Alt 10-01-2008, 19:31   #10 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Hatte dir doch im anderen Thread noch ein Beispiel gebastelt
sebastian ist offline   Mit Zitat antworten
Alt 10-01-2008, 19:52   #11 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
Zitat:
Zitat von Sebastian W. Beitrag anzeigen
Hatte dir doch im anderen Thread noch ein Beispiel gebastelt
dies hab ich auch versucht..
nach deinem code, aber noch im button.onPress kommt dann folgender code, der meine variablen füllt:
_root.identifikation = _root.arrayXML[0].attributes.id;
_root.vxintervall = _root.arrayXML[0].attributes.save1;
_root.vxholz = _root.arrayXML[0].attributes.save2;

bei deiner version kommt da undefined.

und ich muss ja auch erstmal die "id" an php mitsenden.
dies geht in meiner version ja alles.
scheinbar macht die dateiendung *.php meinem flash sorgen.
Real2k ist offline   Mit Zitat antworten
Alt 10-01-2008, 19:57   #12 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
doch, es geht..
musste nach 1sec die gleiche aktion ausserhalb eines buttons nochmal mcachen wegen der asynchronität.
nur muss das halt trotzdem meine dateiendung *.php akzeptieren

edit: doch die dateiendung wird nach wie vor nicht akzeptiert.
ist ne lade.xml im ordner und rufe ich diese auf, gehts
rufe ich die lade.php auf welche einen xml-inhalt ausgibt, kommt "undefined".

Geändert von Real2k (10-01-2008 um 20:04 Uhr)
Real2k ist offline   Mit Zitat antworten
Alt 11-01-2008, 09:16   #13 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
warum verwendest Du eigentlich eine xml, wenn Deine Daten "struktur" sowieso nur so aussieht:
Zitat:
save1="4084" save2="450" save3="181" save4="209" save5="215" save6="110" save7="161" usw
dann nimm doch einfach einen ganz simplen string, den brauchst Du wenigstens nicht zu parsen.

Bis dann,
querkopf
__________________
Alles ist wie immer. Nur schlimmer.
querkopf ist offline   Mit Zitat antworten
Alt 11-01-2008, 11:21   #14 (permalink)
Neuer User
 
Registriert seit: Mar 2006
Beiträge: 302
Hi,

also ich hab das bei meinen Anwendungen schön öfters so gemacht, also mittels PHP einen XML String ausgeben und mit Flash eingelesen. Ich hab bei mir nur zusätzlich noch eine Header Codezeile:

PHP-Code:
header('Content-type: text/xml'); 
In meinen Flashtutoriatunterlagen habe ich eine Beispiel PHP Datei, vielleicht hilft dir die weiter. Kannst die Sachen auf meinen Blog oder direkt das zip File runterladen.

Dann gibt es noch was, was mir persönlich an deinem ActionScript Code gar nicht gefällt und evtl. auch den Fehler verursachen könnte. Du erzeugst die XML in der Funktion onPress. Nach dem beenden wird aber die Variable von der Garbage Collection (sofort) gelöscht und steht nicht mehr zur Verfügung. Würde das eher so umsetzen:

PHP-Code:
ladeXML = new XML();
 
ladeXML.ignoreWhite true;
 
ladeXML.onLoad = function(pseudonym) {
                  
                var 
neuesArray = new Array();
                
arrayXML ladeXML.firstChild.childNodes;
                
                for (var 
0i<54i++) {
                    
trace(arrayXML[0].attributes["save"+i]);
                }
                
delete ladeXML;
                 

                
_root.identifikation arrayXML[0].attributes.id;
            
_root.vxintervall arrayXML[0].attributes.save1;
            
_root.vxholz arrayXML[0].attributes.save2;
            
// schnipp
            
_root.xporzellanmanufakturresint arrayXML[0].attributes.save52;
            
_root.xbananenbrotereiresint arrayXML[0].attributes.save53;
            
_root.Mladen.play();

 };

_root.Mladen.btladespiel.onPress = function() {
    
_root.Mschwierig._visible false;
    
vxladen 1;
    
ladeXML.load("lade.php"); // bei lade.xml geht es, wenn ich eine lade.xml im ordner hochgeladen hab.
  
}; 
Hoffe ich konnte helfen...
__________________
Gruß
Flo

---- blog.derhess.de ---- My Book Store ---- YouTube iNspIreNewMedia ----
Blog, Flash-Programmierung, Interaction Development und alles andere mit Medien

Geändert von der_hess (11-01-2008 um 11:22 Uhr)
der_hess 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 04:19 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele