Devo eseguire un controllo simile a un toggler, che esegue un'azione, quando il mouse lo supera, e esegue un'altra azione quando lascia il pulsante, ma non fa nulla mentre il mouse è finito e si muove.Come attivare un pulsante di passaggio del mouse?
mettere in chiaro, non è sufficiente per trovare semplicemente sapere se il mouse si trova su una regione o no, ma si deve eseguire del codice solo quando il mouse entra ed esce la regione. (chiarimenti richiesti di Szabolcs)
Purtroppo, l'opzione AutoAction
di Button
comporta in modo diverso: si cerca costantemente di eseguire l'azione mentre il mouse si muove dentro l'oggetto:
switch = False;
Button["Hover", switch = ! switch, AutoAction -> True]
Dynamic[switch]
D'altra parte , un semplice comando Mouseover
non può eseguire codice che viene eseguito ogni volta che il mouse lascia l'oggetto:
in = out = 0;
Mouseover[
Dynamic["out", (in++) &],
Dynamic["in", (out++) &]
]
Dynamic[Column[{in, out}]]
Ho pensato che il secondo argomento di Dynamic
potesse essere utilizzato per definire le azioni iniziali e finali per un oggetto Mouseover
, ma non ha avuto alcun successo con questo approccio.
start = end = False;
Dynamic[Mouseover["out", "in"], {(start = True) &, Null, (end = True) &}]
Dynamic[Column[{start, end}]]
Qualche idea?
Quale framework stai usando, inseriscilo nella tua domanda perché potrebbe esserci qualche implementazione già disponibile piuttosto che scriverne una da zero – Noor
@Noor Vedi i tag: [tag: mathematica]. È già menzionato. – Szabolcs
Puoi spiegare per cosa vuoi usare questo? Hai semplicemente bisogno di scoprire se il mouse si trova su una regione o no (fattibile), o devi eseguire qualche codice * solo * quando il mouse entra (o lascia) la regione (non ho idea di come farlo) – Szabolcs