Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    grandissimo problema svuotamento array, ma come è possibile? flash è pazzo?

    Ciao a tutti, sto impazzendo da due ore su questo:

    grazie alla guida sul sito di html.it ho imparato a fare il parsing di un documento xml (well formed)

    ed ho creato una funzione che mi inserisce i dati contenuti nei vari nodi del documento, in vari array che dopo dovrei utilizzare per popolare dei campi di testo all'interno di un MC.

    la funzione fa il suo lavoro, e se faccio il trace degli array, subito dopo averli popolati gli array sono popolati,

    se lo faccio dal di fuori della funzione gli array sono "undefined"!

    non capisco perché, ho provato a dichiararli in maniera globale ma nulla cambia, ovvero mi viene addirittura restituito un errore di sintassi.

    questa è la funzione,

    qualcuno mi sa dire cosa e dove sbaglio?

    grazie moltissime ragazzi. ho perso mezza giorata a leggere la guida e praticamente ora non mi serve a nulla?

    noooo, sto impazzendo....





    Codice PHP:
    file_news_xml "news_content.xml";
    function 
    apri_news() {
        
    news_xml = new XML();
        var 
    news_array:Array = [];
        var 
    news_array2:Array = [];
        var 
    news_array3:Array = [];
        var 
    news_array4:Array = [];
        var 
    news_array5:Array = [];
        var    
    news_data:Array =[];
        var 
    news_titolo:Array = [];
        var 
    news_intro:Array = [];
        var 
    news_txt:Array = [];
        
    news_xml.load(file_news_xml);
        
    news_xml.onLoad ElaboraXML;
        function 
    ElaboraXML(success) {
            if (
    news_xml.loaded) {
                
    news_array news_xml.childNodes;
                for (var 
    j=0;j<=news_array.length;j++){
                    if (
    news_array[j].nodeName == "news"){
                        
    news_array2 news_array[j].childNodes;
                        for (var 
    i=0;i<=news_array2.length;i++){
                            if (
    news_array2[i].nodeName == "notizia"){
                                
    news_data.push(news_array2[i].attributes.dt);
                                
    news_array3 news_array2[i].childNodes;
                                for (var 
    k=0;k<=news_array3.length;k++){
                                    if (
    news_array3[k].nodeName == "title"){
                                        
    news_titolo.push(news_array3[k].childNodes.toString());
                                        
    news_array4 news_array3[k].childNodes;
                                        for (var 
    w=0;w<=news_array4.length;w++){
                                            if (
    news_array4[w].nodeName == "intro"){
                                                
    _root.page4.news_intro.push(news_array4[w].childNodes.toString());
                                                
    news_array5 news_array4[w].childNodes;
                                                for (var 
    v=0;v<=news_array5.length;v++){
                                                    if (
    news_array5[v].nodeName == "testo"){
                                                        
    _root.page4.news_txt.push(news_array5[v].childNodes.toString());
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        
    delete news_array;
        
    delete news_array2;
        
    delete news_array3;
        
    delete news_array4;
        
    delete news_array5;
        
    delete news_xml;
        }

    Fuck Your Mind Dance your Brain!

  2. #2
    ops ho incollato la funzione in cui avevo provato a dichiarare gli array in maniera globale.

    la reincollo com'è originale:

    Codice PHP:
    function apri_news() {
        
    news_xml = new XML();
        var 
    news_array:Array = [];
        var 
    news_array2:Array = [];
        var 
    news_array3:Array = [];
        var 
    news_array4:Array = [];
        var 
    news_array5:Array = [];
        var    
    news_data:Array =[];
        var 
    news_titolo:Array = [];
        var 
    news_intro:Array = [];
        var 
    news_txt:Array = [];
        
    news_xml.load(file_news_xml);
        
    news_xml.onLoad ElaboraXML;
        function 
    ElaboraXML(success) {
            if (
    news_xml.loaded) {
                
    news_array news_xml.childNodes;
                for (var 
    j=0;j<=news_array.length;j++){
                    if (
    news_array[j].nodeName == "news"){
                        
    news_array2 news_array[j].childNodes;
                        for (var 
    i=0;i<=news_array2.length;i++){
                            if (
    news_array2[i].nodeName == "notizia"){
                                
    news_data.push(news_array2[i].attributes.dt);
                                
    news_array3 news_array2[i].childNodes;
                                for (var 
    k=0;k<=news_array3.length;k++){
                                    if (
    news_array3[k].nodeName == "title"){
                                        
    news_titolo.push(news_array3[k].childNodes.toString());
                                        
    news_array4 news_array3[k].childNodes;
                                        for (var 
    w=0;w<=news_array4.length;w++){
                                            if (
    news_array4[w].nodeName == "intro"){
                                                
    news_intro.push(news_array4[w].childNodes.toString());
                                                
    news_array5 news_array4[w].childNodes;
                                                for (var 
    v=0;v<=news_array5.length;v++){
                                                    if (
    news_array5[v].nodeName == "testo"){
                                                        
    news_txt.push(news_array5[v].childNodes.toString());
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        
    delete news_array;
        
    delete news_array2;
        
    delete news_array3;
        
    delete news_array4;
        
    delete news_array5;
        
    delete news_xml;
        }

    Fuck Your Mind Dance your Brain!

  3. #3
    posta anche l'xml cosi si fa qualche prova....

    ma cmq è ovvio che i dati sono presenti solo nella funzione ElaboraXML

    vedi qua come fa
    http://flash.html.it/guide/lezione/2...a-paginazione/

    usa delle altre funzioni ovviamente richiamate nella principale.....

    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
    ok, facendo un giro su internet ho capito che in realtà la funzione viene eseguita dopo e quindi non è un problema di svuotamento, od un errore nella funzione.

    ora però, a me serve capire come faccio, rimanendo nello stesso frame, a dire a flash:

    esegui prima la funzione, quando poi la funzione è completa, esegui il trace (per il momento), e poi riempi il campo di testo che dico io???

    grazie.
    Fuck Your Mind Dance your Brain!

  5. #5
    ciao crescenzo, innanzitutto grazie per la risposta.

    ecco il file xml:

    Codice PHP:
    <?xml version="1.0" encoding="UTF-8"?>
    <news>
        <notizia dt="06.07.09">
            <title>titolo1</title>
            <intro>intro1</intro>
            <testo>testo1</testo>
        </notizia>
        <notizia dt="29.06.09">
            <title>titolo2</title>
            <intro>intro2</intro>
            <testo>testo2</testo>
        </notizia>
        <notizia dt="07.05.09">
            <title>titolo2</title>
            <intro>intro2</intro>
            <testo>testo2</testo>
        </notizia>
        <notizia dt="14.04.09">
            <title>titolo2</title>
            <intro>intro2</intro>
            <testo>testo2</testo>
        </notizia>
    </news>
    Fuck Your Mind Dance your Brain!

  6. #6
    anche seguendo la tecnica delle "funzioni annidate"

    cmq continuo ad avere un "undefined"

    non c'è un modo per fare esiguire il codice AS2 in sequenza?

    cioé prima una funzione poi al termine di quella un'altra e così via?

    devo perforza farlo utilizzando un frame dopo l'altro?

    Fuck Your Mind Dance your Brain!

  7. #7
    no basta fare come in quel link chiamate consecutive alle funzioni .....
    Dati()
    CreaTabelle()
    ......il codice cmq viene eseguito in modo sequenziale........

    appena ho un attimo nel pomeriggio faccio una prova veloce e ti dico.....abbi solo un pò di pazienza..
    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 !

  8. #8
    grazie per la disponibilità crescenzo, ho risolto dichiarando degli array globali:

    _global.news_data = New Array ();
    Fuck Your Mind Dance your Brain!

  9. #9
    hmmm, ho parlato troppo presto.



    ho risolto solo parzialmente,

    perché la funzione funziona esattamente solo fino al

    trace("titolo"+k);


    il

    trace("introduzione"+k);

    me lo da solo come 0 ed 1 ciò vuol dire che qualcosa non va nella funzione,

    qualcuno sa aiutarmi?

    proprio non capisco dove sbaglio...

    grazie in anticipo.

    riposto la funzione e il file xml modificati:

    Codice PHP:
    file_news_xml "news_content.xml";
    function 
    apri_news() {
        
    news_xml = new XML();
        
    news_xml.load(file_news_xml);
        
    news_xml.ignoreWhite true;
        
    news_xml.onLoad ElaboraXML;
        function 
    ElaboraXML(success) {
            if (
    news_xml.loaded) {
                
    news_array news_xml.childNodes;
                
    dati_xml();
                
    news();
                
    delete news_array;
                
    delete news_array2;
                
    delete news_array3;
                
    delete news_array4;
                
    delete news_array5;
                
    delete news_xml;
            }
        }
    }
    function 
    dati_xml() {
        
    _global.news_array = new Array ();
        
    _global.news_array2 = new Array ();
        
    _global.news_array3 = new Array ();
        
    _global.news_array4 = new Array ();
        
    _global.news_array5 = new Array ();
        
    _global.news_data = new Array ();
        
    _global.news_titolo = new Array ();
        
    _global.news_intro = new Array ();
        
    _global.news_txt = new Array ();
        for (var 
    j=0;j<=news_array.length;j++){
            
    trace("news"+j);
            if (
    news_array[j].nodeName == "news"){
                
    news_array2 news_array[j].childNodes;
                for (var 
    i=0;i<=news_array2.length;i++){
                    
    trace("notizia"+i); // controllo se funziona il ciclo for
                    
    if (news_array2[i].nodeName == "notizia"){
                        
    _global.news_data.push(news_array2[i].attributes.dt);
                        
    news_array3 news_array2[i].childNodes;
                        for (var 
    k=0;k<=news_array3.length;k++){
                            
    trace("titolo"+k); // controllo se funziona il ciclo for
                            
    if (news_array3[k].nodeName == "titolo"){
                                
    _global.news_titolo.push(news_array3[k].childNodes.toString());
                                
    news_array4 news_array3[k].childNodes;
                                for (var 
    w=0;w<=news_array4.length;w++){
                                
    trace("introduzione"+w); // controllo se funziona il ciclo for ma questo ciclo mi restituisce come output solo "introduzione0" ed "introduzione1", ciò significa che non lo fa tutto, è come se si bloccasse, eppure ho ricreato da 0 il file xml, rifatto completamente la funzione, insomma, perché si blocca???
                                    
    if (news_array4[w].nodeName == "introduzione"){
                                        
    _global.news_intro.push(news_array4[w].childNodes.toString());
                                        
    news_array5 news_array4[w].childNodes;
                                        for (var 
    v=0;v<=news_array5.length;v++){
                                            if (
    news_array5[v].nodeName == "testo"){
                                                
    _global.news_txt.push(news_array5[v].childNodes.toString());
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

    questo invece è il file xml
    Codice PHP:
    <?xml version="1.0" encoding="UTF-8"?>
    <news>
        <notizia dt="06/07/2009">
            <titolo>[b]titolo[/b]</titolo>
            <introduzione>intro</introduzione>
            <testo>testo</testo>
        </notizia>
        <notizia dt="06/07/2009">
            <titolo>[b]titolo[/b]</titolo>
            <introduzione>intro</introduzione>
            <testo>testo</testo>
        </notizia>
        <notizia dt="06/07/2009">
            <titolo>[b]titolo[/b]</titolo>
            <introduzione>intro</introduzione>
            <testo>testo</testo>
        </notizia>
        <notizia dt="06/07/2009">
            <titolo>[b]titolo[/b]</titolo>
            <introduzione>intro</introduzione>
            <testo>testo</testo>
        </notizia>
        <notizia dt="06/07/2009">
            <titolo>[b]titolo[/b]</titolo>
            <introduzione>intro</introduzione>
            <testo>testo</testo>
        </notizia>
    </news>
    Fuck Your Mind Dance your Brain!

  10. #10
    perché imaperarsi tanto se poi era così semplice?

    finalmente funziona:

    Codice PHP:
    file_news_xml "news_content.xml";
    function 
    apri_news() {
        
    news_xml = new XML();
        
    news_xml.load(file_news_xml);
        
    news_xml.ignoreWhite true;
        
    news_xml.onLoad ElaboraXML;
        function 
    ElaboraXML(success) {
            if (
    news_xml.loaded) {
                
    news_array news_xml.childNodes;
                
    dati_xml();
                
    news();
                
    delete _global.news_array;
                
    delete _global.news_array2;
                
    delete news_xml;
            }
        }
    }
    function 
    dati_xml() {
        
    _global.news_array = new Array ();
        
    _global.news_array2 = new Array ();
        
    _global.news_data = new Array ();
        
    _global.news_titolo = new Array ();
        
    _global.news_intro = new Array ();
        
    _global.news_txt = new Array ();
        for (var 
    j=0;j<=news_array.length;j++){
            if (
    news_array[j].nodeName == "news"){
                
    news_array2 news_array[j].childNodes;
                for (var 
    i=0;i<=news_array2.length;i++){
                    if (
    news_array2[i].nodeName == "notizia"){
                        
    _global.news_data.push(news_array2[i].attributes.dt);
                        
    _global.news_titolo.push(news_array2[i].childNodes[0].toString());
                        
    _global.news_intro.push(news_array2[i].childNodes[1].toString());
                        
    _global.news_txt.push(news_array2[i].childNodes[2].toString());
                    }
                };
            }
        };

    Fuck Your Mind Dance your Brain!

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.