我想做这样的事情:
handlerOn = do
cid <- canvas `on` buttonPressEvent $ tryEvent do
signalDisconnect cid
handlerOff
putStrLn "handlerOn"
handlerOff = do
cid <- canvas `on` buttonPressEvent $ tryEvent do
signalDisconnect cid
handlerOn
putStrLn "handlerOff"
当然,这不会按原样工作,因为我试图在尚未分配 cid 的代码块中使用 cid 。
这个想法是注册一个事件监听器,当它接收到一个事件时,它会注销自己并注册一个不同的事件监听器,它会来回做同样的事情。