Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Due domande (nomi dinamici a funzioni e creazione classi)

    Volevo sapere un paio di cose da voi guru:

    1. è possibile dichiarare dinamicamente le funzioni? In modo tale da avere, ad esempio, anche un nome dinamico, legato magari al clip in cui viene dichiarata...

    2. come si fa a creare delle classi a cui associare parametri e funzioni? Penso si debba usare il metodo Object ma, anche guardando nella guida, non mi risulta molto chiaro :master:

    Merci a tout le monde

  2. #2
    non sono un guru e non ho neanche capito tanto bene con la prima cosa intendi

    ma guarda se questo può fare al caso tuo


    genera = function(nome){
    // crea una funzione con il nome passato
    _root[nome] = function(){
    trace("eccola")
    }
    }

    // generi la funzione passando il nome
    _root.genera("mostra")

    // la richiami
    _root.mostra()

    Rempox

  3. #3
    Per il primo punto... Non so se ho capito bene, in ogni caso puoi assegnare ad una clip una funzione dinamicamente:

    codice:
    for(var i = 0; i < 4; i++){
       _root["mc" + i].kill = function(){
          trace(this + " foo");
       };
    }
    Logicamente questo esempio è una cagata, dovresti far variare le azioni all'interno in base ad un parametro o qualcos'altro.

    Per il secondo punto invece non ho proprio ben chiaro cosa tu intenda dire...

  4. #4
    Scusa Thander ma il nome della funzione non è sempre lo stesso con l'esempio che hai postato ??

    Io avevo capito che volesse dare anche dei nomi alle funzioni in modo dinamico.

    Il punto è che pur dando alle funzioni nomi differenti, quello che fa la funzione è sempre uguale. O No ??

  5. #5
    Sì, nel mio esempio il nome della funzione è sempre lo stesso ma cambia la clip che la dichiara. Quindi ogni clip avrà la sua propria funzione con quel nome.

    L'esempio che hai fatto tu crea funzioni con nomi diversi ed è perfetto, però il punto è che io non ho capito bene cosa lui intendesse, quindi ho postato quell'esempio in base alla mia esperienza personale, per il semplice fatto che mi sembrava strano che a lui servisse creare funzioni con nomi diversi.

    :metallica

  6. #6
    Onestamente infatti, il mio caso .... non vede molte applicazioni

    il tuo si.

  7. #7
    Beh in effetti mi avete dato entrambi un grosso aiuto: mi interessavano entrambe le cose Poi vabè non è detto che la cosa debba avere necessariamente un'applicazione pratica, io di solito mi pongo le domande "a prescindere" :tongue:
    Per il secondo punto stavo semplicemente parlando delle classi, le normali classi di C++. Delle specie di "scatoloni" dotate di costruttore e distruttore, contenenti funzioni e variabili, che prevedano in particolare la suddivisione fra parametri pubblici e privati, per impedire al filmato di andare a modificare certe parti di codice. Avete presente?
    Mi ero scordato una piccola domanda: sapete se è possibile in flash l'overloading degli operatori?

    Grazie

    PS. rempox ti torna quanto ti ho risposto nel 3d sulle combinazioni?

  8. #8
    credo proprio che l'overloading non è supportato.
    Non vede corrispondenza tra il numero di argomenti della funzione,e il numero di argomenti passati con la chiamata...
    quindi se chiami un argomento in meno,ti becchi undefined
    invece se ne chiami uno in più lo scarta
    codice:
    function mia (a, b, c) {
    	trace (a);
    	trace (b);
    	trace (c);
    }
    mia (3,7);
    mia ("pippo", "fulvio","franco","ottavio");
    spero sia questo quello che intendevi per sovraccarico

  9. #9
    Grazie fates, in effetti anche questo mi interessava, anche se non è quello che intendevo chiedere. L'overloading degli operatori è la possibilità di ridefinire la funzione dei simboli come + - * ^ e così via sulla base delle proprie esigenze. E' una tecnica molto utile, nata con il C++ e usata in diversi linguaggi di programmazione.

  10. #10
    Non so se di vero overloading si possa parlare, diciamo di no, ma praticamente può essere uno "stratagemma" per simulare una situazione del genere: ogni funzione può ricevere dei parametri che sono o meno definiti nella dichiarazione della funzione stessa. Se però tu passi più parametri, anche se non sono stati definiti, essi vengono sempre inclusi nell'array degli argomenti (_arguments) che viene passato alla funzione. Quindi se tu hai solo tre argomenti definiti e ne passi un quarto, questo può essere rintracciato tramite la chiamata dell'array suddetto riferendosi ad esso con l'indice corrispondente. In questo caso puoi fare vari controlli sugli argomenti e quindi far comportare il codice in maniera diversa in base agli argomenti ricevuti. Questo naturalmente in AS 1, non ho ancora sufficiente esperienza sul 2 per dirti che vale anche lì, purtroppo non ho mai un minuto di tempo da dedicare ad una sbirciata del nuovo linguaggio, ma in ogni caso credo che esso funzioni più o meno allo stesso modo, anzi, probabilmente supporta l'overloading dato che alla MM facevano tanto gli sboroni che il nuovo AS è come Java...

    P.S.: avevo capito che parlavi delle classi, grazie cmq per la definizione Non avevo capito invece cosa intendessi, credevo che per te la sintassi di creazione di una classe fosse materia scontata, quindi pensavo che la tua domanda si riferisse a qualcosa di più "profondo" In qualunque caso, la sintassi cambia abbastanza da AS 1.0 ad AS 2.0, quindi ti rimanderei ai rispettivi manuali in linea per vedertele entrambe.

    Spero di esserti stato utile.


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.