Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-07-2006, 20:01   #1 (permalink)
man lernt immer dazu
 
Benutzerbild von dabinjo
 
Registriert seit: Dec 2003
Ort: Freiburg
Beiträge: 442
xml,trace und undefinied

salü

ich komm bei papes xml-tut nicht weiter aber ich denke ich habe alles richtig gemacht.

PHP-Code:
var neuesxml= new XML();
neuesxml.ignoreWhite=true;
neuesxml.load("referenzen.xml");

neuesxml.onLoad= function(success){
    
neuesxml_kunde=[];
    
neuesxml_medien=[];
        if(
success){
            
//trace("daten geladen");
            
for (var i=0i<neuesxml.firstChild.childNodes.lengthi++) {
                
            
neuesxml_kunde[i]=neuesxml.firstChild.childNodes[i].attributes.kunde;
            
neuesxml_medien[i]=neuesxml.firstChild.childNodes[i].attributes.medien;
        }
        
};
};
test.text=neuesxml_kunde[0]; 
trace(neuesxml_kunde[1])
das ist das as
und das die xml
PHP-Code:
<?xml version='1.0' encoding='utf-8'?>
<firstChild>
<childNodes kunde="Kunde1" medien="flashhtmlusw"/>
<childNodes kunde="Kunde2" medien="flashhtmlusw"/>
<childNodes kunde="Kunde3" medien="flashhtmlusw"/>
<childNodes kunde="Kunde4" medien="flashhtmlusw"/>
</firstChild>

leider bekomme ich nur undefinied heraus...weiss jemand an was das liegt?
dabinjo ist offline   Mit Zitat antworten
Alt 21-07-2006, 20:06   #2 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Du wirst dich wundern, das geht zig Leuten jeden Tag so. Man bekommt
gesagt man soll onLoad verwenden um das Problem zu vermeiden, baut
ein onLoad ein und es geht immer noch nicht.

Also: Das onLoad ist ein Handler, der ausgeführt wird, wenn die Daten
geladen wurden. Vorher sind keine Daten verfügbar, daher musst du
den Parser da reinhauen. Warum sollte deine Textzuordnung jetzt
vor dem Laden und Parsen funktionieren?

lg

p.s.: deine childNodes müssen nicht childNodes heißen

Geändert von sebastian (21-07-2006 um 20:08 Uhr)
sebastian ist offline   Mit Zitat antworten
Alt 21-07-2006, 20:09   #3 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Das zauberwort lautet: asynchron. Du kannst erst tracen, wenn das array gefüllt ist, aka. den trace innerhalb des onLoads, nach dem füllvorgang, setzen.

PHP-Code:
var neuesxml = new XML ();
neuesxml.ignoreWhite true;
neuesxml.onLoad = function (success)
{
    
// variablen besser mit var davor einstellen ;)
    
var neuesxml_kunde = [];
    var 
neuesxml_medien = [];
    if (
success)
    {
        
//trace("daten geladen");
        
for (var 0neuesxml.firstChild.childNodes.lengthi++)
        {
            
neuesxml_kunde[i] = neuesxml.firstChild.childNodes[i].attributes.kunde;
            
neuesxml_medien[i] = neuesxml.firstChild.childNodes[i].attributes.medien;
        }
        
// hier
        
trace (neuesxml_kunde[0]);
        
test.text neuesxml_kunde[0];
    }
};
neuesxml.load ("referenzen.xml"); 
wenn du die beiden arrays neuesxml_kunde & neuesxml_medien später nochmal brauchst, dann außerhalb des onLoads deklarieren ...
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shorty (21-07-2006 um 20:11 Uhr)
shorty ist offline   Mit Zitat antworten
Alt 21-07-2006, 20:17   #4 (permalink)
man lernt immer dazu
 
Benutzerbild von dabinjo
 
Registriert seit: Dec 2003
Ort: Freiburg
Beiträge: 442
ok...geschnallt. bekomm ich den parser irgendwie aus dem onLoad raus ohne den onLoad handler zu löschen?? ( ausser auf frame 2 zuzugreifen)

danke liebe leut
dabinjo ist offline   Mit Zitat antworten
Alt 21-07-2006, 20:18   #5 (permalink)
notzucht
 
Benutzerbild von shorty
 
Registriert seit: Nov 2003
Ort: Potsdam
Beiträge: 2.939
Klar, verfrachte ihn in eine funktion, und ruf diese im onLoad auf. So?

PHP-Code:
function dabinjoParser ()
{
    var 
neuesxml_kunde = [];
    var 
neuesxml_medien = [];
    for (var 
0neuesxml.firstChild.childNodes.lengthi++)
    {
        
neuesxml_kunde[i] = neuesxml.firstChild.childNodes[i].attributes.kunde;
        
neuesxml_medien[i] = neuesxml.firstChild.childNodes[i].attributes.medien;
    }
    
test.text neuesxml_kunde[0];
}

var 
neuesxml = new XML ();
neuesxml.ignoreWhite true;
neuesxml.onLoad = function (success)
{
    if (
success)
    {
        
dabinjoParser ();
    }
};
neuesxml.load ("referenzen.xml"); 
__________________
.
Flex in a week | Viertel vor halb nach Vollmond | ^^°.°^^ | Waltz with Bashir
.

Geändert von shorty (21-07-2006 um 20:21 Uhr)
shorty ist offline   Mit Zitat antworten
Alt 21-07-2006, 20:31   #6 (permalink)
man lernt immer dazu
 
Benutzerbild von dabinjo
 
Registriert seit: Dec 2003
Ort: Freiburg
Beiträge: 442
macht ja im grossen und ganzen keinen unterschied...aber danke.
dabinjo ist offline   Mit Zitat antworten
Alt 21-07-2006, 20:32   #7 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Zitat:
Zitat von dabinjo
macht ja im grossen und ganzen keinen unterschied...aber danke.
Ja natürlich nicht, die Struktur muss eben so sein. Du kannst die Daten
erst verarbeiten, wenn sie da sind und da brauchst du eben den onLoad
Handler.
sebastian ist offline   Mit Zitat antworten
Alt 21-07-2006, 20:36   #8 (permalink)
man lernt immer dazu
 
Benutzerbild von dabinjo
 
Registriert seit: Dec 2003
Ort: Freiburg
Beiträge: 442
den fehler mit der lade-hierarchie mache immer wieder
dabinjo ist offline   Mit Zitat antworten
Alt 22-07-2006, 10:21   #9 (permalink)
man lernt immer dazu
 
Benutzerbild von dabinjo
 
Registriert seit: Dec 2003
Ort: Freiburg
Beiträge: 442
das ganze ist ein ganz schönes gefriggel für mich...bin zwar weiter aber hänge jetzt am attachMovie: ich habe ein mc in der library der auch atched wird aber eben nur 1x und eigentlich wollte ich die schleife drüber laufen lassen aber dat jeet nisch. wat mach ich den nu wieder falsch...

PHP-Code:
var neuesxml= new XML();
neuesxml.ignoreWhite=true;
neuesxml.load("referenzen.xml");


neuesxml.onLoad= function(success){
    var 
neuesxml_kunde=[];
    var 
neuesxml_medien=[];
        if(
success){
            for (var 
i=0i<neuesxml.firstChild.childNodes.lengthi++) {
            
neuesxml_kunde[i]=neuesxml.firstChild.childNodes[i].attributes.kunde;
            
neuesxml_medien[i]=neuesxml.firstChild.childNodes[i].attributes.medien;
            
            
/*_root.createTextField("kunde"+i, i, 10, i*10, 1, 1);
        _root["kunde"+i].autoSize = true;
        _root["kunde"+i].text = neuesxml_kunde[i];*/
        
        /*_root.createTextField("medien"+i,i+4, 100, i*10, 1, 1);
        _root["medien"+i].autoSize = true;
        _root["medien"+i].text = neuesxml_medien[i];*/
        
createEmptyMovieClip("menu",i);
        
menu._x 0;
        
menu._y 0;
        
menu.attachMovie("button","feld"+i,5)
        [
"feld"+i]._y=i*10
                         
        
}
        
        
        
        
        
};
}; 
guten morgen grüsse aus freiburg ( für die langschläfer)
dabinjo ist offline   Mit Zitat antworten
Alt 22-07-2006, 10:35   #10 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Sind ein paar Fehler drin..

Aus der Schleife raus:
ActionScript:
  1. createEmptyMovieClip("menu",5);
  2. menu._x = 0;
  3. menu._y = 0;

ActionScript:
  1. menu.attachMovie("button","feld"+i,i)
  2. menu["feld"+i]._y=i*10

(Und menu ist nicht unbedingt der sinnvollste Name)

Geändert von sebastian (22-07-2006 um 10:36 Uhr)
sebastian ist offline   Mit Zitat antworten
Alt 22-07-2006, 10:58   #11 (permalink)
man lernt immer dazu
 
Benutzerbild von dabinjo
 
Registriert seit: Dec 2003
Ort: Freiburg
Beiträge: 442
so...nun geht _y aber dupliziert wird leider immernoch nix

PHP-Code:
var neuesxml= new XML();
neuesxml.ignoreWhite=true;
neuesxml.load("referenzen.xml");


neuesxml.onLoad= function(success){
    var 
neuesxml_kunde=[];
    var 
neuesxml_medien=[];
        if(
success){
            for (var 
i=0i<neuesxml.firstChild.childNodes.lengthi++) {
            
neuesxml_kunde[i]=neuesxml.firstChild.childNodes[i].attributes.kunde;
            
neuesxml_medien[i]=neuesxml.firstChild.childNodes[i].attributes.medien;
            
            
/*_root.createTextField("kunde"+i, i, 10, i*10, 1, 1);
        _root["kunde"+i].autoSize = true;
        _root["kunde"+i].text = neuesxml_kunde[i];*/
        
        /*_root.createTextField("medien"+i,i+4, 100, i*10, 1, 1);
        _root["medien"+i].autoSize = true;
        _root["medien"+i].text = neuesxml_medien[i];*/
        
                         
        
}
        
createEmptyMovieClip("liste",getNextHighestDepth());
        
liste._x 0;
        
liste._y 0;
        
liste.attachMovie("button","feld"+i,i)
        
liste["feld"+i]._y=i*50
        
    
};
}; 
dabinjo ist offline   Mit Zitat antworten
Alt 22-07-2006, 11:01   #12 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Nein, den MC "liste" musst du vorher erstellen und den anderen Teil
in der Schleife durchlaufen lassen.
ActionScript:
  1. createEmptyMovieClip("liste", getNextHighestDepth());
  2. liste._x = 0;
  3. liste._y = 0;
  4. for (var i = 0; i<neuesxml.firstChild.childNodes.length; i++)
  5. {
  6.     liste.attachMovie("button", "feld"+i, i);
  7.     liste["feld"+i]._y = i*50;
  8. }
sebastian ist offline   Mit Zitat antworten
Alt 22-07-2006, 11:05   #13 (permalink)
man lernt immer dazu
 
Benutzerbild von dabinjo
 
Registriert seit: Dec 2003
Ort: Freiburg
Beiträge: 442
nu gehts

PHP-Code:
var neuesxml= new XML();
neuesxml.ignoreWhite=true;
neuesxml.load("referenzen.xml");

createEmptyMovieClip("liste",getNextHighestDepth());
        
liste._x 0;
        
liste._y 0;
neuesxml.onLoad= function(success){
    var 
neuesxml_kunde=[];
    var 
neuesxml_medien=[];
        if(
success){
            for (var 
i=0i<neuesxml.firstChild.childNodes.lengthi++) {
            
neuesxml_kunde[i]=neuesxml.firstChild.childNodes[i].attributes.kunde;
            
neuesxml_medien[i]=neuesxml.firstChild.childNodes[i].attributes.medien;
            
            
/*_root.createTextField("kunde"+i, i, 10, i*10, 1, 1);
        _root["kunde"+i].autoSize = true;
        _root["kunde"+i].text = neuesxml_kunde[i];*/
        
        /*_root.createTextField("medien"+i,i+4, 100, i*10, 1, 1);
        _root["medien"+i].autoSize = true;
        _root["medien"+i].text = neuesxml_medien[i];*/
        
        
liste.attachMovie("button","feld"+i,i)
        
liste["feld"+i]._y=i*50
        
                         
        
}
        
    };
}; 
danke...vielmals
dabinjo ist offline   Mit Zitat antworten
Alt 22-07-2006, 11:08   #14 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
bitte
sebastian ist offline   Mit Zitat antworten
Alt 22-07-2006, 14:06   #15 (permalink)
man lernt immer dazu
 
Benutzerbild von dabinjo
 
Registriert seit: Dec 2003
Ort: Freiburg
Beiträge: 442
noch eine frage...könnte ich ein setInterval in die schleife stzen um die zeit des attachmovie zu steuern ?

habs mal probiert aber geht ned...
dabinjo 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 14:06 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele