Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    slide:cambia foto solo se la precedente e' stata caricata tutta...

    ciao a tutti, con questo codice ho una slideshow temporizzata di n foto.
    visualizzata in locale sembra tutto OK,ma se testo con la simulazione scaricamento (56K,ADSL...) non sono sufficienti i 6 secondi impostati nel setInterval e quindi vedo la percentuale di caricamento che pero' non arriva mai al 100% e quindi non vedo nessuna foto.
    Cosa devo impostare per dirgli se ha caricato tutta la foto allora passa alla successiva?
    foto= 44;
    codice:
    _root.slide.onRelease=function(){
    	 intervalID = setInterval(function () { 
    	  img = "slide1/foto"+foto+".jpg"
           _root.big.cont.loadMovie(img);
    	   _root.big.cont._alpha = 0;
    				//carico la foto grande con il preload
                    _root.big.onEnterFrame = function() {
    				car=this.cont.getBytesLoaded() // byte caricati
                    tot=this.cont.getBytesTotal()  // byte totali
    				percentuale = Math.floor((this.cont.getBytesLoaded()/tot)*100);
    				//+ Int(this.cont.getBytesLoaded()/1024) + "KB di " + Int(this.cont.getBytesTotal()/1024) 
    				 _root.cont_perc.perc.text = percentuale+"% ";
    					if (car == tot && car > 1024) {
    					larg =this.cont._width;
    					alt = this.cont._height;
    					//trace("larg1 = " + larg + " alt1 = " + alt)
    					 _root.resizeimg._height=0
    					 _root.resizeimg._width=0
    					 _root.cont_perc.perc.text = "";
    					 _root.resizeimg._alpha=100
              _root.resizeimg.onEnterFrame = function() {
    		if (this._width<=larg-1 && this._height <=alt-1) {
    			myResize(this,larg+20,alt+20,4)
    			trace("largh resizeimg="+this._width+" alt resizeimg="+this._height+alt+larg)
    			trace("sto scalando " + this._width)
    		} else {
    			_root.big._x =_root.resizeimg._x-larg/2;
    			_root.big._y =_root.resizeimg._y-alt/2;
    			_root.big.cont._alpha = 100;
    			var scale:Object = new ScaleSquare(_root.big, 4,4,_root.big._width, _root.big._height, true, Elastic.easeOut);
    			_root.cont_slide_expo._y = _root.big._y+_root.big._height + 30
    			_root.dx._y = _root.big._y+_root.big._height + 55
    			_root.sx._y = _root.big._y+_root.big._height + 55
    			_root.totalefoto._y = _root.big._y+_root.big._height +35
    			trace("cancello il resize")
    			foto++;
    			delete this.onEnterFrame;
    		}
    	}
    	delete this.onEnterFrame;
    				}
    				}
    	   trace(foto+""+totali)
         if (foto == totali){
    	clearInterval(intervalID)
    	}
    	
    },6000);
    	
    }
    -Nextart.it Graphic Solutions

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ho modularizzato un attimo il codice perchè non stavo riuscendo a leggerlo e ho aggiunto un valore booleano, anche se potrebbe non essere sufficiente allo scopo
    codice:
    var slideImages:Function = function(){
    	img = "slide1/foto"+foto+".jpg"
    	_root.big.cont.loadMovie(img);
    	_root.big.cont._alpha = 0;
    	_root.big.onEnterFrame = function() {
    		_root.superPartes = false;
    		car=this.cont.getBytesLoaded() 
    		tot=this.cont.getBytesTotal()  
    		percentuale = Math.floor((this.cont.getBytesLoaded()/tot)*100);
    		Int(this.cont.getBytesTotal()/1024) 
    		_root.cont_perc.perc.text = percentuale+"% ";
    		if (car == tot && car > 1024) {
    			_root.superPartes = true;
    			larg =this.cont._width;
    			alt = this.cont._height;
    			_root.resizeimg._height=0
    			_root.resizeimg._width=0
    			_root.cont_perc.perc.text = "";
    			_root.resizeimg._alpha=100
    			_root.resizeimg.onEnterFrame = function() {
    				if (this._width<=larg-1 && this._height <=alt-1) {
    					myResize(this,larg+20,alt+20,4)
    					trace("largh resizeimg="+this._width+" alt resizeimg="+this._height+alt+larg)
    					trace("sto scalando " + this._width)
    				} else {
    					_root.big._x =_root.resizeimg._x-larg/2;
    					_root.big._y =_root.resizeimg._y-alt/2;
    					_root.big.cont._alpha = 100;
    					var scale:Object = new ScaleSquare(_root.big, 4,4,_root.big._width, _root.big._height, true, Elastic.easeOut);
    					_root.cont_slide_expo._y = _root.big._y+_root.big._height + 30
    					_root.dx._y = _root.big._y+_root.big._height + 55
    					_root.sx._y = _root.big._y+_root.big._height + 55
    					_root.totalefoto._y = _root.big._y+_root.big._height +35
    					trace("cancello il resize")
    					foto++;
    					delete this.onEnterFrame;
    				}
    			}
    			delete this.onEnterFrame;
    		}
    	}
    	trace(foto+""+totali)
    	if (foto == totali){
    		clearInterval(intervalID)
    	}
    }
    
    _root.slide.onRelease=function(){
    	this.enabled = false;
    	intervalID = setInterval(function(){
    					if(_root.superPartes){
    						slideImages()
    					}, 6000);
    }
    al massimo potresti sfruttare l'evento isFinished della mia classe così finchè quell'animazione non viene eseguita stai sicuro che non ci sarà il cambio di immagine

    ScaleSquare.isFinished (target:MovieClip):Boolean

    nel tuo caso dovresti fare una cosa tipo

    codice:
    _root.slide.onRelease=function(){
    	this.enabled = false;
    	intervalID = setInterval(function(){
    					if(scale.isFinished(_root.big)){
    						slideImages()
    					}, 6000);
    }

  3. #3
    purtroppo ora non mi parte neanche la slide And80!!
    -Nextart.it Graphic Solutions

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da nextart
    purtroppo ora non mi parte neanche la slide And80!!
    è vero, la prima volta la funzione dovrebbe essere lanciata manualmente, fai così

    codice:
    _root.slide.onRelease=function(){
    	if(scale == undefined){
    		slideImages();
    	} else {
    		intervalID = setInterval(function(){
    						if(scale.isFinished(_root.big)){
    							slideImages()
    						}, 6000);
    	}
    }
    anche così potrebbe comunque incartarsi... prova un po'

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da meyumi
    moderatoooooriiiiiii questo utente fa spam sul forum.....


    scusami ma se è una battuta non l'ho proprio capita

  6. #6
    primo passo: in effetti visualizza la prima foto ma poi non passa alla successiva...........

    ma scale rimane sempre undefined!!!!
    -Nextart.it Graphic Solutions

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da nextart
    primo passo: in effetti visualizza la prima foto ma poi non passa alla successiva...........

    ma scale rimane sempre undefined!!!!
    allora forse è il percorso che non corrisponde, scale dovrebbe trovarsi in _root, al massimo puoi dare un'occhiata agli oggetti in "Prova filmato" per vedere se lo scorgi nell'elenco

  8. #8
    scusa ma in che senso scale dovrebbe trovarsi in _root? cosa e' scale non e' una var?

    [edit] ovviamente se clicco sul tasto slide dopo che ha caricato la prima foto mi cambia foto correttamente, quindi non lo fa in automatico perche' scale e' sempre undefined....[/edit]
    -Nextart.it Graphic Solutions

  9. #9
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da nextart
    scusa ma in che senso scale dovrebbe trovarsi in _root? cosa e' scale non e' una var?

    [edit] ovviamente se clicco sul tasto slide dopo che ha caricato la prima foto mi cambia foto correttamente, quindi non lo fa in automatico perche' scale e' sempre undefined....[/edit]
    scale è un'istanza della classe ScaleSquare

    comunque se questa prima ipotesi non va, potresti provare con l'altra che ho lasciato in sospeso all'inizio, quella con valore booleano, in tal caso il tuo codice del pulsante cambierebbe con

    codice:
    _root.slide.onRelease=function(){
    	if(_root.superPartes == undefined){
    		slideImages();
    	} else {
    		intervalID = setInterval(function(){
    						if(_root.superPartes){
    							slideImages()
    						}, 6000);
    	}
    }

  10. #10
    ho già provato ma c'e' qualcosa che non va.
    cosi' funge la slide ma non aspetta che abbia finito prima di caricare la successiva!!
    _root.slide.onRelease=function(){
    slideImages();
    intervalID = setInterval(function(){
    if(_root.superPartes){
    slideImages()}
    }, 6000);
    }


    mentre con il tuo da questo errore e devo aggiungere la graffa dopo la chiamata a slideImage
    per non visualizzarlo...
    codice:
    **Errore** Scena=Scena 1, livello=AS, fotogramma=1:Linea 207: L'operatore '=' deve essere seguito da un operando
         						}, 6000);
    
    Totale errori ActionScript: 1 	 Errori segnalati: 1
    -Nextart.it Graphic Solutions

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.