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

    variabile al posto dei parametri di una funzione.

    Ho una funzione con due parametri.
    Quando la richiamo devo mettere naturalmente
    nomeFunz(primoPar, secondoPar);

    ...ma io vorrei poterla richiamare mettendo come parametri una sola variabile.
    del tipo:
    prova = "0, 15";
    nomeFunz (prova);

    Si può???? o meglio, visto che ho già provato, come posso risolvere???


    grazie ciao.

  2. #2
    Puoi benissimo specificarne solo uno, alla seconda eventualmente assegni un valore di default

    Ad esempio

    function pippo(a,b){
    !b ? b=10 : null
    trace(a)
    trace(b)
    }

    Se la richiami con pippo(1,5) ti traccia 1 e 5, se la richiami con pippo(1) ti traccia 5 e 10 (valore di default dato a b).
    Chiamandoli con una sola variabile probabilmente te la vede solo come prima, allora potresti splittarla in due, ad esempio dentro alla funzione metti

    valori = a.split(","), in tal modo avrai tutti e 2 i valori

    Insomma se passi più valori dentro una stringa devi poi splittarla, non creso si possa far sì che li veda come parametri separati

    Un'altra soluzione può essere usare un array e poi passargli i valori così

    k = [3,5]
    pippo(k[0],k[1])

    O così

    function pippo(a){
    trace(a[0])
    trace(a[1])
    }
    k = [3,5]
    pippo(k)

  3. #3
    ti ringrazio per le multeplici risposte.

    ti spiego meglio la mia siituazione:
    ho creato un array:
    agg = new Array();
    agg[0] = "0, 15";
    agg[1] = "15, 30";
    agg[2] = "30, 45";
    agg[3] = "45, 30";

    poi tramite questo ciclo voglio richiamre la funzione "via" con i parametri dell'array, la variabile di prova è "buona":
    codice:
    function pulsanti(fine) {
    	numPuls = 4;
    	for (a=0; a<numPuls; a++) {
    		duplicateMovieClip(puls, "puls"+a, a);
    		this["puls"+a]._x = this.puls._x+(80*(a));
    		path = eval("puls"+a);
    		path.a = a;
    		path.onRelease = function() {
    			var buona;
    			buona = agg[this.a];
    			via(buona);
    		};
    	}
    }
    come risolveresti??
    Grazie mille.

  4. #4
    Potresti provare così

    agg = new Array();
    agg[0] = [0, 15];
    agg[1] = [15, 30];
    agg[2] = [30, 45];
    agg[3] = [45, 30];

    function pulsanti(fine) {
    numPuls = 4;
    for (a=0; a<numPuls; a++) {
    duplicateMovieClip(puls, "puls"+a, a);
    this["puls"+a]._x = this.puls._x+(80*(a));
    path = eval("puls"+a);
    path.a = a;
    path.onRelease = function() {
    buona = agg[this.a];
    via(buona[0],buona[1]);
    };
    }
    }

    Oppure uno degli altri modi che ti ho indicato , poi dentro a "via" gestisci come vuoi i due parametri, per vedere se arrivano correttamente puoi usare il solito trace

    function via(a,b){
    trace(a)
    trace(b)
    }

  5. #5
    perfetto funziona benissimo.
    grazie, mi hai salvato il pomeriggio.

  6. #6
    Felice d'averti aiutato, ciao

  7. #7
    Un'altra domanda che non centra nulla con il problema di prima.

    ho creato una variabile:
    ultimoPuls = "_level0.puls"+Math.round(a-1);
    (a è uguale a 4)

    e poi ho creato una condizione usandola cosi (this è uguale a _level0.puls3):
    if (this == ultimoPuls) {
    ecc....
    }


    ma non funziona perchè ultimoPuls probabilmente gli da un testo (essendo tra ""), perchè se metto
    if (this == _level0.puls3) {
    funziona bene!

    Sai come posso aggirare il problema??

    Grazie ancora.

  8. #8
    Prova con

    ultimoPuls = eval("_level0.puls"+Math.round(a-1));

    Lasciando questo uguale

    if (this == ultimoPuls) {
    ecc....
    }

  9. #9
    grazie mille ancora una volta!!!!

  10. #10

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 © 2026 vBulletin Solutions, Inc. All rights reserved.