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

    Funzione associata a preload: dwnload veloce = funzione saltata

    questo è il preload
    Codice PHP:
    this.loader_box.loadMovie(_root.photo);
    idPreloadsetInterval(preLoad,10)
    function 
    preLoad()
    {
          
    loader_box._visible false;
         var 
    caricatiloader_box.getBytesLoaded();
        var 
    totaliloader_box.getBytesTotal();
        
    // calcolo la percentuale con la classica formula frazione*100 diviso il totale
        
    percentualeint((caricati*100)/totali)
        
    // visualizzo la percentuale 
        
    perc_txt.text=percentuale+" %";
        
    kbcaricatiint(caricati/1024)
        
    // la stessa cosa per i totali
        
    kbtotaliint(totali/1004)
        
    // visualizziamo adesso le informazioni
        
    bytesloaded_txt.text=kbcaricati+" kb";
        
    bytestotal_txt.text=kbtotali+" kb";
        
    // cambio la proprietà xscale della nostra barretta
        
    bar._xscalepercentuale;
        if (
    caricati>&& caricati>=totali)
        {
            
    clearInterval(idPreload);
            
            
    //queste due variabili risultano avere valore 0 se la velocità di dwnload è troppo elevata
            
    mcWidth _root.loader1.loader_box._width;
            
    mcHeight _root.loader1.loader_box._height;
            
            
    trace("w:" mcWidth "h:" mcHeight )
            
            }
    }; 
    Come scritto nei commenti ho il seguente problema:
    qui sopra ho un preload (che non ho scritto io). Terminato il caricamento dell'iimagine vorrei avere le misure di larghezza e altezza dell'mc nel quale è stata caricata l'immagine, perciò ho scritto le due variabili mcWidth e mcHeight. Ora, posto che il percorso _root.loader1.loder_box... è giusto, simulando il download ad una certa velocità (DSL) viene tracciato un valore diverso da 0 (con 0 grandezza iniziale dell'mc senza img ), mentre con velocità di download superiori restituisce un valore pari a 0.

    Sembra un difetto del preload che, se eseguito troppo velocemente salta ciò che sta all'intern dell'if... :master:

    crisi!
    http://www.2rlab.com
    God save the colours!

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    in realtà il problema è un attimo più articolato, riporto un paragrafo di un articolo che ho scritto recentemente sulla classe MovieLipLoader, per spiegare il problema dei preload tradizionali

    [...]la classe MovieClipLoader si occupa di eseguire tutte quelle operazioni di calcolo che fino a Flash 6 eravamo costretti a farci a mano, utilizzando i classici preload, spesso imprecisi e quasi sempre inutili per le funzioni da compiere nel momento in cui il file esterno risultava caricato, ad esempio se utilizzate il seguente script per caricare un'immagine e poi ridimensionarla, nella maggior parte dei casi non riuscirete a farlo:

    Codice PHP:
    function preload (target) {
        var 
    car target.getBytesLoaded();
        var 
    tot target.getBytesTotal();
        if(
    car == tot){
            
    target._width 300;
            
    target._height 300;
            
    clearInterval(a);
        }
    }
    mio_mc.loadMovie("img.jpg");
    setInterval(preload100mio_mc); 
    questo perchè effettivamente c'è uno stacco tra il momento in cui l'immagine è stata caricata in flash e il momento in cui quest'immagine è realmente fruibile a livello di codice. Con un normale preload questo lasso di tempo non è calcolato, mentre la classe MovieClipLoader[...]
    effettivamente dovrebbe essere possibile risolvere anche con un preload tradizionale, innestando una ulteriore condizione all'interno di quella che "risolve" il preload

    Codice PHP:
    if (caricati>&& caricati>=totali){
        if(
    _root.loader1.loader_box._width && _root.loader1.loader_box._height 0){
            
    clearInterval(idPreload);
            
    mcWidth _root.loader1.loader_box._width;
            
    mcHeight _root.loader1.loader_box._height;
            
    trace("w:" mcWidth "h:" mcHeight )
        }


  3. #3
    Ora provo, ad ogni modo dici che sfruttando la classe MovieClipLoader (+ listener probabilmente) la cosa diventi più precisa? Ora me la studio.

    Riapro il threat se ho problemi con la classe.

    Grazie 1000.
    http://www.2rlab.com
    God save the colours!

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da Rak
    Ora provo, ad ogni modo dici che sfruttando la classe MovieClipLoader (+ listener probabilmente) la cosa diventi più precisa? Ora me la studio.

    Riapro il threat se ho problemi con la classe.

    Grazie 1000.
    beh, la classe MovieClipLoader è dedicata a quello, con metodi precisi, quindi direi che è in ogni caso più precisa di altri metodi

  5. #5
    allora... io ho letto il tuo articolo di introduzione alla classe. Se volessi limitarmi a implementare quanto spiegato non avrei problemi, ma dato che voglio capire bene, se non hai nulla in contrario, ti romperei le balle.

    Vediamo se ho capito:
    1. MovieClipLoader è una classe che permette di caricare/monitorare lo stato del caricamento dei dati (immagini o swf) in un movieCLip;

    2. MovieClipLoader è sensibile, passami il termine, agli eventi onLoadStart, onLoadProgress, onLoadComplete, onLoadError e, importante, onLoadInit;

    ora, detto ciò, mi verrebbe spontaneo strutturare il tutto cs


    Codice PHP:
    var myClipLoader:MovieClipLoader = new MovieClipLoader();

    //e poi richiamare gli eventi associati alla classe, quindi
    myClipLoader.onLoadStart = function(){
    //...
    }

    //etc. 
    ma non funzia così perchè entra in ballo il Listener ed è a questo che vengono associati gli eventi, sbaglio? e solo in un secondo momento si associa il listener al MovieClipLoader.

    Non riesco a capire bene cosa sia questo listener e quale sia il suo ruolo, perché lo script non è come me lo sono immaginato io?
    http://www.2rlab.com
    God save the colours!

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.