我对framer有一点疑问。目前我有一个小的私有项目,我需要在按下鼠标时执行不同的操作。
为了便于讨论,我设置了一个带矩形的简单场景。现在我希望当按下鼠标时矩形向右旋转,而在未按下鼠标时向左旋转。
layer = new Layer
x: Align.center
y: Align.center
layer.onMouseDown ->
layer.rotation += 1
layer.onMouseUp ->
layer.rotation -= 1
问题是代码只检查鼠标是否被按下一次。如果按下按钮,我不知道如何让程序连续检查。
有人可以帮我吗?
答案 0 :(得分:0)
如果您希望在没有事件被触发的情况下重复发生某些事情(因为mouseUp和mouseDown仅在每次鼠标点击时被触发一次),您可以使用间隔。这是一个做你所描述的例子:
intervalDown = null
intervalUp = null
layer.onMouseDown ->
window.clearInterval(intervalUp)
intervalDown = Utils.interval 0.1, ->
layer.rotation += 1
layer.onMouseUp ->
window.clearInterval(intervalDown)
intervalUp = Utils.interval 0.1, ->
layer.rotation -= 1
您需要在每个事件上创建一个间隔,并在另一个事件触发时使用window.clearInterval
再次清除它。
以下是完整示例:https://framer.cloud/SEYHy