Applescript更新iTunes流标题而不会妨碍脚本的其余部分

时间:2014-05-16 15:51:51

标签: applescript itunes repeat

我正在使用以下代码获取当前的iTunes流标题。这很好用。就像我需要它一样,每当iTunes流标题发生变化时脚本都会更新,变量Title也会自动更新。

repeat
tell application "iTunes"
set Title to current stream title
end tell
delay 2
end repeat

但是,由于正在进行的“重复”功能,脚本的其余部分将不会执行。当iTunes更改其标题时,您是否知道有任何方法仍然可以更新变量标题,但不会阻碍脚本的其余部分?好像它在后台运行?谢谢!

1 个答案:

答案 0 :(得分:1)

解决方案,使用处理程序(处理程序也称为函数,子例程或方法)。 将脚本的其余部分放在处理程序中,从循环中调用此处理程序。

像这样:

set oldTitle to ""
repeat
    set t to ""
    try
        tell application "iTunes" to set t to current stream title
    end try
    if t is not "" and t is not oldTitle then -- the title changed
        set oldTitle to t
        my doSomething(t) -- call the handler 
    end if
    delay 3
end repeat

on doSomething(Title)
    -- put the rest of the script here
end doSomething