PDA

View Full Version : Bottone in flash -> acceso fisso dopo il click, how to?



Glorifindel
21st July 2009, 16:37
cdt, ho creato una serie di pulsantini in flash che hanno un effetto "acceso" e "spento".

Partono da spenti e se ci si passa sopra il mouse (il roll over insomma) si "accendono".
Se ci si clicca sopra oltre ad accendersi fanno l'effetto rimpicciolimento di 1 sec. col click.

Ora... siccome quei pulsanti mi richiamano poi delle minipagine di lato, c'è anche la possiblità di configurare l'evento "click" via Flash, in modo che dopo averci cliccato rimangano accesi? Ovviamente quando poi clicco altrove dovrebbero ritornare spenti.

Di default un bottone in flash mi consente di configurare i 4 stati:

up (quando punti altrove) - over (quando passi su) - down (quando si preme 1 istante) - hit (quando tieni premuto)

e quindi manca lo stato "click"...

sapreste consigliarmi come fare ad implementare questo effetto di "accenditi dopo il click" e "spegniti su click altrove"?

Suppa
21st July 2009, 18:28
allora se usi pulsanti
stai programmando in AS2.. perchè in AS3 i pulsanti non esistono.

Robe del genere si fanno esclusivamente via actionscript perchè devi fare in modo di richiamare delle funzioni quando tu compi una determinata azione col pulsante.
tenendo presente che mi elenchi i vari stadi, mi fai dedurre che di AS non mastichi molto, o non li prenderesti in considerazione.

Allora qua urge un po' di studio se vuoi esattamente fare quanto ti serve.
Non esiste un metodo solo... ma vari.. si puo' agire sulla timeline o fare tutto via funzione (che consiglio).

Solitamente in AS2 si procede cosi' :

Bottone1.onRollOver = function (parametri){
azioni da eseguire al RollOver;
}
Bottone1.onRelease = function (parametri){
azioni da eseguire al Release;
}

Quindi, a muzzo, in italiano il workflow da eseguire è codeste:

Bottone1.onRelease = function (parametri){
bottone_attivo_funzione(); // eseguo funzione sul bottone in questo momento attivo PRIMA della pressione del pulsante attuale.
this.enabled = false; // disattivi il pulsante appena premuto
var bottone_premuto = this // dichiari che hai appena premuto questo pulsante.
eseguo_funzione_pressione(); // funzione che dichiari altrove che influenza quello che hai appena premuto
bottone_attivo = this // dichiaro che dopo aver effettuato le azioni sopra, è questo pulsante ad entrare in status attivo
}

Questo è il metodo con cui mi trovo meglio e customizzo di piu', non è l'unico perchè via script puoi anche settare banalmente due stadi On/Off che pero' trovo limitanti a tutto quello che puoi far fare a questo evento.

La guida di Flash premendo F1 è ottima e sostanziosa per cercare spunti e aiuti.

Glorifindel
21st July 2009, 20:04
no infatti, di actionscript non ne mastico affatto, però ho trovato la funzione "button" di flash ottimale per una pulsantiera che dovevo implementare.
Ora, mi è venuta esattamente come mi serviva già con l'AS di defaul dei pulsanti che ti dà Flash, però se potessi aggiungerci questa function che mi consente di tenere il pulsante "acceso" quando l'ho cliccato 1 volta e che me lo spenga su successivi click (come un interruttore insomma).

Ho dato un'occhiata a qualche video su youtube su come compilare la function in as e spiegano quello che mi hai spiegato tu.
Mi mancava però il nome specifico della function per richiamare l'immagine del bottone "acceso" e rilasciarla; thx per avermela scritta, dopo cena mi metto ad elaborarla per aggiungerla alle altre funzioni di default ed ottenere il pulsante come mi serve :P

p.s.

Però io ho usato AS 3.0 con Flash CS4; spe che ti linko il primo video che ho seguito http://www.youtube.com/watch?v=zTlT7KkOpYM

Suppa
21st July 2009, 21:17
porca miseria avevo scritto un papiro e FF mi si è chiuso...

Brevemente...
Se stai davvero usando AS3 questo ti puo' venire incontro

http://www.adobe.com/devnet/flash/quickstart/button_component_as3/

Questi se invece opti per AS2 (come nel video che hai linkato).

http://livedocs.adobe.com/flash/mx2004/main_7_2/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Flash_MX_2004&file=00002090.html

http://edutechwiki.unige.ch/en/Flash_component_button_tutorial_-_AS2

Tuttavia, se vuoi mettere in "relazione" tra loro vari pulsanti.. ovvero fare in modo che alla pressione di uno influenzi un altro, devi scriverti delle funzioni sapendo cosa fare, altrimenti flash da solo non riesce a metterli in correlazione.
Se invece vuoi semplicemente che un pulsante abbia uno stadio in piu'.. ovvero quello di.. chiamiamolo cosi' : Mi hai premuto.

Il component pulsante ce l'ha.. è il Toggle. (di fatto un On/Off).
Per fare la skin di un pulsante AS2 o 3 :
http://livedocs.adobe.com/flash/9.0/main/00002584.html
http://livedocs.adobe.com/flash/9.0/main/00000503.html

Tunnel
22nd July 2009, 10:19
Non mi serviva nell'immediato ma ringrazio suppa perchè avevo in mente di giochicchiare un po' con il flash e ha linkato risorse veramente interessanti :)