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

    Lettura dati esterni e creazione array

    Salve a tutti, tramite coldfusion leggo i file contenuti in una determinata cartella, e fin qui funziona tutto. Usando LoadVars() leggo i dati da coldfusion e fin qui tutto ok. Se faccio un trace delle variabili lette va tutto ok. Però se voglio mettere queste variabili in un array non mi inserisce niente, come mai?
    codice:
    var MyData = new LoadVars();
    filt = "MASTER";
    MyData.load("http://webserver/sito/listdir.cfm?myfilter="+filt);
    _root.ZioCantante = new Array();
    MyData.onLoad = function(success) {	
    	for (i=0; i<this.maxImages; i++) {
    		//_root.ZioCantante[i] = this["mini"+i];
    		dego = this["mini"+i];
    		_root.ZioCantante.push(dego);
    		//trace(this["mini"+i]);
    	}
    };
    trace(_root.ZioCantante.length);
    for (i=0; i<_root.ZioCantante.length; i++) {
    	trace(_root.ZioCantante[i]);
    }

  2. #2

    Re: Lettura dati esterni e creazione array

    Originariamente inviato da darkmavis
    Salve a tutti, tramite coldfusion leggo i file contenuti in una determinata cartella, e fin qui funziona tutto. Usando LoadVars() leggo i dati da coldfusion e fin qui tutto ok. Se faccio un trace delle variabili lette va tutto ok. Però se voglio mettere queste variabili in un array non mi inserisce niente, come mai?
    codice:
    var MyData = new LoadVars();
    filt = "MASTER";
    MyData.load("http://webserver/sito/listdir.cfm?myfilter="+filt);
    _root.ZioCantante = new Array();
    MyData.onLoad = function(success) {	
    	for (i=0; i<this.maxImages; i++) {
    		//_root.ZioCantante[i] = this["mini"+i];
    		dego = this["mini"+i];
    		_root.ZioCantante.push(dego);
    		//trace(this["mini"+i]);
    	}
    };
    trace(_root.ZioCantante.length);
    for (i=0; i<_root.ZioCantante.length; i++) {
    	trace(_root.ZioCantante[i]);
    }
    a quanto ho constatato non riesco a far venire fuori i dati fuori dalla funzione onLoad, qualsiasi cosa gli crei fuori, dentro, dove gli pare, quando esce fuori è vuota

  3. #3

  4. #4
    prova

    codice:
    var MyData = new LoadVars();
    filt = "MASTER";
    MyData.load("http://webserver/sito/listdir.cfm?myfilter="+filt);
    _root.ZioCantante = new Array();
    MyData.onLoad = function(success) {
       if(success){	
    	for (i=0; i<this.maxImages; i++) {
    		//_root.ZioCantante[i] = this["mini"+i];
    		dego = this["mini"+i];
    		_root.ZioCantante.push(dego);
    		//trace(this["mini"+i]);
    	}
        trace(_root.ZioCantante.length);
       for (i=0; i<_root.ZioCantante.length; i++) {
    	trace(_root.ZioCantante[i]);
    }
    
       }
    };
    "...non è detto che sia tardi se non guardi che ora è..."

  5. #5
    il mio problema non è fare il trace, è tirare fuori dalla funzione onLoad le variabili.
    Se faccio un trace della lunghezza dell'array dentro la funzione dell'onLoad mi mostra 5 invece se faccio il trace fuori mi mostra 0 e l'array è vuoto

  6. #6
    Ho solo fatto un paio di modifiche per testare il tutto sul mio computer. In ogni caso il codice sottostante è funzionante.

    codice:
    function showData(){
    	trace(_root.ZioCantante.length);
    	
    	for(i = 0; i < _root.ZioCantante.length; i++) {
    		trace(_root.ZioCantante[i]);
    	}	
    }
    
    var MyData = new LoadVars();
    
    MyData.load("temp.rtf");
    
    MyData.maxImages = 3;
    
    _root.ZioCantante = new Array();
    
    MyData.onLoad = function(success) {
    	if(success){
    		
    		for(var a in this){
    			if(a.substr(0, 3) == "var"){
    				var dego = this["var"+(i+1)];
    				_root.ZioCantante.push(dego);
    			}
    		}
    		
    		_root.showData();
    		
    	}else trace("pirla, non hai caricato niente!");
    };

  7. #7
    il fatto è che il trace lo fai fuori e nello stesso frame probabilmente viene eseguito prima del completo caricamento delle variabili, quindi metti uno stop e le variabili recuperale nel frame successivo mettendo il goto all'interno della funzione


    MyData.onLoad = function(success) {
    for (i=0; i<this.maxImages; i++) {
    //_root.ZioCantante[i] = this["mini"+i];
    dego = this["mini"+i];
    _root.ZioCantante.push(dego);
    //trace(this["mini"+i]);
    }
    _root.play()
    };
    "...non è detto che sia tardi se non guardi che ora è..."

  8. #8
    Esattamente, come dice Raffa62 (ciao Raffa! ) ti visualizzerà sempre 0 perché quel trace lui lo esegue prima che l'array sia stato popolato. Puoi visualizzare la lunghezza corretta soltanto dopo che è stato popolato, quindi dopo che ha eseguito il codice apposito all'interno del gestore di onLoad.

  9. #9
    [ot] ciao thunder [/ot]
    "...non è detto che sia tardi se non guardi che ora è..."

  10. #10
    il codice è allo stato attuale
    codice:
    _root.ZioCantante = new Array();
    _global.ArrayGenerator = function(filt){	
    	var MyData = new LoadVars();	
    	
    	MyData.onLoad = function() {	
    		for (i=0; i<this.maxImages; i++) {			
    			dego = this["mini"+i];
    			_root.ZioCantante.push(dego);
    		}	
    		//trace(_root.ZioCantante.length);
    	}		
    	MyData.load("http://webserver/pragma-srl/listdir.cfm?myfilter="+filt);			
    }
    
    ArrayGenerator("EUCLIDE");
    e mettendo la lettura dell'array sotto l'esecuzione della funzione non va, ma se lo metto nel frame successivo funziona alla perfezione, quindi come dite voi non mi mostra niente perchè non fa in tempo C'è un modo che mi permetta senza fare sto giochino nello stesso frame?

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.