Повторите функцию, если переменная изменена?
Возникли проблемы с вычислением этого цикла - я хочу, чтобы функция ниже повторялась ТОЛЬКО в случае изменения myText (т.е. альбом, который слушает человек) - я смог сделать это цикл определенное количество раз или повторить в случае, если трек изменения, но я хочу, чтобы это повторилось в случае изменения альбома.
tell application "iTunes"
repeat if myText changes
if player state is playing then
set albumName to (get album of current track)
set myText to text 1 thru 10 of albumName
end if
end repeat
end tell
open location "http://bandsite.com/shows/" & myText
Когда код работает без команды повтора, он выглядит так:
tell application "iTunes"
if player state is playing then
set albumName to (get album of current track)
set myText to text 1 thru 10 of albumName
end if
end tell
open location "http://bandsite.com/shows/" & myText
Мне нужно, чтобы вся функция повторилась в случае изменения myText
2 ответа
Решение
Сохранить это как остаться открытым приложение:
property myList : {}
on run
set albumA to my playCheck()
if albumA ≠ false then
set end of myList to albumA
else
quit -- Quit on the next idle.
return 1 -- Please send the next idle as soon as possible.
end if
end run
on idle
set albumA to my playCheck()
if albumA ≠ false then
set end of myList to albumA
if (item -1 of myList) ≠ (item -2 of myList) then
open location "http://bandsite.com/shows/" & (text 1 thru 10 of albumA)
end if
end if
return 3
end idle
on playCheck()
tell application "iTunes"
if player state is playing then return (get album of current track)
return false
end tell
end playCheck
temptext = mytext
do
if temptext != myText
tell application "iTunes"
if player state is playing then
set albumName to (get album of current track)
set myText to text 1 thru 10 of albumName
end if
end tell
temptext = myText
end if
while temptext==text
Попробуй это
Надеюсь, это то, что вы хотите...