Per fare questo Livecode mette a disposizione il comando load URL. Vediamo un esempio pratico di come crearlo.
Creiamo una finestra come la seguente:
Il campo in bianco chiamiamolo Indirizzo, mentre lo scrollbar chiamiamolo stato.
Mettiamo nel pulsante scarica il seguente codice:
on mouseUp
put "http://" into temp
put the text of field "Indirizzo" after temp
set the indirizzo of me to temp
load URL temp
send controllo to me in 1 sec
end mouseUp
on controllo
put the indirizzo of me into temp
put URLstatus(temp) into temp2
put item 1 of URLstatus(temp) into temp3
switch temp3
case "loading"
set the thumbpos of scrollbar "stato" to ((item 2 of temp2) / (item 3 of temp2) * 100 )
send controllo to me in 1 sec
break
case "cached"
set the thumbpos of scrollbar "stato" to 100
answer "Finito di scaricare"
set itemdel to "/"
put item -1 of temp into nomefile
put URL temp into URL ("binfile:" & nomefile)
break
default
#in caso di problemi
answer temp2
end switch
end controllo
Finito. Adesso bisogna solo spiegare il codice.
Il messaggio load URL serve per scaricare uno o più file insieme, tutti i load URL lanciati sono eseguiti insieme all'uscita del messaggio corrente. Load URL serve anche per memorizzare temporaneamente una risorsa esterna. Tutte le volte che verrà chiamato quello specifico url (ad esempio www.miosito.it/musica.mp3) non verrà letto nuovamente dall'esterno, ma sarà letta la copia locale. In questo modo si può risparmiare tempo.
Una volta che abbiamo usato load URL, abbiamo a disposizione la funzione urlstatus() per sapere a che punto è il download della risorsa.
ulstatus() fornisce uno dei seguenti valori:
- queued: è in fila a scaricare, probabilmente c'è la richiesta per lo stesso sito da aspettare.
- contacted: sito contattato, in attesa di ricevere i dati
- requested: l'url è stato richiesto, in attesa
- loading,bytesRicevuti,bytesTotali: qui vengono forniti 3 dati separati da virgola; la parola loading, l'ammontare dei dati ricevuti fin'ora, i dati totali della risorsa
- uploading,bytesReceived,bytesTotal: qui vengono forniti 3 dati separati da virgola; la parola loading, l'ammontare dei dati inviati fin'ora, i dati totali della risorsa da inviare.
- cached: lo scaricamento della risorsa è completo
- uploaded: il caricamento della risorsa è completo
- error: c'è stato un errore, la trasmissione è incompleta
- timeout: il sito non risponde più
- empty: ("") non risulta alcun scaricamento per il sito indicato
- il pulsante memorizza il sito in una proprietà personalizzata
- lancia load URL per il sito in questione
- non può subito cominciare a verificare urlstatus(), ma deve apsettare di uscire dal messaggio corrente, quindi dice di lanciare il messaggio controllo tra 1 secondo
- il messaggio controllo verifica lo stato dello scaricamento, aggiorna opportunamente la barra stato, e se lo scaricamento non è completo si rilancia dopo 1 secondo.
- Siccome load URL tiene in memoria ma non salva sull'harddisk, dobbiamo poi salvarlo con il comando put URL. Siccome la risorsa è in memoria, put URL non leggera dal sito, ma dalla memoria.
Nessun commento:
Posta un commento