AsFunction

Requisiti

  • Semplicemente nessuna

Introduzione

Inizio a scrivere questo tutorial spiegando prima di tutto l’utilità di questa istruzione. Asfunction ci permette di fare una chiamata ad una funzione da un campo di testo (dove è stata abilitato il parsing dei tag HTML) o dall’URL Link presente nelle proprietà del campo. Nel nostro campo dinamico troveremo una o più parole cliccabili (a nostra scelta) che ci permetterano quindi di richiamare funzioni passando loro un certo numero di parametri a nostra scelta (in realtà come vedremo potremmo passare solo un parametro ma questo “problemino” è facilmente risolvibile).

Al lavoro

Ho deciso di spiegarne il funzionamento basandomi su un esempio che vi aiuterò a costruire man mano:

  1. Create un campo di testo dinamico con istanza “testo”
  2. Ora per attivare il parsing dei tag HTML dovete andare sulle proprietà del testo e attivare il tastino “Render text as HTML”;
  3. Nello stesso frame in cui risiede il campo di testo ora scrivete questo:
    1. testo.htmlText="<a HREF="asfunction:funzione,argomento">Clicca qui per richiamare la funzione</a>"

    Così facendo avremo la scritta “Clicca qui per richiamare la funzione” che se cliccata richiamerà la funzione da noi scelta.

  4. Ora dobbiamo costruirci la funzione:
    1. funzione = function (param) {
    2.     trace(param);
    3. };

Ora siamo pronti a testare il nostro movie premendo CTRL+ENTER, noterete che se premete la scritta vi si aprirà la finestra Output con scritto “argomento”. In poche parole siamo riusciti nel nostro intento di richiamare una funzione e passargli un parametro (che nel nostro caso era la stringa “argomento”).

Ora sorge una domanda spontanea: ma se io devo passare più parametri come faccio? La risposta la vedremo con un altro esempio più utile:

testo.htmlText = “Clicca qui per richiamare la funzione somma()“;
somma = function (param) {
arg = new Array();
somma = new Number();
arg = param.split(“,”);
for (var i = 0; iUtilizzi

Di utilizzi ce ne possono essere infiniti…l’unico limite (come in altre mille cose) rimane la vostra fantasia :)