Triggers 我需要在applescript中设置两个独立变量,并检查它们是否都出现

Triggers 我需要在applescript中设置两个独立变量,并检查它们是否都出现,triggers,controller,applescript,Triggers,Controller,Applescript,我正在使用一个名为“MidiPipe”的程序来使用midi控制器触发mac上的操作 基本上,我需要做的是当我同时按下midi控制器上的两个键时,我需要一个动作,但是消息是分开的。我需要将一条消息设置为一个变量,然后将其设置为side检查是否有其他消息进入,然后检查它们是否是消息的正确组合。如果是,我需要采取行动。这是我的列表的图像,当我按下键21和24时,它基本上是我的midi控制器的输入。此外,这里是我目前的代码,这是不工作的 谢谢你的阅读 ~Frank事情是这样的: property l

我正在使用一个名为“MidiPipe”的程序来使用midi控制器触发mac上的操作

基本上,我需要做的是当我同时按下midi控制器上的两个键时,我需要一个动作,但是消息是分开的。我需要将一条消息设置为一个变量,然后将其设置为side检查是否有其他消息进入,然后检查它们是否是消息的正确组合。如果是,我需要采取行动。这是我的列表的图像,当我按下键21和24时,它基本上是我的midi控制器的输入。此外,这里是我目前的代码,这是不工作的

谢谢你的阅读


~Frank

事情是这样的:

property lastSecondItemis21 : false --item 2 of last message 

on runme(message)
    if (item 1 of message = 144) and (item 2 of message = 21) and (item 3 of message > 0) then
        set lastSecondItemis21 to true
    else if lastSecondItemis21 then
        set lastSecondItemis21 to false
        if (item 1 of message = 144) and (item 2 of message = 24) and (item 3 of message > 0) then
            --<do action>
        end if
    end if
end runme
属性lastSecondItemis21:false——最后一条消息的项目2
运行时(消息)
如果(信息的第1项=144)和(信息的第2项=21)以及(信息的第3项>0),则
将lastSecondItemis21设置为true
否则,如果LastSecondItem为21,则
将lastSecondItemis21设置为false
如果(信息的第1项=144)和(信息的第2项=24)以及(信息的第3项>0),则
--
如果结束
如果结束
结束符码

这里有个主意给你。我们将创建一个保持打开的applescript应用程序。此应用程序将一直运行。此示例有两个可以使用的变量:key1和key2。每当我要求应用程序“运行”时,它都会告诉我这两个变量的状态。。。在本例中,它们是否具有值

因此,要尝试此示例,您需要做的第一件事是将此代码保存为保持打开的应用程序。我把我的申请称为“stayOpenApp”

您会注意到它有两个变量作为属性。脚本底部是每个变量的getter和setter。这允许外部applescript获取变量值或设置变量值。要遵循此示例,请创建以下单独的applescript并运行它

tell application "stayOpenApp" to launch
该代码将启动stayOpenApp。现在我们可以随时运行这段代码让stayOpenApp告诉我们变量的状态

tell application "stayOpenApp" to runMe()
如果在某个时刻我们想要改变一个变量的状态,我们可以使用这个

tell application "stayOpenApp" to setKey1(1)
现在,如果您再次使用runMe()检查变量的状态,您将注意到更改

因此,使用这些技术,您可以将信息传递给正在运行的applescript的变量,并检查变量的状态。我希望这能给你一些解决问题的方法。祝你好运

tell application "stayOpenApp" to setKey1(1)