Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problema con oggetto/classe XML

    HO un problema con il codice che ho postato. Lo scopo sarebbe quello di avere una funzione che, dato

    - un percorso "a" di un file XML
    - e una funzione "b" da far eseguire sull' XML

    restituisca un oggetto XML.

    il mio problema è che, appena esco dall'evento onLoad, "xmlObj" e "_global.xmlObj" risultano "undefined", cosicchè non posso far ritornare l'oggetto XML alla funzione.


    Come fare? C'è qualcosa di sbagliato nel codice o nella logica?


    AIUTO!!!!


    var a:String = "IL PERCORSO DEL FILE XML";
    var b:Function = function (tmpXml:XML) {
    // CODICE ....
    }
    var CaricaXml:Function = function (xmlURL_str:String, funzione:Function):XML {
    this.xmlObj = new XML();
    this.xmlObj.ignoreWhite = true;
    this.xmlObj.onLoad = function(success:Boolean) {
    if (success) {
    funzione(this);
    _global.xmlObj=this
    } else {
    trace("Non ho caricato l'xml");
    }
    }
    this.xmlObj.load(xmlURL_str);
    return _global.xmlObj
    }
    var prova = CaricaXml(a, b);
    trace("PROVA CONTIENE: "+_root.prova);

  2. #2

    Ho capito cos'è ma non so come risolvere

    ...mi posto da solo la soluzione, ma non il codice per risolvere, xkè non so qual è!!!
    CMQ andiamo per gradi.


    1) L'evento onLoad viene eseguito, ma anche l'altro codice che lo segue, per cui tutto ciò che dipende dall'oggetto XML- non ancora caricato - diventa undefined , non so xkè...

    2) la domanda è....come posso fare a dire "Esegui prima l'evento onLoad e poi continua ad eseguire lo script?"



    Grazie ancora se qualcuno risponde....

  3. #3
    nn ho capito bene che devi fare cmq in genere x leggere file xml
    utilizzo una cosa del genere

    prendo i dati da un file xml e limetto dentro un mc usando altri clip in modo dinamico

    Codice PHP:
    filexml "prova.xml";
    ApriXML();
    function 
    ApriXML () {
    mioxml = new XML();
    myarray = new Array();
    mioxml.load(filexml);
    mioxml.onLoad ElaboraXML;
    function 
    ElaboraXML (success) {
    if (
    mioxml.loaded) {
    myarray mioxml.childNodes;
    Dati();

    CreaTabelle();

    delete myarray;
    delete mioxml;
    }
    };
    };

    // Funzione che prende i dati XML e li mette in degli Array
    function Dati () {
    // Array che contengono i Dati -----------------------
    link = new Array();
    nome = new Array();
    logo = new Array();
    trace(myarray)

    // ---------------------------------------------------
    for (k=0k<=myarray.lengthk++) {
    if (
    myarray[k].nodeName == "agenda") {
        
    link.push(myarray[k].attributes.link);
    nome.push(myarray[k].childNodes.toString());
    }else if (
    myarray[k].nodeName == "logo") {
        
    logo.push(myarray[k].childNodes.toString());
    }
    };
    };
    // Funzione che Crea i clip 
    // e li posiziona sullo stage del filmato
    function CreaTabelle () {
    for (
    i=0i<nome.lengthi++) {
    clipagenda.attachMovie("tabnews""tabnews"+ii);
    // Attribuisco la coordinata X e Y
    clipagenda["tabnews"+i]._x 15
    clipagenda
    ["tabnews"+i]._y 15+i*61;
    // Passo al clip le variabili che ho preso dall'XML e messo negli Array
    clipagenda["tabnews"+i].link1 link[i];
    clipagenda["tabnews"+i].nome1 nome[i];
    clipagenda["tabnews"+i].logo1 logo[i];
    clipagenda["tabnews"+i].mc.loadMovie(logo[i]);

    };
    }; 
    considerando che il file prova.xml sarà fatto in questo modo
    codice:
    <agenda link="http://www.google.it">primo appuntamento agenda.</agenda><logo>prova.jpg</logo>
    <agenda link="http://www.google.it">Secono appuntamento agenda.</agenda><logo>prova.jpg</logo>
    <agenda link="http://www.google.it">terzo appuntamento.</agenda><logo>prova.jpg</logo>
    <agenda link="http://www.google.it">quarto.</agenda><logo>prova.jpg</logo>

    ovviamente dovrai avere un mc in libreria concatenato ed esportato nel primo frame con il nome tabnews e un mc sullo stage istanziato clipagenda


    ciao
    ps nn so se ho capito bene la tua richiesta !
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  4. #4
    Grazie per l'interesse e il tuo script mi è servito per capire come funziona il mio...

    Cercherò di essere più chiaro, perchè effettivamente....
    Anche perchè ora il problema è diventato un altro, ossia:


    dentro la variabile globale _global.xmlObj c'è effettivamente un oggetto XML come richiesto, ma viene "riempita" dopo il return.

    In pratica prima viene eseguito "return _global.xmlObj" (==>che è undefined) e poi dopo "_global.xmlObj=this".


    La mia domanda quindi è: come posso fare affinchè avvenga il contrario, cioè:

    prima "_global.xmlObj=this"

    e poi "return _global.xmlObj"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.