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