Non sei loggato | Registrati | Login

AsFunction Aggiungi

Tutorials / Macromedia Flash

Benvenuto! Se sei un nuovo visitatore ti consiglio di iscriverti al mio Feed RSS in modo da essere sempre aggiornato riguardo l'uscita di nuovi articoli oppure sbirciare tra i tutorials ed i progetti.
Per avere un'idea del best-content presente in questo blog puoi leggere il post intitolato "Ed ora è il momento di rilanciare alcune iniziative! (1a parte e 2a parte)".
Buona navigazione e grazie per la visita!

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:

  1. testo.htmlText = "<A HREF=\"asfunction:somma,3,2,5\">Clicca qui per richiamare la funzione somma()</A>";
  2. somma = function (param) {
  3.         arg = new Array();
  4.         somma = new Number();
  5.         arg = param.split(",");
  6.         for (var i = 0; i<arg.length; ++i) {
  7.                 somma += Number(arg[i]);
  8.         }
  9.         trace(somma);
  10. };

Questo script fa in modo che l'asfunction faccia riferimento alla funzione "somma" e che gli passi un unico parametro "3,2,5" di tipo String.
Per fare in modo di poter utilizzare separatamente i numeri passati per parametro dobbiamo costruirci una sorta di Arguments casalingo, infatti in questo script non si fa altro che prendere la stringa "param" e splittarla utilizzando come termine separatore la virgola "," (il risultato viene riversato nell'array "arg").
A questo punto spazzoliamo tutto l'array con il solito ciclo for (potete farlo pure con for...in o come volete) aggiornando di volta in volta la variabile di tipo Number "somma" (come potete notare ho dovuto fare una sorta di casting per convertire arg[i] da stringa a numero).

Utilizzi

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

Daniele Simonin 3 Settembre 2005 alle 11:09 Trackback URI

Scrivi un commento

Tags di formattazione:










* Sono ammessi solo commenti contenenti opinioni, correzioni e ogni forma di supporto al tutorial; è quindi vietato porre quesiti personali.

Leggi l'unico commento presente fin'ora

Buongiorno, mi sono appena registrato per chiedere chiarimenti, ma ho visto ora la nota .. (..vietato porre quesiti personali..)
Espongo quindi una "opinione"... questo tutorial è interessante ma non abbastanza approfondito per soddisfare un utilizzo esteso della funzione: ad esempio:
1) se il link è in un file .htm esterno questa forma non funziona
2) se il campo di testo è caricato in un movieclip annidato, la funzione in questa forma non viene trovata...

Se fosse possibile indicare un riferimento per questi casi...
Grazie mille, Antonello

Commento di antonello 27 Marzo 2006 alle 17:38

Feed

infoPillole (by Wikipedia)

Ultimi commenti

Calendario

Luglio 2008
L M M G V S D
« Giu    
 123456
78910111213
14151617181920
21222324252627
28293031  

Archivio

Categorie

Tutorials casuali

Ultime news

Progetti

Alcuni miei lettori

Have a break