PDA

View Full Version : timer in flash?


project_34
27-08-2003, 11:30
è da poco che uso flash e non sono ancora molto pratico..
Ho creato un animazione composta da 3 scene in ognuna delle quali quali c'è un box di testo dinamico in cui voglio "loadare" delle "news" da txt esterni.
Vorrei fare questo in modo che le news vengano visualizzate in intervalli regolari, quindi controllare costantemente quanto tempo è passato, e se passano 5 secondi dall'ultima volta che ho caricato la news, passo alla cuccessiva.

In che modo posso realizzare un timer che indistintamente dalla scena in cui si trova continua a incrementarsi? e anche, come faccio a tenere costantemente controllato il tempo passato?
In pratica:
- parte l'animazione (insieme parte anche il timer)
- passo alla scena 2 (il timer dovrebbe continuare a contare e ogni 5 sec devo pescare la news successiva);
- ritorno alla prima scena (e avanti così all'infinito)

Ho provato con getTimer() ma non ci sono ancora saltato fuori :muro:
Spero di essere stato chiaro e di aver scritto delle cose sensate.. :)

cisc
28-08-2003, 22:56
ciao, devi usare una variabile globale che mantenga "l'orario" dell'ultimo "cambiamento", in modo da rendere il movie indipendente dall'istanza..........

Adesso vado di fretta, nei prossimi giorni ti faccio un esempio.......

project_34
29-08-2003, 23:40
Ciao e grazie per la risposta,
per adesso ho trovato una soluzione anche se poco elegante e pratica...le 3 scene iniziali le ho disposte una dopo l'altra su unica scena (e ne è risultato un po' un casino in effetti :p ), poi ho creato un livello in cui ho usato "setInterval" che mi richiama la funzione che mi pesca le news dai txt esterni ogni 4 secondi.

Appena ho tempo però mi piacerebbe riuscire a fare le cose per bene, quindi se hai tempo per postare un esempio te ne sarei davvero grato :)

project_34

cisc
29-08-2003, 23:46
la divisione di un filmato in scene è solo una divisione "logica", infatti se la prima scena "occupa solo un fotogramma", per andare alla seconda scena puoi fare una cosa del genere: gotoAndPlay (2);

In pratica adesso hai trovato un compromesso, se vuoi che ti aiuti a trovare un'altra soluzione che ti permetta di mantenere un ordine nel tuo filmato (e quindi le scene) mi dovresti dire come visualizzi le news e come e per mezzo di che cosa..........

project_34
29-08-2003, 23:54
esattamente, per adesso mi sposto di frame in frame con dei gotoAndPlay()
in ogni caso per caricare le news ho creato un campo di testo dinamico a cui ho assegnato la variabile "news" (per l'appunto) e utilizzo l'istruzione "loadVariablesNum()" per caricarci il contenuto di un file txt.

project_34
29-08-2003, 23:56
ti posto come ho risolto adesso..

txt = 1;
loadVariablesNum("../news/news.txt", 0)
timer = function() {
switch (txt) {
case 0: loadVariablesNum("../news/news.txt", 0);
txt++;
break;
case 1: loadVariablesNum("../news/news1.txt", 0);
txt++;
break;
case 2: loadVariablesNum("../news/news2.txt", 0);
txt = 0;
break;
}
}
setInterval (timer, 3000);

cisc
30-08-2003, 00:02
allora, il cambio di news lo gestisce un movie clip, al quale associ questo codice:

onClipEvent (enterFrame) {
n=new Date ();
ta=n.getTime();
if (_global.tc+5>=ta) {
_global.tc=ta;
.......
}
}

dove al posto dei puntini metti le istruzione per cambiare news, con l'accortezza di inizializzare la variabile _global.tc una volta all'inizio, questa è una bozza, aggiustala e provala, poi fammi sapere

ciao.

cisc
30-08-2003, 00:04
guarda che loadVariablesNum lo devi chiamare solo una volta all'inizio..........

cisc
30-08-2003, 00:05
come sono impostati i vari file news??

project_34
30-08-2003, 00:14
..in pratica, come è adesso, ogni intervallo di 3 secondi richiamo la funzione timer che mi carica la news, intanto uso una variabile txt e un case in modo che ogni volta che richiama la funzione timer mi carica la news successiva..quando txt = 2 allora gli riassegno valore 0 e la volta dopo mi carica ancora la prima news. Non ho ben capito cosa intendi per "solo all'inizio" , scusami ma sono alle prime armi :rolleyes:

bhe...adesso vado a letto che domani mattina lavoro, cmq domani, massimo dopodomani provo come mi hai detto tu e ti faccio sapere, grazie di tutto! ciao

project_34

project_34
30-08-2003, 00:16
i file news sono così

" news= testo che voglio caricare nel filmato"

news è la variabile che ho assengato al campo di testo dinamico

cisc
30-08-2003, 00:21
allora, i file conterrano una stringa del tipo nome_variabile=valore&nome_variabile2=valore ecc...
quindi tu carichi tutti i file (anche si io avrei messo le variabili tutte nello stesso file........) all'inizio, controllando che le variabili da caricare siano presenti effettivamente nel filmato e non siano undefined, perchè in questo caso ancora non sono state caricate dal file testo e quindi bisogna aspettare e ricontrollare con un gotoAndPlay che torno indietro di n fotogrammi (questo controllo va fatto specialmente nel caso di applicazioni web, perchè per caricare le variabili bisogna aspettare che anche il file txt sia scaricato sul computer dell'utente)

al primo fotogramma dovresti mettere:
loadVariablesNum("../news/news.txt", 0);
loadVariablesNum("../news/news1.txt", 0);
loadVariablesNum("../news/news2.txt", 0);

e poi lavorare sulle variabili.......

ciao.

project_34
30-08-2003, 00:27
ah si! così è decisamente meglio :D , chissà perchè non ci ho pensato :muro:
non avrei mai pensato invece all'eventualità che non caricasse in tempo i file txt..

ciao!