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

    non funziona il for numerico

    salve ho un problema con questo script
    Codice PHP:
    function findMaxLevel(menu_nomc_string):Number {
        var 
    maxDepth:Number 0;
        var 
    clip:Number 0;
        var 
    j:Number;
        for (
    j=0j<menu_noj++) {
            if (eval(
    mc_string+j).getDepth()>=maxDepth) {
                
    maxDepth = eval(mc_string+j).getDepth();
                
    clip j;
            }
        }
        return 
    clip;
    }
    function 
    setMenu(menu_nomenuStartXwidthOptionmc_string) {
        var 
    mcPaths = ["1.swf""2.swf""3.swf""4.swf""5.swf""night.swf"]; 
        
        var 
    j:Number;
        for (
    j=0j<menu_noj++) {
            var 
    _mc:MovieClip = new MovieClip();
            
    _mc this[mc_string+j];
            
    _mc.onRelease = function () { 
                
    //getURL(mcPaths[j], "_blank");
                
    loadMovieNum(mcPaths[j],3); 
            }; 
    in pratica l'ultimo loadmovie non mi passa il numero j
    sapreste dirmi come mai?
    e perchè mi passa sempre l'ultimo valore della variabile mcPaths ovvero night.swf?

    grazie mille
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao.
    Il problema è relativo al gestore di eventi onRelease che è di tipo asincrono.
    L'argomento è stato già discusso varie volte.
    Trovi la soluzione nei 3d seguenti:
    http://forum.html.it/forum/showthrea...readid=1204836
    http://forum.html.it/forum/showthrea...readid=1223124
    http://forum.html.it/forum/showthrea...readid=1252362

    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    mi scuso innansitutto per aver replicato qualcosa di gia esistente ma anche con le modifiche apportate (*):

    Codice PHP:
    function setMenu(menu_nomenuStartXwidthOptionmc_string) { 
        var 
    mcPaths = ["1.swf""2.swf""3.swf""4.swf""5.swf""night.swf"]; 
         
        var 
    j:Number
        for (
    j=0j<menu_noj++) { 
            var 
    _mc:MovieClip = new MovieClip(); 
    *        
    _mc this[mc_string+this.j]; 
            
    _mc.onRelease = function () { 
    *            
    loadMovieNum(mcPaths[this.j],3); 
            }; 
    mi da undefined :master:
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Perdonami ma credo che dovresti rileggere meglio i thread che ti ho linkato.
    La soluzione è indicata chiaramente in ognuno di essi.

    Le modifiche che hai apportato al tuo script vanno bene in parte ma devi, sostanzialmente, "passare" la variabile del ciclo for all'istanza creata per poterla recuperare all'interno dell'evento onRelease.
    Non capisco cosa non ti è chiaro di questo passaggio.

    Potrei modificare il tuo script in modo che funzioni ma credo sia meglio arrivare da soli a capire dove sta il problema per trarne poi la soluzione, per cui riporto qui gli esempi dati nei thread.
    Segno in rosso le parti essenziali per la soluzione.

    http://forum.html.it/forum/showthrea...readid=1204836
    codice:
    tot = 20;
    for (n=0; n<tot; n++) {
    	all_c["bt_"+n].n = n;
    	all_c["bt_"+n].onRelease = function() {
    		carica(all_c["bt_"+this.n+"_nome"])
                    trace (this.n);
    	};
    }
    http://forum.html.it/forum/showthrea...readid=1223124
    codice:
    for (i=0; i<elenco.length; i++) {
    	elenco[i].i = i;
    	elenco[i].onPress = function() {
    		for (e=0; e<elenco.length; e++) {
    			abbatti(elenco[e]);
    			loadMovie(carica[this.i], _root.container);
    		}
    	};
    }
    http://forum.html.it/forum/showthrea...readid=1252362
    codice:
    for(i=0;i<10;i++){
    _root["b"+i].num=i
    _root["b"+i].onRollOver = function() {
    trace(this.num);
    }
    }
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    perdonami tu se insisto con le richeiste..e approfitto della vs gentilezza...le ho provate tutte da 3 giorni ma niente non riesco...
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  6. #6
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771

    Cosa non capisci di preciso?
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  7. #7
    in pratica come vedo dal mio ultimo script modificato

    Codice PHP:
    function setMenu(menu_nomenuStartXwidthOptionmc_string) { 
        var 
    mcPaths = ["1.swf""2.swf""3.swf""4.swf""5.swf""night.swf"]; 
         
        var 
    j:Number
        for (
    j=0j<menu_noj++) { 
            var 
    _mc:MovieClip = new MovieClip(); 
    *        
    _mc this[mc_string+this.j]; 
            
    _mc.onRelease = function () { 
    *            
    loadMovieNum(mcPaths[this.j],3); 
            }; 
    mi è parso di capire che a me manca una riga dove avviene questo
    all_c["bt_"+n].n = n;
    oppure
    elenco[i].i = i;
    oppure
    _root["b"+i].num=i

    ma non riesco a capire dove collocarle..o meglio ho fatto varie prove ma mi da undefined sempre...

    oppure devo aggiungere _root da qualche parte..ma dopo mille prove non ce l'ho fatta
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

  8. #8
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    mi è parso di capire che a me manca una riga dove avviene questo
    all_c["bt_"+n].n = n;
    oppure
    elenco[i].i = i;
    oppure
    _root["b"+i].num=i
    Esatto.

    ma non riesco a capire dove collocarle..o meglio ho fatto varie prove ma mi da undefined sempre...

    oppure devo aggiungere _root da qualche parte..ma dopo mille prove non ce l'ho fatta
    No, in questo caso è irrilevante che tu aggiunga _root.

    Lo script che dovresti utilizzare è semplicemente _mc.j = j;

    Lo devi inserire dopo _mc = this[mc_string+j]; cioè dopo che la variabile _mc sia impostata come riferimento all'istanza in questione.

    Ovviamente potrai recuperare quel valore sull'onRelease attraverso this.j
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  9. #9
    provo subito grazie
    L'intuizione creativa più di ogni altra cosa è l'unico elemento per cui la vita vale la pena di essere vissuta (D.W)

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.