• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-01-2008, 17:49   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
Variablen einlesen aus XML-Datei

Hallo, ich möchte mit flash eine reihe variablen aus einer XML datei auslesen.
Die XML Datei schaut wie folgt aus:
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 mit folgendem code versuche ich die Variablen aus der XML datei in flash einzulesen:
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(lade1["save"+arrayXML[i]].firstChild.childNodes);
                      
//trace(lade1["save"+arrayXML[i]]); auch so geht es nicht

                
}
                
delete ladeXML;
            };
            
ladeXML.load("lade.xml"); 
jedoch liefert mir der trace 53 mal ein "undefined"
Vielleicht findet jemand den Fehler?
ich hoffe, mir kann geholfen werden

gruß
real2k
Real2k ist offline   Mit Zitat antworten
Alt 09-01-2008, 17:54   #2 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.944
Was soll lade1 sein? Wenn du schon eine komplexe Datenstruktur hast,
könntest du auch mit einer dynamischen Anzahl an Nodes arbeiten
statt 54 Attribute zu verwenden.

Ansonsten:
ActionScript:
  1. trace(arrayXML[0].attributes["save"+i]);
(und bei i=1 anfangen)

Geändert von sebastian (09-01-2008 um 17:56 Uhr)
sebastian ist offline   Mit Zitat antworten
Alt 09-01-2008, 18:32   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
Zitat:
Zitat von Sebastian W. Beitrag anzeigen
Was soll lade1 sein? Wenn du schon eine komplexe Datenstruktur hast,
könntest du auch mit einer dynamischen Anzahl an Nodes arbeiten
statt 54 Attribute zu verwenden.

Ansonsten:
ActionScript:
  1. trace(arrayXML[0].attributes["save"+i]);
(und bei i=1 anfangen)
hab ich auch gemacht..
gibt auch nur undefined aus.
Real2k ist offline   Mit Zitat antworten
Alt 09-01-2008, 18:41   #4 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.944
Habs extra getestet und es geht.
sebastian ist offline   Mit Zitat antworten
Alt 09-01-2008, 19:15   #5 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
Also hier ist mal der komplette code, bei mir kommen nämlich dennoch nur 53 undefined's raus
PHP-Code:
_root.Mladen.btladespiel.onPress = function() {
    
_root.Mschwierig._visible false;
    
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 
1i<54i++) {
                        
trace(arrayXML[0].attributes["save"+i]);  
                }
                
delete ladeXML;
            };
            
ladeXML.load("lade.xml");
        }
    };
}; 
im selben ordner wie die SWF liegt die XML datei, welche online dann von der php datei ausgegeben wird.
kanuddel
Real2k ist offline   Mit Zitat antworten
Alt 09-01-2008, 19:20   #6 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.944
Warum gibt deine lade.php nicht direkt die XML Struktur zurück? Dann
nimmst du einfach nur deinen Code von oben und lädst statt .xml
die .php - das wars und funktioniert.

Die Struktur würde ich ansonsten mal komplett überarbeiten.
sebastian ist offline   Mit Zitat antworten
Alt 09-01-2008, 19:40   #7 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
Zitat:
Zitat von Sebastian W. Beitrag anzeigen
Warum gibt deine lade.php nicht direkt die XML Struktur zurück? Dann
nimmst du einfach nur deinen Code von oben und lädst statt .xml
die .php - das wars und funktioniert.

Die Struktur würde ich ansonsten mal komplett überarbeiten.
ja, die PHP gibt auch die XML struktur wieder und online muss ich dann auch die lade.php, ganz klar.

offline habe ich eben auch eine lade.xml erstellt um das ganze zu teste.
mein problem warum ich hier schreibe, ist eben, dass die trace funtkion nur undefined liefert

real2k
Real2k ist offline   Mit Zitat antworten
Alt 09-01-2008, 19:42   #8 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.944
Dann nehm doch nur den Code, den du oben geschrieben hast zusammen
mit meinem trace. Mehr nicht. Das doppelt verschachtelte Laden kannst
du dir dann ja sparen.
sebastian ist offline   Mit Zitat antworten
Alt 09-01-2008, 20:06   #9 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
Ich hab das gerade mal online getestet.
Der trace stimmt schonmal. also der trace sagt "undefined" und die variablenausgabe in einem textfeld ist es auch.
also liegt der fehler woanders, oder?
denn, die variablen sollten eigentlich den wert aus der php (xml ) haben und nicht "undefined" sein. sie werden nämlich beim buttonklick dann undefined.

aber du hast geschrieben, du hast es auch getestet. und da kam kein undefined, sondern die ganzen variablenwerte??

Geändert von Real2k (09-01-2008 um 20:08 Uhr)
Real2k ist offline   Mit Zitat antworten
Alt 09-01-2008, 20:14   #10 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.944
Nicht, dass ich es so aufbauen würde.

Will dir nur veranschaulichen, dass es durchaus geht.

Wie gesagt:
Dein Part von oben mit meinem Trace und zusammenkopiert. Mehr nicht.
(Das darüber ist nur, dass mein Beispiel mit deinem Code funktioniert.)
Angehängte Dateien
Dateityp: zip hm.zip (6,3 KB, 6x aufgerufen)
sebastian ist offline   Mit Zitat antworten
Alt 09-01-2008, 20:30   #11 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
also mit deiner xml geht es, dann liegt der fehler in der ausgabe meiner php, aber ich denk ich werds hinbekommen, asnsonsten meld ich mich hier nochmal.
vielen vielen dank schonmal!!

real2k
Real2k ist offline   Mit Zitat antworten
Alt 09-01-2008, 22:18   #12 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
hallo, ich bin es nochmal. ich bekomm die Variablen nicht raus.
hab das so versucht: das sind 8 unterschiedliche versuche, doch bei allen kommt undefined raus, obwohl der trace oben ja funtkioniert.
PHP-Code:
vholz _root.arrayXML.lade1.save2;
vbretter _root.arrayXML.save3;
vwerkzeug _root.lade1.save4;
vsamen _root.save5;
vgras arrayXML.lade1.save6;
vgetreide arrayXML.save7;
vmehl lade1.save8;
vmilch save9
wie ist denn dann der pfad?

real2k
Real2k ist offline   Mit Zitat antworten
Alt 09-01-2008, 22:21   #13 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.944
ActionScript:
  1. arrayXML[0].attributes["save1"];
  2. // oder
  3. arrayXML[0].attributes.save1;

Statt arrayXML kannst du natürlich auch den vollen Pfad nehmen

Wirst das aber nicht aus dem onLoad rausbekommen, wenn du den
Aufruf einfach nur darunter schreibst. Du solltest dich mit den
Grundlagen von Flash (und Programmierung) beschäftigen. Du musst
speziell verstehen was Events sind und wie diese funktionieren und
dass nicht alles linear abgearbeitet wird.

Gibt hier jeden Tag 10 Leute, die genau dieses Problem haben
Viel Erfolg!
sebastian ist offline   Mit Zitat antworten
Alt 09-01-2008, 22:27   #14 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 230
auch folgende zeile gibt der variable "vholz" den wert "undefined"

vholz = arrayXML[0].attributes.save2;

Real2k ist offline   Mit Zitat antworten
Alt 09-01-2008, 22:28   #15 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.944
Bitte den Text beachten, den ich dazu geschrieben habe.
sebastian 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 21:45 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele