Il mio script AppleScript non funzionerà

1

Sono un antipasto in AppleScript e c'è un problema con il mio script che non posso correggere.

Lo script è:

display dialog "How long do you want the timer to go for in seconds?" default answer ""

set time to "text returned"

display dialog "Click start to start." buttons {"Start", "Cancel"}

if the answer is equal to "Start" then
    delay "time"
end if
repeat 10 times
    beep
end repeat

Il messaggio di errore è "errore" Impossibile impostare il tempo in "testo restituito" "numero -10006 dal tempo" (Sto facendo un timer)

    
posta JustOscarJ 30.12.2017 - 07:40
fonte

2 risposte

1

Il codice AppleScript di esempio che segue è solo per mostrare le modifiche apportate al codice per renderlo scorrevole senza gli errori evidenti del codice. Non include la corretta gestione degli errori come sarebbe opportuno gestire tutti i risultati del flusso logico. Continua ad imparare!

display dialog "How long do you want the timer to go for in seconds?" default answer ""

set thisLong to text returned of result

display dialog "Click start to begin." buttons {"Cancel", "Start"} default button 2

if button returned of result is "Start" then
    delay thisLong
    repeat 10 times
        beep
    end repeat
end if
    
risposta data 30.12.2017 - 08:38
fonte
1

Vorrei iniziare dicendo, benvenuto in AppleScript! So che all'inizio può essere frustrante, ma continuate a seguirlo, ne varrà la pena alla fine!

Quindi, ecco la sceneggiatura che ho scritto che realizza ciò che stai cercando di ottenere:

set secondCount to (text returned of (display dialog "How long do you want the timer to go for in seconds?" default answer "")) as integer
set startDialog to display dialog "Click start to start." buttons {"Start", "Cancel"} default button "Start"

if button returned of startDialog is "Start" then
    delay secondCount
end if

repeat 10 times
    beep
end repeat

Una cosa che noterai è che in realtà ho assegnato una variabile alle linee "make dialog", questo ti permetterà di fare riferimento al loro output in qualsiasi momento più avanti nello script. Nella prima riga, assegno la variabile "secondCount" a qualunque testo venga restituito da quella finestra di dialogo, formattato come un intero.

Impostando il testo restituito da questa finestra di dialogo a un numero intero, puoi racchiuderlo in una ripetizione & prova a bloccare per insistere che l'utente inserisca un numero valido prima di procedere (ma io divago)

Ci sono altre cose che potrei risolvere con questo, ma penso che per ora lo lascerò qui. Spero che aiuti!

    
risposta data 30.12.2017 - 08:52
fonte

Leggi altre domande sui tag