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

    Visibilità di variabili

    Ciao ragazzi.
    Sarò breve ma chiaro (spero).
    Carico del testo presente all'interno di un file xml all'interno di un array.
    Ecco parte del codice:

    var mio_xml:XML = new XML();
    var array_img:Array = new Array();

    mio_xml.onLoad = function(loaded:Boolean) {
    if (loaded) {
    array_temp = mio_xml.firstChild.childNodes;
    for (i=0; i<array_temp.length; i++) {
    array_img[i] = array_temp[i].attributes.img;
    }
    }
    };

    mio_xml.load("...file.xml"); //file.xml è un file generico
    trace(array_img[1]);

    PROBLEMA: il trace mi restituisce undefined. Se però inserisco il trace all'interno della funzione sopra (dopo il ciclo "for" per esempio), il valore restituito è corretto.
    E' sostanzialmente un problema di visibilità delle variabili, come se fuori dalla funzione l'array perdesse di ogni senso.

    In cosa sbaglio??

    Grazie mille per l'aiuto!!!

    Luca.

  2. #2

    Re: Visibilità di variabili

    Originariamente inviato da kankudai80
    Ciao ragazzi.
    Sarò breve ma chiaro (spero).
    Carico del testo presente all'interno di un file xml all'interno di un array.
    Ecco parte del codice:

    var mio_xml:XML = new XML();
    var array_img:Array = new Array();

    mio_xml.onLoad = function(loaded:Boolean) {
    if (loaded) {
    array_temp = mio_xml.firstChild.childNodes;
    for (i=0; i<array_temp.length; i++) {
    array_img[i] = array_temp[i].attributes.img;
    }
    }
    };

    mio_xml.load("...file.xml"); //file.xml è un file generico
    trace(array_img[1]);

    PROBLEMA: il trace mi restituisce undefined. Se però inserisco il trace all'interno della funzione sopra (dopo il ciclo "for" per esempio), il valore restituito è corretto.
    E' sostanzialmente un problema di visibilità delle variabili, come se fuori dalla funzione l'array perdesse di ogni senso.

    In cosa sbaglio??

    Grazie mille per l'aiuto!!!

    Luca.
    nn sbagli niente è solo che all'esterno del loaded ovviamente nn cè niente
    quindi tutte le tue azioni li devi fare all'interno del successo della lettura
    tutto qua
    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 !

  3. #3
    Ci ero arrivato un secondo prima della tua risposta.
    E infatti hai pienamente ragione...
    Grazie mille...

  4. #4
    Originariamente inviato da kankudai80
    Ci ero arrivato un secondo prima della tua risposta.
    E infatti hai pienamente ragione...
    Grazie mille...
    di niente figurati...

    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 !

  5. #5
    io ho il problema contrario mi sa, oggetti definiti nel main.mxml tramite id che solo per alcuni tipi vengono riconosciuti all'interno delle funzioni di un file esterno .as correttamente richiamato.

  6. #6

    Re: Visibilità di variabili

    Originariamente inviato da kankudai80
    Ciao ragazzi.
    Sarò breve ma chiaro (spero).
    Carico del testo presente all'interno di un file xml all'interno di un array.
    Ecco parte del codice:

    var mio_xml:XML = new XML();
    var array_img:Array = new Array();

    mio_xml.onLoad = function(loaded:Boolean) {
    if (loaded) {
    array_temp = mio_xml.firstChild.childNodes;
    for (i=0; i<array_temp.length; i++) {
    array_img[i] = array_temp[i].attributes.img;
    }
    }
    };

    mio_xml.load("...file.xml"); //file.xml è un file generico
    trace(array_img[1]);

    PROBLEMA: il trace mi restituisce undefined. Se però inserisco il trace all'interno della funzione sopra (dopo il ciclo "for" per esempio), il valore restituito è corretto.
    E' sostanzialmente un problema di visibilità delle variabili, come se fuori dalla funzione l'array perdesse di ogni senso.

    In cosa sbaglio??

    Grazie mille per l'aiuto!!!

    Luca.
    il punto è che il caricamento dati è un evento asincrono quindi non puoi popolare gli array e dare un trace dei dati caricati simultaneamente, come cercavi di fare, però se vuoi vedere un array fuori dall'onLoad basta che modifichi il codice così:
    Codice PHP:
    stop();
    var 
    mio_xml:XML = new XML();
    var 
    array_img:Array = new Array();

    mio_xml.onLoad = function(loaded:Boolean) {
        if (
    loaded) {
            
    array_temp mio_xml.firstChild.childNodes;
            for (
    i=0i<array_temp.lengthi++) {
                
    array_img[i] = array_temp[i].attributes.img;
            }
            
    play();
        }
    };

    mio_xml.load("...file.xml");  //file.xml è un file generico 
    e, al fotogramma successivo puoi fare tranquillamente il trace del tuo array che da li in poi sarà visibile per tutto il filmato.


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.