Articoli con Tag ‘Javascript’


Right Click in AS3: menu contestuali personalizzati

Eliminare i menu contestuali o più semplicemente rispondere al “right click” del mouse del Flash Player è una possibilità non permessa direttamente da codice ActionScript anche nella versione CS3. Questa caratteristica sarebbe interessante sia per i giochi che per le Applicazioni RIA. Paulius Uza ha proposto una soluzione per ActionScript 3 (AS3) che lavora in accoppiata con Javascript. Questa “patch” è ancora in fase di testing in quanto dipende dal Flash Player installato e dal browser. Si può contribuire testando un’applicazione demo qui.
È stato apero anche un “progetto” su Google Code:

The idea is fairly simple:

1-Use Javascript in the HTML container page to disable the right-click on top of the SWF.

2-Capture the event and pass it to a function that communicates with Flash via the External Interface

3-In Actionscript the function called from Javascript does whatever you need to display your own custom context-menu.

Continua...

Prototype 1.6.0 release candidate

È stata appena rilasciata la release candidate 1.6.0 di prototype con interessanti aggiornamenti all’intero sistema di API. In particolare il metodo observe dell’oggetto Event è stato migliorato e ora fornisce il contesto dell’oggetto che ha rilasciato l’evento. Questo “giusto” comportamento può tuttavia essere sovrascritto. Questo significa che per default this si riferisce all’oggetto che ha rilasciato l’evento. È stata introdotta anche la possibilità di creare eventi personalizzati. Altri miglioramenti riguardano la Function.prototype, le funzioni di DOM, Ajax, le funzioni delle classi e molto altro. Per una lista completa vedi il CHANGELOG.

Download

Continua...

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



Stop SOPA