Повторите функцию, если переменная изменена?

Возникли проблемы с вычислением этого цикла - я хочу, чтобы функция ниже повторялась ТОЛЬКО в случае изменения 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

Попробуй это

Надеюсь, это то, что вы хотите...

Другие вопросы по тегам