salve,
ho un mc sul quale ho un tasto che si rende visibile al "mouseMove" ora vorrei capire come rendere il pulsante invisibile solo quando il mouse è fermo.
Grazie
salve,
ho un mc sul quale ho un tasto che si rende visibile al "mouseMove" ora vorrei capire come rendere il pulsante invisibile solo quando il mouse è fermo.
Grazie
Carpe diem
Preferisco tentare che rinunziare
Ciao.
Puoi risolvere in vari modi.
Sostanzialmente, dal momento che non esiste un evento del tipo mouseStop, dovrai servirti del mouseMove e controllare quando questo evento non sta più avvenendo.
Personalmente risolverei impostando, nell'evento onMouseMove, un timer che richiami una funzione che nasconda di conseguenza il pulsante impostandone la proprietà _visible su false.
Aggiornando il timer di volta in volta, la funzione sarà richiamata solo quando effettivamente il mouse risulta fermo.
Dovrai inserire semplicemente questo script nel primo frame della root.
Il valore 200, nel setTimeout, è espresso in millisecondi.codice:onMouseMove = function () { pulsante._visible = true; updateAfterEvent(); clearTimeout(timer); timer = setTimeout(onMouseStop, 200); }; onMouseStop = function () { pulsante._visible = false; };
Ciò significa che la funzione onMouseStop sarà richiamata se il mouse non si muove per almeno 0.2 secondi.
Un'altra soluzione può essere quella di utilizzare un evento enterFrame e memorizzare ad ogni "ciclo" le coordinate del mouse che saranno poi confrontate, al ciclo dopo, con le nuove coordinate. Se queste risultano uguali allora il mouse è fermo.
Eviterei però l'utilizzo di eventi enterFrame perché "mangiano" risorse al processore facendolo lavorare inutilmente, più di quello che effettivamente è richiesto.
Installa Forum HTML.it Toolset per una fruizione ottimale del Forum
grazie, sei stato molto chiaro.
In effetti avevo pensato alla stessa soluzione ma mi sembrava una cosa contorta, ma non esistendo "onMouseStop" questa sarà sicuramente la soluzione ottimale.
Ora non riesco a far rimanere visibile il tasto quando ci sono con il mouse sopra e farlo diventare invisibile quando non ci sono con il mouse sopra.
Grazie
Carpe diem
Preferisco tentare che rinunziare
Nell'esempio che ho postato ho presupposto che ci fosse un'istanza nominata "pulsante".Ora non riesco a far rimanere visibile il tasto quando ci sono con il mouse sopra e farlo diventare invisibile quando non ci sono con il mouse sopra.
Grazie
Non devi far altro che nominare appunto la tua istanza... Lo fai selezionando il pulsante ed assegnando il nome istanza dal pannello Proprietà.
Installa Forum HTML.it Toolset per una fruizione ottimale del Forum
Se ti può servire ti segnalo anche...
Intercettare Inattività dell’USER
![]()
My Blog: JuliusDesign potresti trovare qualche Tutorial Flash interessante
Evento: Partecipa al Workshop dedicato alle Strategie e Tecniche per WebDesigner
è ovvio.
Non mi sono spegato bene.
Con il tuo script il pulsante si rende visibile quando muovo il mouse e invisibile quando il mouse si ferma.
Ora io vorrei che il pulsante rimanesse visibile quando il mouse e sopra di esso e si rendesse invisibile qundo il mouse non è sopra il pulsante
Carpe diem
Preferisco tentare che rinunziare
Aspetta.. questo è tutto un altro discorso.
In questo caso puoi utilizzare i normali eventi onRollOver e onRollOut...
Ma non capisco.. se il pulsante diventa invisibile quando il mouse non gli è sopra, come fai a capire dove sta il pulsante? :master: .. cos'è, una roba tipo moscacieca?
Installa Forum HTML.it Toolset per una fruizione ottimale del Forum
allora sul mio mc ho un pulsante che normalmente è invisibile ora quando muovo il mouse esso diventa visibile quindi andando con il mouse sopra voglio che il pèulsante diventi sempre visibile.
Carpe diem
Preferisco tentare che rinunziare
Haaaaa.... capito![]()
...almeno credo![]()
Prova in questo modo:
codice:mouseMoveActive = function () { pulsante._visible = true; updateAfterEvent(); clearTimeout(timer); timer = setTimeout(onMouseStop, 200); }; onMouseStop = function () { pulsante._visible = false; }; onMouseStop(); onMouseMove = mouseMoveActive; pulsante.onRollOver = pulsante.onDragOver=function () { trace("sopra"); clearTimeout(timer); delete onMouseMove; }; pulsante.onRollOut = pulsante.onDragOut=function () { trace("fuori"); mouseMoveActive(); onMouseMove = mouseMoveActive; };
Installa Forum HTML.it Toolset per una fruizione ottimale del Forum