Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-05-2006, 21:28   #1 (permalink)
Banned
 
Registriert seit: Jun 2003
Beiträge: 1.276
erste xml schritte

hallo ich versuche mich gerade an xml in flash8, leider mit sehr minimalem erfolg

ich hab mal folgendes gecoded
PHP-Code:
xmlhandler=new XML();
xmlhandler.ignoreWhite=true;
xmlhandler.load("menu.xml");
trace(typeof(xmlhandler)); //object
trace(xmlhandler); //zeigt mir eine leere zeile an
xmlhandler.onLoad=function(status) {
    if(
status and this.loaded) {
        
trace("geladen"); //geladen
        
trace(xmlhandler.firstChild.childNodes[0].length); //undefinded
    
}


das xml sieht so aus:
PHP-Code:
  <?xml version="1.0" encoding="utf-8" ?> 
 <menu>
 <punkt id="1" name="Hauptmenü">
  <punkt id="2" name="Untermenu1" /> 
 <punkt id="3" name="Untermenu2">
  <punkt id="4" name="unterunter1" /> 
  </punkt>
  </punkt>
  </menu>
wo's der fehler?
Magnuss ist offline   Mit Zitat antworten
Alt 21-05-2006, 21:36   #2 (permalink)
Teladi
 
Registriert seit: Sep 2001
Beiträge: 59
Hallo Magnuss

versuch es mal mit

anzahl = xmlhandler.childNodes[0].childNodes.length;

Sollte eigendlich funktionieren
__________________
mfg

Teladi

------------------------------------------------------------------
wie können wir gemeinsam Gewinn erwirtschaften
HR1-V7-Buch der Teladi
teladihome ist offline   Mit Zitat antworten
Alt 21-05-2006, 21:38   #3 (permalink)
Banned
 
Registriert seit: Jun 2003
Beiträge: 1.276
tatsächlich

das liegt dann aber an meiner xml struktur oder?

dachte nämlich schon das die xml nicht geladen würde
Magnuss ist offline   Mit Zitat antworten
Alt 21-05-2006, 21:40   #4 (permalink)
Banned
 
Registriert seit: Jun 2003
Beiträge: 1.276
und ähm wieso lässt du firstChild weg?
Magnuss ist offline   Mit Zitat antworten
Alt 21-05-2006, 21:42   #5 (permalink)
Teladi
 
Registriert seit: Sep 2001
Beiträge: 59
Hallo Magnuss

Keine Ahnung, ich mache das immer so, und es funktioniert bis jetzt immer einwandfrei.

Du kannst für jede Hirarchistufe ein childNodes[x] anhängen.
__________________
mfg

Teladi

------------------------------------------------------------------
wie können wir gemeinsam Gewinn erwirtschaften
HR1-V7-Buch der Teladi
teladihome ist offline   Mit Zitat antworten
Alt 21-05-2006, 21:46   #6 (permalink)
Banned
 
Registriert seit: Jun 2003
Beiträge: 1.276
das mit den hierarchiestufen hab ich schon überrissen

aber sag mal kann ich das dann auch dynamisch generieren?

das ich sage ich will jetzt hierarchiestufe 5 sehen
das ich dann irgendwie mache xmlhandler.5*childNodes <-- also vom verständnis her?
Magnuss ist offline   Mit Zitat antworten
Alt 21-05-2006, 21:56   #7 (permalink)
Teladi
 
Registriert seit: Sep 2001
Beiträge: 59
Hallo Magnuss

Du musst immer das gesamte XML- File durchlaufen, und eine rekursive Funktion durchlaufen.

ungefähr so:
PHP-Code:

auslesen
(xmlhandler.childNodes[0]);


function 
auslesen(node){
  for(
i=0node.childNodes.lengthi++){
    
anzahl node.childNodes[i];
    if(
anzahl 0){
      
auslesen(node.childNodes[i]);
   }
 }

Dann kommst Du in alle Ebenen. Jetzt musst Du nur noch eine Variable füllen, die dir sagt in welcher Ebene Du bist.
__________________
mfg

Teladi

------------------------------------------------------------------
wie können wir gemeinsam Gewinn erwirtschaften
HR1-V7-Buch der Teladi
teladihome ist offline   Mit Zitat antworten
Alt 21-05-2006, 21:59   #8 (permalink)
Banned
 
Registriert seit: Jun 2003
Beiträge: 1.276
ahha
ich frage also sozusagen ab ob es die ebene gibt und gehe dann von der ebene wieder eins weiter uns frage wieder ab...

werde das mal genauer testen

danke soweit schon mal
Magnuss ist offline   Mit Zitat antworten
Alt 25-05-2006, 10:58   #9 (permalink)
Banned
 
Registriert seit: Jun 2003
Beiträge: 1.276
hmm so richtig überrissen hab ich das noch nicht

ich hab eine variable v=4;
und jetzt will ich in die 4.hierarchieebene vordringen

dazu dachte ich mir mach einfach
auslesen=xmlhandler.firstChild;
und dann einfach
for(i=0;i<v;i++) {
auslesen=auslesen+childNodes;
}

aber das klappt nicht weil, auslesen ja dann nicht gleich xmlhandler.firstChild ist sondern eben den wert von xmlhandler.firstchild wiedergibt
gibts da ne möglichkeit wie ich sagen kann auslesen entspricht dem ausdruck xmlhandler.firstChild?
Magnuss ist offline   Mit Zitat antworten
Alt 25-05-2006, 10:59   #10 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Das hier kennst du..?
--> [tipp] - XML read by id attribute (idMap fuer flash 5,6,7)
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 25-05-2006, 11:30   #11 (permalink)
Banned
 
Registriert seit: Jun 2003
Beiträge: 1.276
des siegt ja siehr interessant aus - aber wenn ich das einfach in mein script einfüge passiert gar nix - also undefinded - wo is dem shorty sein trick das das klappt?
Magnuss ist offline   Mit Zitat antworten
Alt 25-05-2006, 11:51   #12 (permalink)
Teladi
 
Registriert seit: Sep 2001
Beiträge: 59
Hi Magnuss

Brauchst Du denn nur die 4. Ebene, oder musst Du alle Ebenen auslesen?
__________________
mfg

Teladi

------------------------------------------------------------------
wie können wir gemeinsam Gewinn erwirtschaften
HR1-V7-Buch der Teladi
teladihome ist offline   Mit Zitat antworten
Alt 25-05-2006, 11:59   #13 (permalink)
Banned
 
Registriert seit: Jun 2003
Beiträge: 1.276
das war nur ein beispiel - ich will alle ebenen beliebig tief auslesen
Magnuss ist offline   Mit Zitat antworten
Alt 25-05-2006, 12:07   #14 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Zitat:
Zitat von mag.
hallo ich versuche mich gerade an xml in flash8, leider mit sehr minimalem erfolg
Zitat:
Zitat von mag.
wo is dem shorty sein trick das das klappt?
hey magnuss, der trick ist, dass es nur in den flash versionen < 8 funktioniert. In flash 8 gibts dafür eine methode: idMap (liveDoc's)



lg,
shorty
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shorty (25-05-2006 um 12:08 Uhr)
shorty ist offline   Mit Zitat antworten
Alt 25-05-2006, 12:14   #15 (permalink)
Teladi
 
Registriert seit: Sep 2001
Beiträge: 59
Lightbulb

versuch es doch mal so:

PHP-Code:
_root.4;
_root.akt_ebene 0;
auslesen(xmlhandler.childNodes[0]);


function 
auslesen(node){
  
_root.akt_ebene += 1;  //Zahl der Aktuellen Ebene, in der sich die Funktion gerade befindet
  
for(i=0node.childNodes.lengthi++){
    if(
_root.akt_ebene == _root.v){
      
// Hier bist Du auf der Ebene v
    
} else {
      
anzahl node.childNodes[i].childNodes.length;
      if(
anzahl 0){
        
// Es gibt noch weitere Unterebenen
        
auslesen(node.childNodes[i]);
      }
    }
  }

So solltest Du eigendlich in die Ebene kommen, die Du in v angegeben hast.
__________________
mfg

Teladi

------------------------------------------------------------------
wie können wir gemeinsam Gewinn erwirtschaften
HR1-V7-Buch der Teladi

Geändert von teladihome (25-05-2006 um 12:19 Uhr)
teladihome 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 11:08 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele