Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-04-2007, 10:49   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2006
Beiträge: 139
XML laden

dear people, schon mind. 3x erfolgreich gemacht, diesmal kläglich gescheitert:

hab eine Subnavi, die mit XML-Daten (Text, MC-Name,..) befüllt werden soll, wenn der Hauptnavi-Punkt ausgewählt wurde (dynmisches XML-Ziel)... bin mittlerweile soweit dass ich die XMLs in Arrays vorherspeichern wollte, auch das haut nicht hin

Code wie folgt...

im 1. Bild auf AS-ebene
PHP-Code:
var name_array:Array = new Array();
var 
bild_array:Array = new Array();
var 
nummer_array:Array = new Array();
//
_global.callxml = function() {
    
// XML-Bereich
    
trace("-------------------- in Funktion global.CALLXML --------------------");
    var 
xmlMotion:XML = new XML();
    
xmlMotion.ignoreWhite true;
    
xmlMotion.load("web.xml");
    
xmlMotion.onLoad = function(bSuccess:Boolean):Void  {
        if (
bSuccess) {
            
trace("in IF der XML-onLOAD-Funktion");
            var 
xnRoot:XMLNode this.firstChild;
            
// Schleife durch XML-Daten
            
for (var r:Number 0r<xnRoot.childNodes.lengthr++) {
                var 
xnObjekt:XMLNode xnRoot.childNodes[r];
                var 
xnNummer:XMLNode xnObjekt.firstChild;
                var 
xnName:XMLNode xnNummer.nextSibling;
                var 
xnBild:XMLNode xnName.nextSibling;
                
//trace("XML Nummer      " + xnNummer.firstChild.nodeValue + "   AUFRUF:  " + aufruf_str);
                
trace xnName.firstChild.nodeValue+" , "+xnBild.firstChild.nodeValue+" , "+xnNummer.firstChild.nodeValue);
                
name_array[r] = xnName.firstChild.nodeValue;
                
bild_array[r] = xnBild.firstChild.nodeValue;
                
nummer_array[r] = xnNummer.firstChild.nodeValue;
                
trace(name_array[r]+"---- im XML ARRAY");
            }
        } else {
            
trace("ELSE = WRONG");
        }
    };
}; 
des weitere ist dort (später im Code) auch der Aufruf der Funktion bei der Navi-Animation:

PHP-Code:
_global.navi = function(richtung2_str:String) {
    
trace("-------------------- in Funktion global.NAVI --------------------");
    
_global.callxml();
    
trace(_root.name_array[2]+"---- im NAVI nach ARRAY");
    
_global.navi_ani(richtung2_str);
    
gotoAndStop("inhalt");
    switch (
richtung2_str) {
    case 
"motion_mc" :[...] 
auf Bild 5 wird die _global.NAVI (also auch _global.callxml aufgerufen, auf Bild 10 kommen dann die zu befüllenden Kasterl...

das seltsame ist nun wenn ich die Ausgabe anschau:
es sollte der UNDEFINED-wert der gleich nach CALLXML aufgerufen wird doch schon die XML-Werte gespeichert haben, stattdessen kommt das TRACE in der CALLXML viel später

Zitat:
********** BILD 5 ****************
-------------------- in Funktion global.NAVI --------------------
-------------------- in Funktion global.CALLXML --------------------
undefined---- im NAVI nach ARRAY
-------------------- in Funktion global.NAVI_ANI --------------------
-------------------- in Funktion global.NAVI.SUBMOVE --------------------

********** BILD 10 ****************
undefined---- im 10er nach ARRAY
in IF der XML-onLOAD-Funktion
Test1 , micon01.png , NC01_mc
Test1---- im XML ARRAY
Test12 , micon02.png , NC02_mc
Test12---- im XML ARRAY
Test13 , micon03.png , NC03_mc
Test13---- im XML ARRAY
Test14 , micon04.png , NC04_mc
Test14---- im XML ARRAY
Test15 , micon05.png , NC05_mc
Test15---- im XML ARRAY
Test16 , micon06.png , NC06_mc
Test16---- im XML ARRAY
ist die XML-Abfrage zu langsam für den Rest? wie gesagt es hat sogar schon mal funktioniert, dass erst bei Button-Klick die ganze Prozedur abgerufen wird, drum bin ich sehr

merci,
m


//edit: seltsames Detail an Rande: wenn man die Hauptmenüpunkte mehrmals klickt, dann bekommt man ab dem 2. die Trace-Werte ??

Geändert von skamarkus (21-04-2007 um 10:59 Uhr)
skamarkus ist offline   Mit Zitat antworten
Alt 21-04-2007, 11:22   #2 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Zitat:
Zitat von skamarkus Beitrag anzeigen
es sollte der UNDEFINED-wert der gleich nach CALLXML aufgerufen wird doch schon die XML-Werte gespeichert haben, stattdessen kommt das TRACE in der CALLXML viel später

//edit: seltsames Detail an Rande: wenn man die Hauptmenüpunkte mehrmals klickt, dann bekommt man ab dem 2. die Trace-Werte ??
Beim 2.ten Klick hat er die XML erst fertig geladen, während er
beim 1.ten Klick noch lädt - weswegen das trace auch erst
später kommt.
Du solltest also die Navi nicht erst befüllen, wenn geklickt wird,
sondern schon vorher die Werte in Arrays geben, mit den Arrays
dann die Navi befüllen...

PHP-Code:
_global.callxml = function() {
    
// XML-Bereich
    
trace("-------------------- in Funktion global.CALLXML --------------------");
    var 
xmlMotion:XML = new XML();
    
xmlMotion.ignoreWhite true;
    
xmlMotion.load("web.xml");
    
xmlMotion.onLoad = function(bSuccess:Boolean):Void  {
        if (
bSuccess) {
            
trace("in IF der XML-onLOAD-Funktion");
            var 
xnRoot:XMLNode this.firstChild;
            
// Schleife durch XML-Daten
            
for (var r:Number 0r<xnRoot.childNodes.lengthr++) {
                var 
xnObjekt:XMLNode xnRoot.childNodes[r];
                var 
xnNummer:XMLNode xnObjekt.firstChild;
                var 
xnName:XMLNode xnNummer.nextSibling;
                var 
xnBild:XMLNode xnName.nextSibling;
                
//trace("XML Nummer      " + xnNummer.firstChild.nodeValue + "   AUFRUF:  " + aufruf_str);
                
trace xnName.firstChild.nodeValue+" , "+xnBild.firstChild.nodeValue+" , "+xnNummer.firstChild.nodeValue);
                
name_array[r] = xnName.firstChild.nodeValue;
                
bild_array[r] = xnBild.firstChild.nodeValue;
                
nummer_array[r] = xnNummer.firstChild.nodeValue;
                
trace(name_array[r]+"---- im XML ARRAY");
            }
            
gotoAndPlay(10); // hier springst Du dann zu Deiner Navi
        
} else {
            
trace("ELSE = WRONG");
        }
    };
};  
// im ersten frame dann
callxml();
stop(); 
Und die Navi

PHP-Code:
_global.navi = function(richtung2_str:String) {
    
trace("-------------------- in Funktion global.NAVI --------------------");
   
// _global.callxml();
    
trace(_root.name_array[2]+"---- im NAVI nach ARRAY");
    
_global.navi_ani(richtung2_str);
    
gotoAndStop("inhalt");
    switch (
richtung2_str) {
    case 
"motion_mc" :[...] 

Geändert von ~pyropete~ (21-04-2007 um 11:27 Uhr)
~pyropete~ ist offline   Mit Zitat antworten
Alt 21-04-2007, 16:43   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2006
Beiträge: 139
hmmm echt komisch...

mein letztes Projekt war ungleich größer (bis zu 200 Einträge in XML-File) und da wurde so eine Funktion jeweils bei einem von 200 MCs bei onRelease abgefragt und richtige Daten dann ausgespuckt in dyn. Textfeldern...

drum versteh ich nicht wie es nun bei 6 Einträgen in XML scheitern kann mit der Geschwindigkeit, noch dazu bin ich nun eh in Bild 1 und nicht am gleichen...

aber ich werd mal umdenken und das beim Starten gleich einlesen...

wenn wer noch Tipps oder Hilfe hat, bin ich dankbar...

lg,
m
skamarkus ist offline   Mit Zitat antworten
Alt 21-04-2007, 20:49   #4 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Zitat:
Zitat von skamarkus Beitrag anzeigen
aber ich werd mal umdenken und das beim Starten gleich einlesen...
Das macht grundsätzlich einfach mehr Sinn die XML
zu laden, zu verarbeiten und dann die Applikation zu
starten. Einmal lässt sich das ja per onLoad wunderbar
steuern, zum anderen ist immer sichergestellt, daß
auch Benutzer mit langsamer Verbindung in den
Genuß einer funktionierenden Applikation kommen ...
~pyropete~ ist offline   Mit Zitat antworten
Alt 21-04-2007, 20:57   #5 (permalink)
Neuer User
 
Registriert seit: Mar 2006
Beiträge: 139
ich habe 6 kategorien in denen es 6 objekte mit X unterpunkten gibt, das ganze ist ein Menü...

bei klick auf einen der 6 kats kommt ein submenü mit den 6 unterpunkten, jedes davon hat beim klicken 3x textinfos und 6x urls -
ich hab nur keine ahnung in wieviel arrays ich das bauen soll ?
6 - einen pro kat? und dann mehrdimensionale?

ratschläge?
skamarkus 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 13:56 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele