Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: [MX] preload

  1. #1
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    [mx] maledetto preload =_='

    Ho fatto un preload che carica un swf casuale non su un livello ma dentro un mc.
    Ecco le azioni:
    Codice PHP:
    MovieClip.prototype.carica = function(nome){
        
    _root.cliploaded=false;
        
    this.loadMovie(nome);
        
    this.preload.onEnterFrame = function () {
            if (
    this.getBytesLoaded() == this.getBytesTotal() && this.getBytesLoaded() != undefined) {
                
    clearInterval(preloadID);
                
    delete this.preload.onEnterFrame;
                
    _root.cliploaded=true;
            }
        }
        
    preloadID setInterval(this.preload100);            

    dopodicchè lo richiamo così:
    Codice PHP:
    clp ###il mio clip random###
    randomclip.carica(clp);
    traceloading=###in un testo dinamico faccio stampare il nome del clip da caricare### 
    Il problema è che anche se specifico l'url assoluto, e leggo nell'istanza traceloading che in effetti il clip lo aggancia, sullo stage non vedo nessun clip caricato!

    why?
    わさび

  2. #2
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    oltretutto negli swf c'è un jpg con un effetto...
    il primo fotogramma di questi swf è vuoto.
    Per questo motivo ho settato la variabile cliploaded...
    in modo tale da dare in seguito un'istruzione del tipo
    Codice PHP:
    if (_root.cliploaded==truerandomclip.nextFrame(); 
    e mandarlo in riproduzione...
    ...ma non funziona ovviamente e quindi l'ho commentata...
    ma non funziona lo stesso =_='
    わさび

  3. #3
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    ho provato anche a tenere traccia della variabile _root.cliploaded facendomela stampare ma mi esce sempre false, perchè?
    p.s. ho utilizzato già lo stesso script in un altro caso e funzionava!
    わさび

  4. #4
    Tu hai scritto:

    codice:
    this.preload.onEnterFrame = function () {
    
            if (this.getBytesLoaded()
            
            ............
    Il movie lo carichi nella clip che è this nel prototype. Poi l'enterFrame lo attivi su this.preload.

    Il this al suo interno quindi si riferisce a "preload" e non alla clip contenitore...

    Questo è il problema principale che mi pare di aver riscontrato...

  5. #5
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da thunderlips
    Tu hai scritto:

    codice:
    this.preload.onEnterFrame = function () {
    
            if (this.getBytesLoaded()
            
            ............
    Il movie lo carichi nella clip che è this nel prototype. Poi l'enterFrame lo attivi su this.preload.

    Il this al suo interno quindi si riferisce a "preload" e non alla clip contenitore...

    Questo è il problema principale che mi pare di aver riscontrato...
    Già provato anche così
    Codice PHP:
    MovieClip.prototype.carica = function(nome){
        
    _root.cliploaded=false;
        
    this.loadMovie(nome);
        
    this.preload = function () { //this.preload.onEnterFrame
            
    if (this.getBytesLoaded() == this.getBytesTotal() && this.getBytesLoaded() != undefined) {//&& this.getBytesTotal()>1024
                
    clearInterval(preloadID);
                
    //delete this.preload.onEnterFrame;
                
    _root.cliploaded=true;
            }
        }
        
    preloadID setInterval(this.preload100);            

    ma il risultato non cambia
    わさび

  6. #6
    No, non hai afferrato ciò che intendevo...

    A parte il fatto che sarebbe meglio usare un'altra clip per poterla poi controllare più agevolmente ed evitare incasinamenti (limiti di Flash) che fanno perdere tempo. Come hai scritto tu ora è inutile, elimini l'enterFrame, quindi il controllo non avverrà mai!

    Devi fare una cosa del genere:

    codice:
    MovieClip.prototype.carica = function(path){
       this.createEmptyMovieclip("loader", 1);
       this.loader.loadMovie(path);
       this.onEnterFrame = function(){
          if(this.loader.getBytesLoaded() != undefined){
             if(this.loader.getBytesLoaded() >= this.loader.getBytesTotal()){
                // azioni a caricamento avvenuto
                delete this.onEnterFrame;
             }
          }
       };
    };

  7. #7
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da thunderlips
    No, non hai afferrato ciò che intendevo...

    A parte il fatto che sarebbe meglio usare un'altra clip per poterla poi controllare più agevolmente ed evitare incasinamenti (limiti di Flash) che fanno perdere tempo. Come hai scritto tu ora è inutile, elimini l'enterFrame, quindi il controllo non avverrà mai![...]
    ho provato al volo e adesso nel testo che verifica il caricamento mi da true! grazie infinite!!
    ora vedo di configurarlo ad hoc, ed eventualmente ti farò sapere

    :hail: :hail:
    わさび

  8. #8
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    C'è un motivo per cui online un 70% delle volte funziona e un 30% no?
    ecco lo script riadattato alle mie esigenze...
    Codice PHP:
    MovieClip.prototype.carica = function(path){
        
    _root.cliploaded=false;
        
    this.createEmptyMovieClip("loader"1); loader._x=210.0;loader._y=0.0;
        
    this.loader.loadMovie(path);
        
    this.onEnterFrame = function(){
            if(
    this.loader.getBytesLoaded() != undefined){
                if(
    this.loader.getBytesLoaded() >= this.loader.getBytesTotal()){
                    
    // azioni a caricamento avvenuto
                    
    delete this.onEnterFrame;
                    
    _root.cliploaded=true;
                }
            }
        };
    }; 
    ed ecco come carico il clip
    Codice PHP:
    var rnd;
    rnd NUMERORANDOM
    carica
    ("PATH");
    logo.onEnterFrame = function () {
        
    traceloading="loading "+rnd+".swf";
        if (
    _root.cliploaded==true) {
            
    delete logo.onEnterFrame;
            
    traceloading=rnd+".swf loaded";
            
    loader.play();
        }

    Come dicevo negli swf che carico il primo fotogramma è vuoto e c'è uno stop();
    al termine del loading mando in play();

    Allora: con
    loader.nextFrame();
    non funziona proprio
    con
    loader.play();
    funziona per un 70% dei casi,
    l'altro 30% leggo "1.swf loaded" ma non va in play
    わさび

  9. #9
    No no, non ci siamo, non hai ancora afferrato la logica del tutto...

    Innanzi tutto modifica ancora in questo modo il prototype


    Codice PHP:
    MovieClip.prototype.carica = function(path){
        
    _root.cliploaded=false;
        
    this.createEmptyMovieClip("loader"1); 
        
    this.loader.loadMovie(path);
        
    this.onEnterFrame = function(){
            if(
    this.loader.getBytesLoaded() != undefined && this.loader.getBytesLoaded() > 100){
                if(
    this.loader.getBytesLoaded() >= this.loader.getBytesTotal()){
                    
    // azioni a caricamento avvenuto (ad esempio mandi al frame che vuoi il tuo clip che è caricato dentro a "loader", quindi this.loader.nextFrame();)
                    
    delete this.onEnterFrame;
                    
    _root.cliploaded=true;
                }
            }
        };
    }; 
    Ovviamente devi usarlo il prototype come metodo e non come funzione generica, quindi:

    Codice PHP:
    tuaClipContenitore.carica("tuoFilmato.swf"); 

  10. #10
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da thunderlips
    No no, non ci siamo, non hai ancora afferrato la logica del tutto...

    Innanzi tutto modifica ancora in questo modo il prototype [...]
    Ho fatto come mi hai detto ma non risco a mandare in play il mio swf esterno. Ho verificato nella cache che effettivamente sia stato caricato come dalla finestrella di testo dove stampo l'esito ma ho ancora problemi...

    Ho lasciato il preload che mi hai dato tu invariato e ho messo nel fotogramma dove carico il filmato così:
    Codice PHP:
    _root.randomclip.carica("urlassoluto"+rnd+".swf");
    // a proposito mi funziona solo con url assoluti! =_='
    _root.logo.onEnterFrame = function () {
        
    traceloading="loading \"rnd"+rnd+".swf\"";
        if (
    _root.cliploaded==true) {
            
    delete _root.logo.onEnterFrame;
            
    traceloading="\"rnd"+rnd+".swf\" loaded";
            
    _root.randomclip.nextFrame();
        }

    la randomclip è una clip vuota piazzata sullo stage a una _x e _y definite.
    Se uso:
    _root.randomclip.nextFrame();
    non succede nulla
    se uso:
    _root.randomclip.loder.play();
    mi esce fuori l'immagine contenuta nella clip "stirata"!!
    E' come se fosse stata tirata e stretchata ... aiuto
    わさび

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.