Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 30
  1. #11
    ancora problemi
    ho provato ad impostare l'azione trace(car); per visualizzare l'andamento dei byte caricati.
    nella finestra di output visualizzo un moltiplicarsi all'infinito dei byte caricati e, di conseguenza, man mano che il preload avanza, il numero di byte aumenta a dismisura e il preload rallenta progressivamnete fino pressoche a fermarsi
    non esistono che molteplici parvenze e contraddittorie sembianze della stessa apparenza

  2. #12
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da perseogiugno75
    ancora problemi
    ho provato ad impostare l'azione trace(car); per visualizzare l'andamento dei byte caricati.
    nella finestra di output visualizzo un moltiplicarsi all'infinito dei byte caricati e, di conseguenza, man mano che il preload avanza, il numero di byte aumenta a dismisura e il preload rallenta progressivamnete fino pressoche a fermarsi
    è vero, che stupido! questo non l'avevo proprio considerato... il fatto è che prima le variabili "car" e "tot" venivano continuamente rigenerate partendo da 0... quindi non c'era la somma tra i vari clip da caricare

    ora invece car viene sempre aumentato perchè invece di ripartire da 0 nel calcolo presegue ad aumentare esponenzialmente ad ogni passaggio

    beh... non c'è due senza tre... proviamo una via di mezzo

    codice:
    function onLoadFinished() {
    	// azioni al caricamento completato
    }
    function summedPreload(target, name, numOfLoad) {
    	var car = 0;
    	var perc = 0;
    	for (var i = 0; i<=numOfLoad; i++) {
    		car += target[name+i.toString()].getBytesLoaded();
    		tot += target[name+i.toString()].getBytesTotal();
    	}
    	perc = Math.floor((car/tot)*100);
    	if (!isNaN(perc)) {
    		// azioni di visualizzazione del preload
    	}
    	if (car>=tot && tot>perc && perc == 100) {
    		clearInterval(a);
    		onLoadFinished();
    	}
    }
    for (i=0; i<=29; i++) {
    	this.createEmptyMovieClip("img"+i, i);
    	this["img"+i].loadMovie("big/"+i+".jpg");
    }
    var tot = 0;
    a = setInterval(summedPreload, 200, this, "img", 29);
    scusa se vado a tentoni ma non sono molto concentrato oggi

  3. #13
    sei sin troppo gentile...
    allora...la situazione diventa man mano empre più bizzarra...
    stavolta il preload sembra partire da un valore alto (tipo un 40%)
    per poi diminuire progressivamente fino a zero!!!
    qua ne usciamo matti!!!
    non esistono che molteplici parvenze e contraddittorie sembianze della stessa apparenza

  4. #14
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    come ti dicevo... ieri non ero molto concentrato... infatti di sera ho riguardato il codice e... :master: il primo codice doveva essere corretto... forse è solo una questione di tempo, avevi provato come ti avevo detto ad aumentare il tempo di esecuzione dell'intervallo? io dovrei provare per dirti cosa va e cosa non va, solo che non posso... magari se riesco... stasera, ma più probabilmente domani o più avanti, mi spiace ma...

  5. #15
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    allora, ho testato lo script... l'ho riscritto identico a questo (su un altro pc dove non c'è internet), facendolo differire per una sola cosetta, invece di scrivere target[name+i.toString()], ho scritto target[name+i]... anche se mi pare strano che sia questo il problema... comunque ho provato e funziona correttamente

    ora diciamo che riprovi il codice in questo modo e se non funziona mi sa che il problema è da cercare da un'altra parte del filmato :master:

    codice:
    function onLoadFinished(){
    // azioni al caricamento completato
    }
    
    function summedPreload (target, name, numOfLoad) {
    	var car = 0;
    	var tot = 0;
    	var perc = 0;
    	for (var i = 0; i<= numOfLoad; i++){
    		car+= target[name+i].getBytesLoaded();
    		tot+= target[name+i].getBytesTotal();
    	}
    	perc = Math.floor((car/tot)*100);
    	if(!isNaN(perc)){
    		// azioni di visualizzazione del preload
    	}
    	if(car >= tot && tot > perc && perc == 100){
    		clearInterval(a);
    		onLoadFinished();
    	}
    }
    
    for (i=0; i<=29; i++) {
    	this.createEmptyMovieClip("img"+i, i);
    	this["img"+i].loadMovie("big/"+i+".jpg");
    }
    a = setInterval(summedPreload, 200, this, "img", 29);

  6. #16
    eccomi di nuovo qui...
    nel ringraziarti per l'attenzione ti aggiorno dugli ultimi sviluppi.
    anche l'altra versione del tuo script, in locale, funziona...
    quel caos del quale abbiamo parlato accade solo in rete.
    ho provato a cambiare in altri diversi modi il tempo del setInterval, ma niente da fare.
    ancora un dettaglio...
    se lascio la stringa da te segnalata (if(!isNan(perc); il mio filmato parte prima ancora che tutte le immagini siano state caricate.
    quindi, dovendo anche caricare le miniature di suddette immagini, ho provato a modificare il tuo script (andando un po per tentativi) e sono riuscito a modificarlo affinche sia una sorta di preload "doppio" sia per le miniature che per le immagini, con due barre di caricamento.
    ho risolto anche il fatto del filmato che partiva prima di aver caricato tutte le immagini.
    per farlo ho dovuto fare un'azione trace per verificare quanti erano i byte totali e poi ho dato quel numero di byte come limite.
    questo è il codice com'è attualmente:
    codice:
    stop();
    function summedPreload() {
    	tot_a = 0;
    	tot_b = 0;
    	car_a = 0;
    	car_b = 0;
    	for (var i = 0; i<=29; i++) {
    		tot_a += loader.jpg["j"+i].getBytesTotal();
    		tot_b += loader.thumb["t"+i].getBytesTotal();
    		car_a += loader.jpg["j"+i].getBytesLoaded();
    		car_b += loader.thumb["t"+i].getBytesLoaded();
    	}
    	trace("caricati "+tot_a);
    	perc_a = int((car_a*100)/tot_a);
    	perc_b = int((car_b*100)/tot_b);
    	loader.dati_img.text = "CARICAMENTO IMMAGINI "+perc_a+"%";
    	loader.dati_thumb.text = "CARICAMENTO MINIATURE "+perc_b+"%";
    	loader.barra_image._xscale = perc_a;
    	loader.barra_thumb._xscale = perc_b;
    	if (car_a == tot_a && perc_a == 100 && car_a>=956397 && car_b == tot_b && perc_b == perc_a && car_b>=54981) {
    		_root.gotoAndPlay("via");
    		clearInterval(a);
    	}
    	if (car_a == tot_a && perc_a == 100 && car_a>=956397) {
    		loader.dati_img.text = "CARICAMENTO IMMAGINI TERMINATO";
    	}
    	if (car_b == tot_b && perc_b == 100 && car_b>=54981) {
    		loader.dati_thumb.text = "CARICAMENTO MINIATURE TERMINATO";
    	}
    }
    for (i=0; i<=29; i++) {
    	_root.loader.jpg.createEmptyMovieClip("j"+i, i);
    	_root.loader.jpg["j"+i].loadMovie("big/"+i+".jpg");
    	_root.loader.thumb.createEmptyMovieClip("t"+i, i);
    	_root.loader.thumb["t"+i].loadMovie("thumb/"+i+".jpg");
    }
    a = setInterval(_root.summedPreload, 50);
    //
    di nuovo grazie per l'attenzione
    non esistono che molteplici parvenze e contraddittorie sembianze della stessa apparenza

  7. #17
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    come già detto, non posso provare lo script, ma a occhio direi che stai forzando un po' il tutto in questo modo, considerato che le miniature peseranno comunque proporzionalmente meno delle immagini grandi, inoltre non mi convincono molto quegli if che hai messo... perchè hai impostato le dimensioni massime di car_a e car_b a 956397 e 54981? cosa sono quelle due cifre?

    un'altra cosa... io nella mia prova ho impostato l'intervallo a 200 e non a 50 e il caricamento è corretto

    ultima cosa... if(!isNaN(perc)) non è un controllo particolare... serve solo per evitare "sballamenti" nel preload grafico (la barra) e fa in modo che si veda il movimento della barra solo quando la variabile è stata inizializzata ed è "piena"

    ora... per capire il problema del tuo codice dovrei provare, ma non ho flash e non credo fino a sabato di poterlo fare,
    nel mentre ti do un consiglio... prova i due caricamenti in maniera separata, con il codice originale (quello di questo post), dovrebbe funzionare bene, sia in locale che sul web

  8. #18
    [OT]
    ...premesso che non farei mai una cosa del genere in modo particolare se le foto sono molte...
    [OT]

    ti posto un vecchio codice ...quei codici ...che il setInterval ( a me ostico ) hanno sostituto

    Codice PHP:
    // set dimensioni thumb
    dimTH_W 100
    dimTH_H 
    100
    // numero max di foto
    MaxFoto 50
    // dir e suffisso foto
    path "images/pic"
    // set variabili
    ofCAR=0
    ofTOT
    =0
    // clip barra preload sullo stage scalata a zero
    preload._xscale=0

    // creo container
    this.createEmptyMovieClip("container",1)

    // creo ciclo che mi compone tutti i thumb in fila orizzontale
    for(I=1;I<=MaxFoto;I++){
        
    container.createEmptyMovieClip("box"+I,I)
        
    container["box"+I].createEmptyMovieClip("img",1)
        
    container["box"+I]._x=dimTH_W*dimTH_H // le metto tutte in riga vicine
        
    container["box"+I].img.loadMovie(path+I+".jpg")
        
    container["box"+I].img._alpha=0
            container
    ["box"+I].onEnterFrame=function(){
            
    this.tot this.img.getBytesTotal()
            
    this.car=  this.img.getBytesLoaded()
                             
    /* verifico che non ci siano img nel contesto generale
                                che possano farmi tornare indietro la barra di avanzamento */

            
    if((this.car/this.tot*100) >= ofCAR){
                
    ofCAR=(this.car/this.tot*100)
            }

            if(
    this.car == this.tot && this.car 1024){
                
    ofTOT+=1
                this
    .img._width 100
                this
    .img._height 100
                
    // finito caricamento
                
    delete this.onEnterFrame
            
    }
        }
        
    }

    function 
    conteggia(){
       
    this.onEnterFrame=function(){
            
    // faccio avanzare la barra
            
    preload._xscale=Math.floor(ofCAR)
            
    // se tutte le foto sono state caricate
            
    if(ofTOT == MaxFoto){
                  
    // accendo l'alpha
         
    for(K=1;K<=MaxFoto;K++){
             
    container["box"+K].img._alpha=100
         
    }
         
    delete this.onEnterFrame
         preload
    ._visible=0
            
    }
       }
    }
    conteggia() 
    Ciao

  9. #19
    grazie anche a rempox per il suo intervento...vado ad illustrare...
    purtroppo il problema "andirivieni" del preload continua ad essere presente.
    la barra del preload ed il relativo conteggio della percentuale fanno riferimento ad una sola immagine alla volta, ossia, carica la prima immagine fino al 100% per poi ripartire dalla seconda e cosi via...
    Vi ringrazio delle vostre soluzioni che comunque mi hanno fatto ottenere un notevole risultato che non avrei avuto senza il vostro intervento.
    va benissimo così...avete fatto sin troppo
    grazie mille e alla prossima
    non esistono che molteplici parvenze e contraddittorie sembianze della stessa apparenza

  10. #20
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da perseogiugno75
    grazie anche a rempox per il suo intervento...vado ad illustrare...
    purtroppo il problema "andirivieni" del preload continua ad essere presente.
    la barra del preload ed il relativo conteggio della percentuale fanno riferimento ad una sola immagine alla volta, ossia, carica la prima immagine fino al 100% per poi ripartire dalla seconda e cosi via...
    Vi ringrazio delle vostre soluzioni che comunque mi hanno fatto ottenere un notevole risultato che non avrei avuto senza il vostro intervento.
    va benissimo così...avete fatto sin troppo
    grazie mille e alla prossima
    certo che comunque è strano che ti si verifichi il problema in questo modo...

    a volte capita che quando fai molti cambiamenti, correzioni, metti e togli cose dalla libreria e dallo stage, il .fla si "corrompe" e inizia a creare problemi... non vorrei che in finale fosse solo questo il problema...

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 © 2026 vBulletin Solutions, Inc. All rights reserved.