Мне нужно сделать элемент управления, похожий на тоглер, который выполняет какое-то действие, когда мышь наводит на него, и выполняет другое действие, когда он покидает кнопку, но ничего не делает, когда мышь находится и движется.
Чтобы прояснить ситуацию, недостаточно просто узнать, находится ли мышь над областью или нет, но она должна выполнить некоторый код только , когда мышь входит в область и покидает ее. (уточнение запрошено Сабольчем)
К сожалению, опция AutoAction
для Button
ведет себя по-разному: она постоянно пытается выполнить действие , пока мышь движется внутри объекта:
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}]]
Есть идеи?