Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    14

    AS3 - Come gestire un loop di eventi timer

    Ciao a tutti,

    Sono quasi alle prime armi con flash e avrei bisogno di un vostro consiglio per un problema che devo risolvere.
    Nelle poche applicazioni che ho realizzato fino ad ora mi è capitato di gestire una sequenza temporizzata di cose da fare tramite la funzione ShortTimer trovata nell'help di flash:

    public function shortTimer() {
    var minuteTimer:Timer = new Timer(50, 4);
    minuteTimer.addEventListener(TimerEvent.TIMER, onTick);
    minuteTimer.addEventListener(TimerEvent.TIMER_COMP LETE, onTimerComplete);
    minuteTimer.start();
    }
    public function onTick(event:TimerEvent):void {
    //FAI QUALCOSA SUL TICK
    }
    public function onTimerComplete(event:TimerEvent):void {
    // FAI QUALCOSALTRO SUL COMPLETAMENTO DEL TIMER
    }

    nel caso in cui avevo una sequenza di cose da fare una dopo l'altra a diverse temporizzazioni mettevo all'interno di una function "onTimerComplete" di ShowTimer() una chiamata ad un altra funzione ShowTimer2() e cosi via fino alla fine del task.

    Fin qui tutto bene (anche se credo che ci sia un modo migliore di fare questa cosa, almeno funziona!).
    Adesso però devo realizzare una applicazione in cui ho quattro oggetti che devono essere visualizzati a giro ognuno per un particolare numero di secondi, e questa cosa deve looppare all'infinito.
    E chiaro che in questo caso non posso usare il mio metodo, potrei collegarne quattro tramite quattro funzioni ShowTimer come descritto sopra, in modo che si visualizzino ognuno per il proprio tempo, ma poi come faccio a rivisualizzare il primo? c'è un modo per fare questa cosa?

    grazie!!
    Adolfo

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    14
    solo per una rettifica: il numero di immagini da visualizzare non è 4 ma un numero che varia di volta in volta dipendentemente al contenuto di una cartella locale, e ogni immagine deve essere visualizzata un numero di secondi variabile rispetto alle altre secondo un file di properties.
    Non so se tutto questo è rilevante ai fini del mio quesito ma meglio essere precisi.

    grazie
    Adolfo

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    14
    nessuno mi riescie a dare un indicazione anche di massima?

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    65
    se devi temporizzare un evento in As3 devi usare classe Timer()...

    un esempio potrebbe essere così:

    Codice PHP:
    private var dilay:int 2;
    public function 
    scattaOra():void{
      
    timer=new Timer(dilay*1000,1);
        
      
    timer.addEventListener(TimerEvent.TIMER,doSomeThing);

    }
    public function 
    doSomeThing():void{
     
    trace("fai qualcosa");


  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    65
    hei scusami.... sta mattina è una giornata negativa proprio...

    insomma ragionando per esempi, se ti carichi queste immagini (n) conun xml... riempiti un array.

    poi fai un controllo con l'operatore ternario creandoti un ciclo che viene chiamato tutte le volte che scatta il timer...

    vediamo se riesco a farti un esempio:

    count =0;
    operatore = 1;

    function f(param){
    if (count <=0){
    operatore = (operatore == 0) ? 1 : 0;
    count = 0;
    }
    operatore1 = (operatore == 1) ? 0 : 1;
    // fai qualcosa sul mio array usando i parametri
    count ++;
    }

    function chiamaF(){
    // chiama la funzione f() ogni volta che scatta timer
    }
    chiamaF();


    ho scritto a memoria dovrebbero esserci degli orrori...

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    14
    Se ho capito bene tu mi consiglieresti di fare un cliclo la cui iterata è temporizzata tramite un timer esterno e al cui interno ci sia la una sequenza temporizzata delle n immagini che si visualizzano ignuna per un certo numero di secondi?

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    65
    Originariamente inviato da Adodado
    Se ho capito bene tu mi consiglieresti di fare un cliclo la cui iterata è temporizzata tramite un timer esterno e al cui interno ci sia la una sequenza temporizzata delle n immagini che si visualizzano ignuna per un certo numero di secondi?
    tradotto in italiano confermo ciò che dici in parte, e cioè... che dovresti crearti un ciclo la cui iterata è temporizzata da un timer esterno... ma al suo interno non ci deve essere una sequenza temporizzata delle n immagini altrimenti io capisco che si genera un ciclo ridondante che supera i 256 livelli di ricorsione e il Player crescia...
    al suo interno passi come target (param:MovieClip) per le tue operazioni i valori dell'array (immagini[n]) ogni volta diversi e li leghi rispettivamente alle varibili che usi per contare quando finiscono li porti a zero e ricominci a contare...

    se ho capito bene tu hai:
    un numero incognito di immagini
    che devono essere mostrate ognuna ogni tot secondi in un ciclo infinito
    e vuoi che i tot secondi tra una transizione e l'altra siano gestibili e impostabili.

    Bene, io la soluzione per questa cosa l'ho trovata con l'esempio che ti ho fatto sopra, tempo fa, il problema fondamentale è che è in As2 e per ora non la migro e non la tengo sotto mano altrimenti te la incollavo direttamente...
    dentro doSomeThing lanciavo un setInterval(f,ritardo,my_Array)
    in As3 il setInterval non credo che sia sopravvissuto, dovresti trovare un metodo equivalente o costruirtelo usando il Timer().

    più di questo non so dirti ma se cerchi in rete vedrai che esempi pratici in As3 ne trovi aiosa.

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    14
    grazie per il tuo tempo e pazienza!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.