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

    Passaggio x riferimento

    Ciao a tutti ho questo codice:

    codice:
    stop();
    _global.quadri = new Array();
    var dati =  new Array();
    filexml = "dump.xml";
    mioxml = new XML();
    myarray = new Array();
    mioxml.load(filexml);
    mioxml.onLoad = function () {
    			if (mioxml.loaded) {
    				myarray = mioxml.firstChild.nextSibling.childNodes;
    				for (i=0; i<=myarray.length; i++) {
    					if (myarray[i].nodeName == "quadro") {
    						quadri.push(myarray[i].childNodes[1].firstChild.nodeValue);						
    					}
    				}				
    			}
    		}
    Volevo sapere se posso recuperare i valori dell'array quadri nel main del programma cioè fuori dalla funzione
    ...open mind for different view....

  2. #2
    _global.quadri = new Array();

    ... e poi ...

    quadri.push(...

    casomai metti
    _global.quadri.push( ...


    comunque tutto quello che devi fare con quadri puoi farlo solo dopo aver caricato i dati, e popolato quindi quadri.

    Questo per dire che la chiamata alla funzione o ad altro che utilizza quadri devi farlo dentro la funzione onLoad, quindi zero problemi di scope.
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    codice:
    stop();
    _global.quadri = new Array();
    filexml = "dump.xml";
    mioxml = new XML();
    myarray = new Array();
    mioxml.load(filexml);
    mioxml.onLoad = function() {
    	if (mioxml.loaded) {
    		myarray = mioxml.firstChild.nextSibling.childNodes;
    		for (i=0; i<=myarray.length; i++) {
    			if (myarray[i].nodeName == "quadro") {
    				_global.quadri.push(myarray[i].childNodes[1].firstChild.nodeValue);
    //QUI FUNZIONA
    			}
    		}
    	}
    };
    //QUI NON FUNZIONA
    trace(_global.quadri);
    ok modificato il codice così......ma quando alla fine faccio il trace (dove c'è scritto QUI NON FUNZIONA) non mi restituisce i valori....se invece sposto dentro la funzione (dove c'è scritto QUI FUNZIONA)il trace mi restituisce i valori.
    C'è qualche nozione che mi manca....volevo capire se è possibile passare una variabile per riferimento (come succede in altri linguaggi di programmazione) e utilizzarla fuori dalla function definita da me
    ...open mind for different view....

  4. #4
    Originariamente inviato da demon22

    ok modificato il codice così......ma quando alla fine faccio il trace (dove c'è scritto QUI NON FUNZIONA) non mi restituisce i valori....se invece sposto dentro la funzione (dove c'è scritto QUI FUNZIONA)il trace mi restituisce i valori.
    C'è qualche nozione che mi manca....volevo capire se è possibile passare una variabile per riferimento (come succede in altri linguaggi di programmazione) e utilizzarla fuori dalla function definita da me
    se tu popoli quadri dentro l' onLoad che e' una funzione asincrona non potrai mai fare il trace di quadri prima che onLoad viene richiamato .


    esempio

    pippo = 0
    loadvar.onLoad = function() {
    pippo = 1
    }
    trace(pippo);


    pippo sara' sempre zero fuori dalla funzione onLoad perche' questa e' richiamata a caricamento avvenuto.

    E se trace(pippo) fuori dall' onLoad avviene immediatamente perche' e' codice di quel frame ed e' sincrono, il richiamo all' onLoad avverra' sempre e comunque dopo , proprio perche' onLoad significa "a caricamento avvenuto" ... e il caricamento e' sempre in latenza rispetto al codice del frame.

    Vale per tutti i linguaggi su eventi asincroni
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    ok grazie capito!
    ...open mind for different view....

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.