我不得不做一個類似於切換器的控制,它在鼠標移過它時執行一些操作,當它離開按鈕時執行另一個操作,但在鼠標移動結束時不執行任何操作。如何製作切換鼠標懸停按鈕?
要清楚,這是不夠的,只是找出鼠標是否是在一個區域或沒有,但它必須運行一些代碼當鼠標進入和離開該區域唯一。(由索博爾奇請求澄清)
不幸的是,的Button
的AutoAction
選項的行爲是不同的:它不斷地嘗試執行動作而鼠標對象內移動:
switch = False;
Button["Hover", switch = ! switch, AutoAction -> True]
Dynamic[switch]
在另一方面,簡單的Mouseover
命令不能執行每次鼠標離開對象時執行的代碼:
in = out = 0;
Mouseover[
Dynamic["out", (in++) &],
Dynamic["in", (out++) &]
]
Dynamic[Column[{in, out}]]
我認爲Dynamic
的第二個參數可以用來定義Mouseover
對象的開始和結束動作,但是這種方法也沒有成功。
start = end = False;
Dynamic[Mouseover["out", "in"], {(start = True) &, Null, (end = True) &}]
Dynamic[Column[{start, end}]]
任何想法?
你正在使用哪個框架,把它放在你的問題中,因爲可能有一些已經可用的實現,而不是從頭開始編寫一個 – Noor 2012-01-09 15:19:28
@Noor請看標籤:[tag:mathematica]。它已經提到。 – Szabolcs 2012-01-09 15:23:26
你能解釋一下你想用它做什麼嗎?你只需要找出鼠標是否在某個區域內(或可行),或者只有當鼠標進入(或離開)該區域時才能運行一些代碼*(我不知道該怎麼做) – Szabolcs 2012-01-09 15:35:32