Tôi phải thực hiện một điều khiển giống như người quản lý, thực hiện một số hành động, khi chuột di chuyển nó và thực hiện một hành động khác khi nó rời khỏi nút, nhưng không làm gì khi chuột di chuyển.Làm cách nào để thực hiện nút Chuyển đổi qua lại?
Để làm cho nó rõ ràng, đó là không đủ để chỉ đơn giản là tìm hiểu xem chuột là trên một khu vực hay không, nhưng nó phải chạy một số mã chỉ khi chuột đi vào và rời khỏi khu vực. (rõ yêu cầu của Szabolcs)
Đáng buồn thay, các AutoAction
tùy chọn Button
cư xử khác nhau: nó không ngừng cố gắng để thực hiện các hành động khi chuột đang chuyển động bên trong đối tượng:
switch = False;
Button["Hover", switch = ! switch, AutoAction -> True]
Dynamic[switch]
Mặt khác , một lệnh Mouseover
đơn giản không thể thực hiện mã được thực thi mỗi khi chuột rời khỏi đối tượng:
in = out = 0;
Mouseover[
Dynamic["out", (in++) &],
Dynamic["in", (out++) &]
]
Dynamic[Column[{in, out}]]
Tôi nghĩ rằng đối số thứ hai của Dynamic
có thể được sử dụng để xác định các hành động bắt đầu và kết thúc cho một đối tượng Mouseover
, nhưng cũng không thành công với cách tiếp cận này.
start = end = False;
Dynamic[Mouseover["out", "in"], {(start = True) &, Null, (end = True) &}]
Dynamic[Column[{start, end}]]
Bất kỳ ý tưởng nào?
Bạn đang sử dụng khung nào, đặt nó vào câu hỏi của bạn bởi vì có thể có một số triển khai sẵn có hơn là viết một từ đầu – Noor
@Noor Vui lòng xem các thẻ: [tag: mathematica]. Nó đã được đề cập. – Szabolcs
Bạn có thể giải thích những gì bạn muốn sử dụng cho? Bạn có đơn giản chỉ cần tìm hiểu xem con chuột có ở trên một vùng hay không (doable), hoặc bạn phải chạy một số mã * chỉ * khi chuột vào (hoặc rời khỏi) vùng đó (tôi không biết làm thế nào để làm điều đó) – Szabolcs