Newsgroup: it.comp.appl.macromedia
Titolo: file txt e cache

Tempo fa si discuteva di problemi legati alla cache durante l'uso di file
txt esterni.
Visto che a me non hanno mai creato problemi, mi sono fatto spedire il file
"incriminato" e gli ho dato un'occhiata, incappando in uno degli errori più
facili da fare...
Vi riporto la risposta che ho mandato all'autore:
Al Flash non gliene importa nulla della cache, lui si va a pescare i valori
sempre dal file sul
server. L'errore era di programmazione. Il  Load Variable era inserito nel
primo keyframe, senza tenere conto del fatto che deve avere il tempo di
connettersi alla pagina txt ed estrarne i valori. Il movie gli dava una
frazione di secondo e poi pretendeva di estrarre variabili da qualcosa non
ancora caricato. Per risolvere il problema c'è un modo elegante di fargli
attendere il caricamento: un loop di 3 giri (controllato da una variabile)
che attende solo il necessario al caricamento del file txt (anche se mancano
due giri di loop, ad esempio, il risultato viene visualizzato senza problemi
ed i loop restanti non hanno alcun effetto secondario). Ti ho allegato il
file riveduto e corretto e a questo indirizzo puoi vederne il funzionamento:
http://www.digiartstudio.com/NG/filetxt.html
Ho fatto una ventina di cambiamenti al file txt e me li ha sempre visti
correttamente. Se vuoi che siano aggiornati anche all'interno del SWF già
caricato nel browser dell'utente nel momento in cui modifichi le variabili
nel file di testo (dipende dalla mole di cambiamenti previsti
giornalmente), si può settare una pausa di uno o due minuti invece che uno
stop e fargli fare così un check di qualche secondo ogni tot stabilito dal
timer. Meglio di così... :-)
Fammi una cortesia, io non so se ci riesco presto... Mi posti eventualmente
la risposta al problema anche sui NG, visto che è un problema abbastanza
comune ed è già un bel po' che è senza risposta? Scrivi della problematica
ed aggiungi il codice del loop...
E visto che non l'ha fatto lo faccio io, visto che è semplicissimo...
1) Una decina di frame con 2 keyframe, uno all'inizio ed uno alla fine
2) Primo keyframe:
             Load Variables ("dati.txt", 0)
3) Ultimo keyframe:
             Set Variable: "x" = x + 1
                    If (x = 3)
                          Stop
                                Else
                                    Go to and Play (1)
                    End If
In questo caso, sul livello superiore a questo degli script, c'era il resto
del movie e quindi veniva visualizzata la barra in attesa di input dalla
variabile esterna.
-Cyber-

Scusa Lorenzo, ma il server mi ha visualizzato il tuo messaggio dopo che
avevo postato il mio...
Mi sembrava strano...
Perdonami!!! :-)
-Cyber-

:o)

Scusa Cyber ma ho un dubbio, i tre loop sono sufficienti per aggiornare
tutte le variabili anche se il file.txt č molto grande o se la linea č
inchiodata? Non sarebbe piů sicuro inserire alla fine del file.txt una
variabile di controllo ed utilizzare quest'ultima per verificare il
completamento del download?
Mi spiego meglio, non č meglio scrivere il file di testo nel modo seguente:
variabile1=...
&variabile2=...
.... ...
&finefile=vero
dove finefile č la variabile di controllo posta alla fine del file...
....e usare dentro Flash il seguente codice:
Frame 1
                    Set Variable: "finefile" = "falso"
                    Load Variables ("./file.txt", 0)
Frame 2
                    niente
Frame 3
                    If (finefile eq "vero")
                          Go to and Play (il frame che vuoi tu)
                    Else
                          Go to and Play (2)
                    End If
Mi raccomando fammi sapere se ho scritto delle minchiate.
Saluti da Marce

Nel caso di questo thread, si discuteva se il Flash ricavasse informazioni
dalla cache oppure no; infatti il problema sorgeva in fase di aggiornamento
del txt. Nel tuo caso, ci potrebbero essere problemi con la cache quando
ormai Flash ha già le variabili settate da un precedente collegamento al
file di testo, come succedeva al file in questione. Difatti, questo
funzionava bene solo che, dopo aver ricevuto le variabili da un primo
collegamento, al successivo non riconosceva l'aggiornamento del txt ed usava
le variabili immagazzinate precedentemente...
Il loop in questione si può aumentare tranquillamente come avevo già
accennato nel relativo post...
Comunque, basta fare un paio di prove e verificarne la funzionalità.
-Cyber-