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

    verifica esistenza immagine

    hi everybody
    dunque, ho un filmato che carica delle immagini *.jpg predefinite (1,2,3,4...ecc)
    è possibile gestire l'errore "l'immagine non è presente nel server"?
    mi spiego meglio,
    l'immagine viene caricata in una sorta di "cornicetta", tutto ciò in un unico mc, vorrei che questa cornice però non venisse visualizzata nel momento in cui l'immagine non esista...come faccio a verificare ciò?

    penso ci sia bisogno di utilizzare le variabili di caricamento (tipo getBytesLoaded/Total) ma nn saprei da dove cominciare...idee?
    Grazie
    ...Ignorance is bliss...

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    puoi utilizzare al posto del classico loadMovie, la classe MovieClipLoader che ha un metodo dedicato agli errori, onLoadError

  3. #3
    ok provo
    thnx
    ...Ignorance is bliss...

  4. #4
    non ci riesco....

    Codice PHP:
    onClipEvent (load) {
        
    _root.pushed 0;

        for (
    i=1i<15i++) {
            
    _root.fot.duplicateMovieClip("fot"+ii);

            
    /////////////listener+MCL
            
    var loader:MovieClipLoader = new MovieClipLoader();
            var 
    loadListener:Object = new Object();
            
    loadListener.onLoadStart = function(loadTarget) {
                
    trace(i)
                
    _root["fot"+i]._visible false;
            };
            
    loader.addListener(loadListener);
            
    loader.loadClip("images/thumbs/"+(Number(i)+(15*_root.pushed))+".jpg"_root["fot"+i].into);

            
    //loader.removeListener(loadListener);
        
    }

    non capisco perchè ma se rimuovo il listener non mi restituisce il trace, se lo elimino me ne dà 15 tutti uguali....
    se metto onLoadError (quello che mi serve) poi nn mi fa proprio niente in nessuno dei casi....

    il fatto è questo, io di listener e le classi sn poco pratico, per quel che ne so i problemi potrebbero essere:

    1)ho messo tutto nel clipevent (LOAD)
    2)lo script gira in un for (ogni volta ricreo un oggetto con lo stesso nome...?)
    3)non rimuovo i listener

    ma nn so...qlkuno mi aiuta?
    ...Ignorance is bliss...

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da seafarer
    non ci riesco....

    1)ho messo tutto nel clipevent (LOAD)
    2)lo script gira in un for (ogni volta ricreo un oggetto con lo stesso nome...?)
    3)non rimuovo i listener
    1) esatto... perchè usare il clipevent quando non serve assolutamente?!
    2) potrebbe darsi... ma più che altro dipende da come hai strutturato il codice... nel for dovrebbe andarci solo questa riga -->
    loader.loadClip("images/thumbs/"+(Number(i)+(15*_root.pushed))+".jpg", _root["fot"+i].into);
    3) no, affatto il listener va bene lasciarlo com'è... raramente ti risulta necessario toglierlo, più che altro per altre questioni...

    codice:
    _root.pushed = 0;
    var loader:MovieClipLoader = new MovieClipLoader();
    var loadListener:Object = new Object();
    loadListener.onLoadStart = function(loadTarget) {
    	loadTarget._parent._visible = false;
    };
    loadListener.onLoadError = function(loadTarget, error) {
    	trace(error);
    }
    loader.addListener(loadListener);
    for (i=1; i<15; i++) {
    	_root.fot.duplicateMovieClip("fot"+i, i);
    	loader.loadClip("images/thumbs/"+(Number(i)+(15*_root.pushed))+".jpg", _root["fot"+i].into);
    }
    non conoscendo la situazione non posso essere certo che il codice vada bene o no... dipende da quali sono le tue intenzioni

  6. #6
    prova con un while (nota non ho provato lo script quindi non so se funzia):

    Codice PHP:
    var endloadtotale false;
    var 
    endload true;
    var 
    0;
    _root.pushed 0;

    var 
    loadListener:Object = new Object();
    loadListener.onLoadError = function(target_mc:MovieCliperrorCode:StringhttpStatus:Number) {
         
    trace(">> loadListener.onLoadError()");
         
    trace(">> ==========================");
         
    trace(">> errorCode: " errorCode);
         
    trace(">> httpStatus: " httpStatus);
    }

    loadListener.onLoadComplete = function(target_mc:MovieCliphttpStatus:Number):Void {
         
    trace(">> loadListener.onLoadComplete()");
         
    trace(">> =============================");
         
    trace(">> target_mc._width: " target_mc._width); // 0
         
    trace(">> httpStatus: " httpStatus);
         
    endload true;
    }


    var 
    mcLoader:MovieClipLoader = new MovieClipLoader();
    mcLoader.addListener(loadListener);
    _root.fot.duplicateMovieClip("fot"+ii);

    while(
    endloadtotal == false){
    if(
    endload==true
          {
           
    _root.fot.duplicateMovieClip("fot"+ii);                   
           
    mcLoader.loadClip("images/thumbs/"+(Number(i)+(15*_root.pushed))+".jpg"_root["fot"+i].into);
            
    i++;
            
    endload false;
           }
    if(
    i==15endloadtotal true;


  7. #7
    Originariamente inviato da and80
    1) esatto... perchè usare il clipevent quando non serve assolutamente?!
    2) potrebbe darsi... ma più che altro dipende da come hai strutturato il codice... nel for dovrebbe andarci solo questa riga -->
    loader.loadClip("images/thumbs/"+(Number(i)+(15*_root.pushed))+".jpg", _root["fot"+i].into);
    3) no, affatto il listener va bene lasciarlo com'è... raramente ti risulta necessario toglierlo, più che altro per altre questioni...

    codice:
    _root.pushed = 0;
    var loader:MovieClipLoader = new MovieClipLoader();
    var loadListener:Object = new Object();
    loadListener.onLoadStart = function(loadTarget) {
    	loadTarget._parent._visible = false;
    };
    loadListener.onLoadError = function(loadTarget, error) {
    	trace(error);
    }
    loader.addListener(loadListener);
    for (i=1; i<15; i++) {
    	_root.fot.duplicateMovieClip("fot"+i, i);
    	loader.loadClip("images/thumbs/"+(Number(i)+(15*_root.pushed))+".jpg", _root["fot"+i].into);
    }
    non conoscendo la situazione non posso essere certo che il codice vada bene o no... dipende da quali sono le tue intenzioni
    Grazie, così funziona!!!!!Allora era quello il problema, ogni volta ricreava il listener e quindi era come se non lo creasse mai perchè andava a "sovrascriverlo"...uff meno male
    Cmq il clipEventLoad mi serve eccome, il filmato che ho creato deve essere avviato proprio quando il clip in questione viene caricato per la prima volta!

    grazie anche a marcusjubei ma lo script mi va in loop...

    Thank you so much!
    ...Ignorance is bliss...

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ah, ok... comunque fattibile anche questo da timeline grazie agli eventi così

    MovieClip.onLoad = function(){
    // azioni
    }

    diciamo che è il modo che preferisco e che ormai utilizzo unicamente, per una questione di ordine e reperibilità del codice, poi chiaramente ognuno lavora a modo suo

  9. #9
    ...Ignorance is bliss...

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.