Archivio luglio, 2007

Gestione degli eventi: similitudini tra Flash e Javascript

Uno dei punti di forza di Adobe Flash risiede nella scelta di ECMAScript (sottoprodotti di ECMA – European Computer Manufacturers Association) come standard di scripting. ActionScript e Javascript, infatti, derivano entrambi da uno standard superiore che li rende estremamente simili. Questo è uno dei motivi per il quale molti programmatori ActionScript sviluppano con estrema semplicità anche in Javascript e viceversa.

ActionScript ha da sempre avuto una gestione “doppia” degli eventi che spesso ha confuso alcuni sviluppatori. Nei MovieClip, ad esempio, è possibile impostare un evento semplicemente dichiarando una funzione alla proprietà dell’evento stesso, ad esempio:

Metodo 1

1
2
3
mio_mc.onRelease = function() {
    trace("Click sul MovieClip");
}

Altri oggetti, diversamente, richiedono una gestione diversa dell’evento che si vuole monitorare, richiedendo il classico listener, un oggetto predisposto a tale compito. Ad esempio l’oggetto Mouse può essere controllato in questo modo:

Metodo 2

1
2
3
4
5
var mouseListener:Object = new Obejct();
mouseListener.onMouseMove = function() {
    trace("Mouse in moto");
}
Mouse.addListener(mouseListener);

I componenti possiedono un’ulteriore variante, come il componente Loader:

Metodo 3

1
2
3
4
5
var loaderListener:Object = new Object();
loaderListener.complete = function(evt:Object) {
    trace("Caricamento completato");
};
myLoader_ldr.addEventListener("complete", loaderListener);

Perchè queste differenze? La ragione, in verità, è molto semplice. Il metodo 1, quello più immediato, viene utilizzato quando l’evento da “intercettare” è unico nel suo genere, cioè quando non ha senso far “scattare” più funzioni una di seguito all’altra. I metodi 2 e 3, invece, creano delle “liste” di “ascoltatori” e sono estremamente utili e potenti in quanto consentono di agganciare virtualmente infinite funzioni ad un determinato evento.

La stessa identica cosa accade in Javascript e la si può ammirare in librerie come prototype. Il comodissimo metodo observe(), messo a disposizione dall’oggetto Event, permette di agganciare funzioni ad un evento di un oggetto. Ad esempio:

1
Event.observe(window, 'load', function() { alert("Finestra caricata"); } );

In questo caso abbiamo agganciato la nostra funzione che mostra un alert all’evento load dell’oggetto window. Potremmo tuttavia ripetere l’istruzione e agganciare un’ulteriore evento:

1
2
Event.observe(window, 'load', function() { alert("Finestra caricata - 1"); } );
Event.observe(window, 'load', function() { alert("Finestra caricata - 2"); } );

Questa caratteristica, comune anche in ActionScript, è estremamente versatile è, in particolare in Javascript, è stata la chiave per la realizzazione di moltissimi “Widgets” ed estensioni (vedi il classico Snap) che oggi proliferano nel Web. La possibilità di accodarsi, infatti, ad eventi già controllati da altre funzioni, permette di essere non intrusivi (Unobtrusive) e quindi, in pratica, di aggiungere funzioni a quelle già presenti.

Continua...

BlogBabel API: finalmente la beta

Aggiornamento: Blogbabel ha chiuso – tutti i servizi, widget e plugin non sono più attivi

Grazie alle segnalazioni di P|xel e Dat sono venuto a conoscenza delle nuove API messe a disposizione dal sito BlogBabel. Così ho rilasciato una nuova versione dell’antipixel di BlogBabel in Flash.

image

In questa nuova versione (chi ha installato la precedente versione in Flash non deve fare nulla, l’aggiornamento è automatico) sono sfruttate le nuove API messe a disposizione da BlogBabel. Il codice è meno invasivo e più veloce rispetto al precedente. Dal menu contestuale, inoltre, è possibile accedere a maggiori informazioni e il calcolo sulla "salita" o "discesa" (sfondo verde o rosso) è ora corretto essendo fornito dallo stesso sistema API di BlogBabel.

Ricordo che per usare l’antipixel basta essere registrati su BlogBabel e inserire le seguenti linee di codice nel vostro sito:

[html

Ultimi Commenti

  • Ci sono 1 commenti a questo Post 1 Introducing wpXtreme
    • vik: Users custom fields sembra interessante, andrebbe aggiunta la possibilità di validare il campo in base a...

  • Ci sono 13 commenti a questo Post 13 WP CleanFix 0.3.0 beta release
    • kOoLiNuS: @Giovambattista Fazioli: ti ringrazio! più che volentieri!

    • Giovambattista Fazioli: @kOoLiNuS: Tranquillo, ti posso anticipare che probabilmente WPX cleanfix sarà gratuito, e...

    • kOoLiNuS: @kOoLiNuS: mancava un :-P e un :-D

    • kOoLiNuS: @Giovambattista Fazioli: mi sono iscritto, ma al momento io mio è un uso amatoriale della piattaforma...


Stop SOPA