Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    sapere se il mouse è fermo

    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

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    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.
    codice:
    onMouseMove = function () {
    	pulsante._visible = true;
    	updateAfterEvent();
    	clearTimeout(timer);
    	timer = setTimeout(onMouseStop, 200);
    };
    onMouseStop = function () {
    	pulsante._visible = false;
    };
    Il valore 200, nel setTimeout, è espresso in millisecondi.
    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

  3. #3
    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

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    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
    Nell'esempio che ho postato ho presupposto che ci fosse un'istanza nominata "pulsante".
    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

  5. #5

  6. #6
    è 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

  7. #7
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    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

  8. #8
    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

  9. #9
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.