Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    714

    [F8] setInterval ed attachMovieClip

    ciao ragazzi, ho questo codice all'interno di una root di una mc che applico con attachMovieClip:

    codice:
    a_pic = setInterval (caricafoto , 1000); //1000 vuol dire 1 secondo
    
    function blocca_intervallo()  {
    	trace ("blocco")
    	clearInterval( a_pic );
    }
    
    function caricafoto () {
    	trace ("piffero")
    	blocca_intervallo()
    }
    sembra assurdo ma non mi funzione, ossia la funzione blocca_intervallo() non parte mai (non mi compare nell'output da nessuna parte "blocco" e continua a generare "piffero") e quindi l'intervallo non si ferma .... tuttavia se lo stesso codice lo appiccico nella root di un altro filmato nuovo funziona correttamente e nell'output compare questo:

    piffero
    blocco


    Ma mi sfugge qualcosa sulle proprietà del setIterval?

    Grazie
    Mir

    PS: da notare che non cè un continuo richiamo di quel frame perchè se metto un trace fuori dalle functions compare correttamente un'unica volta!

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    posta tutto il codice che usi comrpeso quello del clip solo così uno ti può essere di aiuto. il codice che hai scritto da solo va benissimo
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    714
    Ecco tutto il codice:

    codice:
    function blocca_intervallo()  {
    	trace ("blocco")
    	clearInterval( a_pic );
    }
    
    a_pic = setInterval (caricafoto , 1000); //1000 vuol dire 1 secondo
    
    
    function caricafoto () {
    								
    		number=_parent._name.substr(7, _parent._name.lenght());
    		trace ("passa "+ _parent.nome + getTimer() +" ms.")
    		_root.barranav["piccola"+number].apri.number=number;
    		car1 = _root.barranav["piccola"+number].demo.getBytesLoaded();
    		tot1 = _root.barranav["piccola"+number].demo.getBytesTotal();
    		if (Math.round((car1*100)/(tot1+0.1))<>100) {
    			_root.barranav["piccola"+number].numperc = Math.round((car1*100)/(tot1+0.1));
    			_root.barranav["piccola"+number].progres1 = Math.round((car1*100)/(tot1+0.1)) + " %";
    			if (Math.round((tot1 - car1)/1000)<>0) {
    				_root.barranav["piccola"+number].bytemanc1 = Math.round((tot1 - car1)/1000) + " KB mancanti"
    			} else {
    				_root.barranav["piccola"+number].bytemanc1="";		
    			}
    		} else { 
    			_root.barranav["piccola"+number].progres1=""
    			_root.barranav["piccola"+number].bytemanc1=""
    			_root.barranav["piccola"+number].numperc="";
    		};
    		perc=Math.round((car1*100)/(tot1+0.1))
    		if (_root.barranav["piccola"+number].demo._height<>70) {
    			altorg=_root.barranav["piccola"+number].demo._height;
    			largorg=_root.barranav["piccola"+number].demo._width;
    			_root.barranav["piccola"+number].apri.rappaltlarg=altorg/largorg;
    		}
    		if (_root.barranav["piccola"+number].demo._height>200) {
    			_root.barranav["piccola"+number].demo._height=70;
    			_root.barranav["piccola"+number].demo._width=70;
    		}
    		if (_root.barranav["piccola"+number].demo._width>50) {
    			_root.barranav["piccola"+number].demo._width=70;
    			_root.barranav["piccola"+number].demo._height=70;
    		}
    		_root.barranav["piccola"+number].bordodemo._width=_root.barranav["piccola"+number].demo._width+4;
    		_root.barranav["piccola"+number].bordodemo._height=_root.barranav["piccola"+number].demo._height+4;
    		if (perc == 100) {
    			blocca_intervallo()
    			_parent.demo_photo ()
    			_parent.apri._visible=1
    			if (_root.download=="si") {_parent.download1._visible=1}
    			trace ("si erna "+number)
    				
    		}
    }

    ecco due osservazioni:

    Se scrivo così il setInterval si blocca
    codice:
    function blocca_intervallo()  {
    	trace ("blocco")
    	clearInterval( a_pic );
    }
    
    a_pic = setInterval (caricafoto , 1000); //1000 vuol dire 1 secondo
    
    blocca_intervallo()
    function caricafoto () {
    .......

    Mentre se scrivo così il setInterval continua pacifico, anche se tolgo tutto il codice da dentro la caricafoto()
    codice:
    function blocca_intervallo()  {
    	trace ("blocco")
    	clearInterval( a_pic );
    }
    
    a_pic = setInterval (caricafoto , 1000); //1000 vuol dire 1 secondo
    
    
    function caricafoto () {
    		blocca_intervallo()
    .......
    Sinceramente non riesco proprio a capire perchè non gli va di andare.

    Ti dico che il problema è di alleggerimento del codice per non rosicchiare inutili risorse al computer che esegue il filmato ... di per se il filmato quindi funziona correttamente ma questa cosa "stupidissima" mi fa uscire dai gangheri!

    Grazie molte
    Mir

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    714
    Bò ... mica ho risolto ... mi sembra tanto di un bug di flash .... mah

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.