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 secend 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