Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    306

    parametri opzionali in una funzione

    ciao a tutti
    stavo scrivendo delle classi, e ho avuto l'eisgenza di dichiarare dei metodi con dei parametri opzionali
    quelli che di solito nella guida di flash vengono messi tra parentesi quadre, per capirci
    function prova(parametro1 [, parametro2, parametro3]){...}
    con questa sintassi (quella della guida di flash) non funziona, qualcuno sa darmi qualche indicazione?
    per ora l'unica soluzione che ho trovato è di mettere tutti i parametri e inserire false qualora non servissero, ma sarebbe più comodo ometterli direttmente
    saluti
    ilGuccino
    buonuomo.tomma@tiscali.it

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ancora non esiste questa possibilità... si dice che in AS3 verrà introdotto un metodo per gestirla...

    per il momento io utilizzo un modo più casereccio metto insieme tutti i parametri opzionali in uno unico del tipo Object e poi faccio la verifica con la sintassi abbreviata dell'if, ad esempio poniamo di avere tre o quattro parametri opzionali,

    codice:
    class Prova {
    	private var __param1:Boolean;
    	private var __param2:Boolean;
    	private var __param3:Boolean;
    	private var __param4:Boolean;
    	function Prova (initObject:Object) {
    		if (initObject != undefined) {
    			__param1 = (initObject.param1 != undefined) ? initObject.param1 : false;
    			__param2 = (initObject.param2 != undefined) ? initObject.param2 : false;
    			__param3 = (initObject.param3 != undefined) ? initObject.param3 : false;
    			__param4 = (initObject.param4 != undefined) ? initObject.param4 : false;
    		}
    		for (var __index = 1; __index <= 4; __index++){
    			trace(this['__param'+__index]);
    		}
    	}
    }
    codice:
    // in flash:
    var prova:Object = new Prova({param1:false, param2:true, param3:true, param4:false}); // output: false, true, false, true

  3. #3
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    aspetta, aspetta... mi sono ricordato che c'è la ricerca e ho ritrovato una discussione interessante a cui ho partecipato... leggi quanto scritto da andr3a, è ottimo

    http://forum.html.it/forum/showthrea...etri+opzionali

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    306
    grazie per la risposta, ho guardato anche il post (io con la ricerca non l'avevo trovato, forse avevo messo anche "funzione" come chiave)
    in sostanza si ricorre ad escamotages
    riguardo a quello che hai postato tu qui, anch'io avevo pensato una cosa simile, solo con un array invce di un oggetto, ma il concetto è quello
    volevo piuttosto essere sicuro che non esistesse una soluzione propria di as
    interessante il lavoro con l'argument, ma credo non mi serva nulla di così sofisticato, in fondo non era l'overload che volevo fare
    grazie, ciao
    ilGuccino
    buonuomo.tomma@tiscali.it

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.