0

我有一个关于成帧器的小问题。目前我有一个小私人项目,我需要在鼠标按下或不按下时运行不同的操作。

为了便于讨论,我用一个矩形设置了一个简单的场景。现在我希望矩形在按下鼠标时向右旋转,在鼠标未按下时向左旋转。

layer = new Layer
    x: Align.center
    y: Align.center

layer.onMouseDown ->
    layer.rotation += 1

layer.onMouseUp ->
    layer.rotation -= 1

问题是代码只检查一次鼠标是否被按下。我不知道如何让程序连续检查按钮是否被按下。

有人可以帮我吗?

4

1 回答 1

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

于 2018-01-08T09:12:39.943 回答