Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    perchè il setInterval non si ferma?

    Ho due funzioni che richiamo entrambe con setInterval. Al termine della prima (quando i = 3) stoppo il setInterval e richiamo la seconda. La seconda dovrebbe fermarsi quando g = 3 e invece continua all'infinito!!! Ho provato anche a fare il debug ma non ho capito la causa del problema!
    Cosa sbaglio?

    Ecco il codice:
    Codice PHP:
    function textBlocks() {
        
        var 
    0;
        var 
    0;
        
        function 
    tweentxtdx(){
            if (
    g==3) {
                
    clearInterval(intervaltxtdx);
            } 
            var 
    boxdx_mc:MovieClip _root.createEmptyMovieClip("boxdx_mc"_root.getNextHighestDepth());
            var 
    txtdx_mc:MovieClip boxdx_mc.attachMovie("txtdx_mc","txtdx"+g+"_mc",this.getNextHighestDepth(),{_x:1000_y:(140*g), _alpha:0});
            
    txtdx_mc.titolo.text "numero"+g;
            
    txtdx_mc.sottotitolo.text "sottotitolo"+g;
            
    txtdx_mc.sottosottotitolo.text "sottosottotitolo"+g;
            
    Tweener.addTween(txtdx_mc, {_x:730,time:2,transition:"easeOutBounce"});
            
    Tweener.addTween(txtdx_mc, {_alpha:100,time:3,transition:"linear"});    
            
    g++;
        }
        
        function 
    tweentxtsx(){
            if (
    i==3) {
                
    clearInterval(intervaltxtsx);
                var 
    intervaltxtdx setInterval(tweentxtdx1000);
            }
            var 
    boxsx_mc:MovieClip _root.createEmptyMovieClip("boxsx_mc"_root.getNextHighestDepth());
            var 
    txtsx_mc:MovieClip boxsx_mc.attachMovie("txtsx_mc","txtsx"+i+"_mc",this.getNextHighestDepth(),{_x:-220_y:(140*i), _alpha:0});
            
    txtsx_mc.titolo.text "numero"+i;
            
    txtsx_mc.sottotitolo.text "sottotitolo"+i;
            
    txtsx_mc.sottosottotitolo.text "sottosottotitolo"+i;
            
    Tweener.addTween(txtsx_mc, {_x:30,time:2,transition:"easeOutBounce"});
            
    Tweener.addTween(txtsx_mc, {_alpha:100,time:3,transition:"linear"});    
            
    i++;
        }    
        var 
    intervaltxtsx setInterval(tweentxtsx1000);    


  2. #2
    Utente bannato
    Registrato dal
    Jan 2009
    Messaggi
    713

    non lo puoi mettere fuori il setInterval?

    codice:
     var intervaltxtsx = setInterval(tweentxtsx, 1000);
    senza var....
    direttamente:
    nomeintervallo=setInterval(richiami_la_funzione, 1000); //... in ogni secondo

    di solito il setInterval si mette fuori dalla funzione
    esso serve infatti a richiamare la funzione

    tipo:
    codice:
    function azioneclip(){
       clip.play();
    }
    
    timer=setInterval(azioneclip, 5000);
    ecco l'esempio:
    http://max400scuola.altervista.org/a...erval-clip.htm

  3. #3
    Ciao max_400,
    grazie per le info ma ho risolto utilizzando una sola funzione, in questo modo:
    Codice PHP:
    function textBlocks() {
        
        var 
    0;
        var 
    0;

        function 
    tweentxt(){

        if (
    i<3) {
            var 
    boxdx_mc:MovieClip _root.createEmptyMovieClip("boxdx_mc"_root.getNextHighestDepth());
            var 
    txtdx_mc:MovieClip boxdx_mc.attachMovie("txtdx_mc","txtdx"+g+"_mc",this.getNextHighestDepth(),{_x:1000_y[img]images/smilies/frown.gif[/img]140*g), _alpha:0});
            
    txtdx_mc.titolo.text "numero"+g;
            
    txtdx_mc.sottotitolo.text "sottotitolo"+g;
            
    txtdx_mc.sottosottotitolo.text "sottosottotitolo"+g;
            
    Tweener.addTween(txtdx_mc, {_x:730,time:2,transition:"easeOutBounce"});
            
    Tweener.addTween(txtdx_mc, {_alpha:100,time:3,transition:"linear"});    
            
    g++;
        }
        if(
    i>3){
            var 
    boxsx_mc:MovieClip _root.createEmptyMovieClip("boxsx_mc"_root.getNextHighestDepth());
            var 
    txtsx_mc:MovieClip boxsx_mc.attachMovie("txtsx_mc","txtsx"+i+"_mc",this.getNextHighestDepth(),{_x:-220_y[img]images/smilies/frown.gif[/img]140*i), _alpha:0});
            
    txtsx_mc.titolo.text "numero"+i;
            
    txtsx_mc.sottotitolo.text "sottotitolo"+i;
            
    txtsx_mc.sottosottotitolo.text "sottosottotitolo"+i;
            
    Tweener.addTween(txtsx_mc, {_x:30,time:2,transition:"easeOutBounce"});
            
    Tweener.addTween(txtsx_mc, {_alpha:100,time:3,transition:"linear"});    
        }  
          
        if(
    i==7){
                
    clearInterval(intervaltxt);
        }

        
    i++;

        }

        var 
    intervaltxt setInterval(tweentxt1000);    


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.