Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685

    somma di numeri ricavati da array

    Ciao,
    come si fa a fare la somma di valori numerici inseriti in un array?

    Mi spiego meglio:

    distanza = new Array();

    //leggo, da un file xml, le dimensioni così:
    distanza[a]= slide[a].attributes.larghezza;

    il risultato sarà, più o meno:

    distanza0=50;
    distanza1=63;
    distanza2=95;
    distanza3=41;

    come faccio ad ottenere la somma di questi valori?

    Grazie.
    FaX

  2. #2
    for(a=0;a<distanza.length;a++){
    totale += distanza[a]
    }
    trace(totale)

  3. #3
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    Lo provo subito,
    grazie Broly
    FaX

  4. #4
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    mmm...
    Come mai il risultato è zero? Dove sbaglio?

    Questo è per intero il mio codice:

    codice:
    fscommand ("allowscale", false);
    stop ();
    
    banner = new XML();
    banner.onLoad = totale;
    banner.load("xml_novita.php?cod_lingua=en");
    
    var slide;
    function totale () {
    	var distanza = new Array;
    	var livello = 0;
    	var slide = banner.firstChild.childNodes;
    	for (a=0; a<slide.length; a++) {
    		distanza[a] += slide[a].attributes.larghezza;
    		livello++;
    		var nuovo = +a;
    		duplicateMovieClip ("_root.clip1.sequenza", ["nuovo"+a], livello);
    		duplicateMovieClip ("_root.clip2.sequenza", ["nuovo"+a], livello);		
    		_root.clip1["nuovo"+a]._x  = distanza[a];
    		_root.clip2["nuovo"+a]._x  = distanza[a];
    		for(a=0;a<distanza.length;a++){ 
    			_root.ingombro_totale += distanza[a] 
    		}
    		trace(_root.ingombro_totale); 
    
    		swf = "./"+slide[a].attributes.immagine;
    		loadMovie (swf, _root.clip1["nuovo"+a]);
    		loadMovie (swf, _root.clip2["nuovo"+a]);	
    	}
    }
    FaX

  5. #5
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    Ho creduto di aver trovato la soluzione ma, niente!

    Però ho sicuramente corretto un'errore togliendo il ciclo sulla length di "distanza" e utilizzando quello che già c'era.

    Però, ora il risultato del trace è questo:

    0
    059
    0590
    059059
    0590590
    059059090
    0590590900
    0590590900269
    05905909002690
    40

    Credo mi concateni i numeri come stringhe e non me li sommi come numeri :master:
    FaX

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    28
    for (a=0; a<slide.length; a++) {
    distanza[a] += slide[a].attributes.larghezza; //mi sembra che questo è l'errore
    distanza.push(slide[a].attributes.larghezza); //così è giusto livello++;
    var nuovo = +a;
    duplicateMovieClip ("_root.clip1.sequenza", ["nuovo"+a], livello);
    duplicateMovieClip ("_root.clip2.sequenza", ["nuovo"+a], livello);
    _root.clip1["nuovo"+a]._x = distanza[a];
    _root.clip2["nuovo"+a]._x = distanza[a];

    // e poi non capisco cosa volevi fare qui

    for(a=0;a<distanza.length;a++){
    _root.ingombro_totale += distanza[a]
    }
    trace(_root.ingombro_totale);

    swf = "./"+slide[a].attributes.immagine;
    loadMovie (swf, _root.clip1["nuovo"+a]);
    loadMovie (swf, _root.clip2["nuovo"+a]);
    }

  7. #7
    Originariamente inviato da ilpiubello
    Ho creduto di aver trovato la soluzione ma, niente!

    Però ho sicuramente corretto un'errore togliendo il ciclo sulla length di "distanza" e utilizzando quello che già c'era.

    Però, ora il risultato del trace è questo:

    0
    059
    0590
    059059
    0590590
    059059090
    0590590900
    0590590900269
    05905909002690
    40

    Credo mi concateni i numeri come stringhe e non me li sommi come numeri :master:
    Perchè li vede come stringhe in quel caso, prova a usare Number(distanza[a]), quindi ad esempio
    totale += Number(distanza[a]) all'interno del ciclo.

  8. #8
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    Perché è sbagliato ?

    Poi, il mio problema è:

    Ho creduto di aver trovato la soluzione ma, niente!

    Però ho sicuramente corretto un'errore togliendo il ciclo sulla length di "distanza" e utilizzando quello che già c'era.

    Però, ora il risultato del trace è questo:

    0
    059
    0590
    059059
    0590590
    059059090
    0590590900
    0590590900269
    05905909002690
    40

    Credo mi concateni i numeri come stringhe e non me li sommi come numeri :master:
    FaX

  9. #9
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    Mi ricordavo che avevo avuto il problema inverso, un po' di tempo fa: e cioè di concatenare dei numeri e formare una sequenza e ho risolto il problema con l'aiuto di GunraY che mi disse:
    codice:
    se fai 
    tot_codice+=cifra_codice sommi i numeri... 
    
    se invece fai 
    tot_codice+=""+cifra_codice 
    li sommi come stringa...
    ma questa regola sembra non valere nel mio caso attuale.

    Ho tirato fuori dal ciclo, giustamente, il trace del totale ma il risultato, anche se unico, non cambia.

    Il risultato di questa riga, contenuta nel ciclo:
    _root.ingombro_totale += distanza[a]

    è questo:
    05905909002690

    invece io voglio ottenere la somma
    FaX

  10. #10
    Deduco che non hai letto il mio precedente post

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.