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

    [MX2004] Funzione dentro ciclo for

    Si possono generare più funzioni con un ciclo for?
    Per generare sette funzioni che dovrebbero risiedere nella _root e che si dovrebbero chiamare
    puls77()
    puls76()
    puls75()
    puls74()
    puls73()
    puls72()
    puls71()

    ... ho provato con un ciclo for.
    Ma c'è qualcosa che non quadra.

    Guardate un po':

    codice:
    for(i=7; i>0; i--) {
    	// dichiaro le variabili:
    	var puls7OK:String = "puls7" + String( i ); //eval( puls7OK )
    	var p7OK:String = "p7" + String( i ); //eval( p7OK )
    	var car7OK:String = "car7" + String( i ); //eval( car7OK )
    	// costruisco la funzione:
    	function puls7OK() { // è qui che mi sa che non va!
    		posy = _root.sottomenu.eval( p7OK )._y;
    		newy = posy-vertic;
    		_root.sottomenu.pareB2._y=newy;
    		_root.sottomenu.pareB1._y=newy;
    		newx2 = _root.sottomenu.eval( p7OK )._x - ((_root.sottomenu.eval( p7OK )._width / 2)+ abb2);
    		_root.sottomenu.pareB2._x=newx2;
    		newx1 = _root.sottomenu.eval( p7OK )._x + ((_root.sottomenu.eval( p7OK )._width / 2)+ abb1);
    		_root.sottomenu.pareB1._x=newx1;
    		loadMovie(_root.eval( car7OK ), _root.logoClip.carPag);
    	}
    }
    Poi le richiamerei da rispettivi pulsanti.

    i centra sia nel nome della funzione che nel suo contenuto.

    Grazie!

  2. #2

  3. #3
    Ho visto... ora provo a capire se mi serve.
    Grazie rempox.

    Comunque confesso che sono un po' perplesso: ho l'impressione che dovrò comunque inserire lo stesso tutto in un ciclo for anche per gestire la generazione delle funzioni, e sarò punto d'accapo...

  4. #4
    se è più di una penso di si

    qualcosa del tipo


    codice:
    function genera(nome){
    
          this[nome]=function(){
                  // e istruzioni
          }
    }
    
    for(I=1;I<=10;I++){
        genera("bottone"+I)
    }
    dovresti trovarti 10 funzioni uguali con nome differente

    ma a questo punto conviene un prototype


    codice:
    MovieClip.prototype.fx_pulsante=function(){
              this.onRollOver=function(){
                   trace("sopra")
              }
              this.onPress=function(){
                   trace("premuto")
              }
    }
    for(I=1;I<=10;I++){
        mc.fx_pulsante()
    }
    Ciao

  5. #5
    Ho capito.
    Invece di inserire l'una dentro l'altra, hai separato la funzione dal ciclo, utilizzando la prima per generare le variabili per la seconda.

    Grazie ancora. I due esempi mi hanno fatto capire meglio.

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.