-
Gestione Eventi in Actionscript 3 – Differenze rispetto ad Actionscript 2
La gestione degli eventi in Actionscript 3 è stata decisamente migliorata. Risulta fondamentale capire fin da subito che il codice che si utilizzava nella precedente versione è del tutto incompatibile in Actionscript3.In questo breve articolo illustrerò, tramite degli esempi pratici, la differenza tra la gestione degli eventi sui clip filmato in Actionscript 2 ed Actionscript3.Gestione Evento “Click” in Actionscript 2
Ecco un piccolo esempio di gestione dell’evento “click” su un clip filmato nominato “nome_clip_mc” in as2:
nome_clip_mc.onPress=function(){
trace("clip filmato cliccato");
}Questo struttura del codice è da dimenticare poiché non è più valido in actionscript 3. Qui dobbiamo usare i listener e i metodi della classe EventDispatcher.
Che cos’è un listener ed una funzione gestore dell’evento (handler)
Un listener è una specie di “sentinella/spia” che cerca di intercettare gli eventi (es. Passagio sopra del mouse, Click etc) che possono accadere su un determinato oggetto che in genere è rappresentato da un clip filmato.
Vedremo che per un listener è necessario impostare il tipo di evento per cui la nostra “sentinella” dovrà mettersi in ascolto e poi “che cosa fare” nel momento in cui l’evento accade.
Il “che cosa fare” si traduce in una chiamata a funzione che prende il nome di “Gestore dell’Evento o Handler”.Quindi dobbiamo trovare un modo per:
- Aggiungere un listener ad un oggetto (es. Pulsante o Clip Filmato)
- Specificare il tipo di Evento che vogliamo catturare (es. Click del Mouse – Passaggio sopra)
- Richiamare un’opportuna funzione che gestisca questo evento
Gestione Evento “Click” in Actionscript 3
Il codice scritto prima diventa:
nome_clip_mc.addEventListener(MouseEvent.CLICK,gestoreClick);
function gestoreClick(e:MouseEvent"){
trace("MouseEvent.CLICK");
}Da notare che il per impostazione predefinita i clip filmato non si comportano come dei pulsanti, quindi non compare il cursore a forma di “manina” nel momento in cui ci si sposta sopra con il mouse. Per far si che questo avvenga bisogna dire a questi clip filmato che sono dei pulsanti impostando le proprietà buttonMode=true e useHandCursor=true.
nome_clip_mc.buttonMode = true;
nome_clip_mc.useHandCursor = true;Vediamo velocemente gli altri eventi in Actionscript 2 (onRollOver,onRollOut,onPress,onRelease)
nome_clip_mc.onRollOver = function(){ // qui il codice da eseguire}
nome_clip_mc.onRollOut = function(){ // qui il codice da eseguire }
nome_clip_mc.onPress = function(){ // qui il codice da eseguire }
nome_clip_mc.onRelease = function(){ // qui il codice da eseguire}In actionscript 3 si traduce nel seguente modo:
import flash.display.MovieClip;
import flash.events.MouseEvent;
nome_clip_mc.addEventListener(MouseEvent.ROLL_OVER, onRollOverHandler);
nome_clip_mc.addEventListener(MouseEvent.ROLL_OUT, onRollOutHandler);
nome_clip_mc.addEventListener(MouseEvent.CLICK, onClickHandler);
nome_clip_mc.addEventListener(MouseEvent.MOUSE_DOWN, onPressHandler);
nome_clip_mc.addEventListener(MouseEvent.MOUSE_UP, onReleaseHandler);nome_clip_mc.buttonMode = true;
nome_clip_mc.useHandCursor = true;function onRollOverHandler(e:MouseEvent){
trace(“Over”);
}
function onRollOutHandler(e:MouseEvent){
trace(“Out”);
}
function onClickHandler(e:MouseEvent){
trace(“I waited for Press AND Release!!!”);
}
function onPressHandler(e:MouseEvent){
trace(“Press”);
}
function onReleaseHandler(e:MouseEvent){
trace(“Release”);
}Errori Tipici
ArgumentError: Error #1063: Argument count mismatch on… Expected 0, got 1.
Le funzioni che gestiscono l’evento del mouse devono accettare un parametro di tipo MouseEvent, ad esempio:
myRollOver(e:MouseEvent)
1046: Type was not found or was not a compile-time constant: MouseEvent
Avete dimenticato di importare:
import flash.events.MouseEvent
Lascia un Commento
Link consigliati
Categorie
- Actionscript 3 – Trucchi e Segreti (9)
- Algoritmi e Programmazione Avanzata (3)
- Analisi di Basi di Dati (10)
- Assembler 8086 (2)
- Base di dati (1)
- Codifiche (1)
- Data Mining (4)
- E-learning (2)
- Flash (9)
- Grafica 3D (1)
- HTML5 (1)
- Intelligenza Artificiale (1)
- Lego Mindstorms NXT (6)
- Linguaggio C++ (1)
- Linux (8)
- Microsoft Office (7)
- news (1)
- Objective C (3)
- PHP (8)
- Progetti Politecnico (11)
- Programmazione ad Oggetti (Java) (1)
- Programmazione in C (16)
- Realtà Aumentata (1)
- Red5 (6)
- Seminari (3)
- SEO (3)
- Server (3)
- Sicurezza dei Sistemi Informatici (17)
- Siti Amici (1)
- Strategia e Innovazione (19)
- Tecnologie delle Basi di Dati (2)
- Utilità (11)
- web design (2)
Articoli Recenti
- Gli Active Record di Yii: un design pattern per rappresentare le tabelle del database in un modo orientato agli oggetti.
- Come creare un pulsante dinamicamente in Objective-c – Iphone SDK
- Actionscript 3 versus Objective-C: vediamo le principali differenze a livello di sintassi del codice
- Firewall: IP Tables un esempio su Linux
- Una piccola introduzione al framework php Yii (Yes It Is!) – installazione e creazione di una semplice applicazione web 2.0
- NetBeans IDE: JVM Creation Failed vediamo come risolverlo
- I sistemi esperti basati su regole
- I protocolli in Objective C sono molto simili alle interfacce di Java
- 19 – Strategia e Innovazione – Benefici della diversificazione: matrice BGC
- 18 – Strategia e Innovazione – Scelta del tempo di ingresso nel mercato – I FIRST MOVER
- 17 – Strategia e Innovazione – I mercati “WINNER TAKE ALL”
- 16 – Strategia e Innovazione – Standard e Disegno Dominante
- 15 – Strategia e Innovazione – Ciclo di vita dell’innovazione tecnologica e affermazione di un disegno dominante
- 14 – Strategia e Innovazione – Trend di diffusione di una nuova tecnologia
- 13 – Strategia e Innovazione – Sviluppo scientifico e paradigmi dominanti – Dinamiche dell’innovazione
Tags
Acrobat Writer Gratis
Actionscript 3
addEventListener
API disegno flash
appunti del corso di strategia e innovazione
AS3
Audio Streaming
Cancellare un'immagine da un PDF
cicli ed iterazioni in c
context free grammar
esercitazioni svolte in linguaggio c
esercitazioni svolte sui trigger oracle
esercizi svolti assembler 8086
eventi in actionscript 2
eventi in actionscript 3
file system linux
Formati Video HTML5
forward-chaining
gestione della memoria dinamica in c
gestione delle liste in c
getURL
Guida Visual Basic For Application - VBA
HTML5
indicizzare un sito sui motori
jflex
LEGO MINDSTORMS NXT 2.0 - BLUETOOTH - C#
linguaggi e traduttori
Modificare un file PDF
moveTo
navigateToURL
Oracle Database 10g Express Edition
Primo programma in c
programmare robot
root
scelte ed alternative in c
setChildIndex
streaming real time
swapDepths
TextField buttonMode
vettori in c
video in as2
video in as3
Video Streaming
XML
XMLList