Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    27

    Dimensionamento dinamico foto esterne

    Ciao,
    ho dato un'occhiata nel forum e in internet ma nn ho trovato la soluzione, forse a causa della versione di flash: sto usando la 6.
    Ho un'applicazione che mi carica dinamicamente delle foto esterne di dimensioni diverse (di largehzza fissa, ma di altezza variabile).
    Come faccio a verificare le dimensioni dell'immagine una volta caricata nel movie clip?
    Il caricamento dell'immagine viene effettuato con il metodo loadMovie:

    ...
    top.loadMovie(GlobalList[UsedIndex1],top);
    ...

    Dove top è il MovieClip che contiene la foto il cui nome è GlobalList[UsedIndex1]

    Ho provato con il MovieClipLoader, ma non mi funziona (non mi esegue i metodi relativi agli eventi onLoadInit, onLoadOnProgress...), credo che mi sfugga qualcosa..

    Qualche idea?

    Grazie
    Fabio

  2. #2
    ciao devi inserire un preload altrimenti non riesci a calcolare le dimensioni

    codice:
    tu devi caricare una foto all'interno di un clip "top" 
    che a sua volta contiene 
    
    il clip "img" vuoto per la foto 
    il clip "barra" per il preload 
    
    top.onEnterFrame=function(){ 
        /* fintanto che non mi sposto da questa frame
        eseguo ciclicamente i controlli/calcoli descritti
        */
        car=this.img. getBytesLoaded() // byte caricati
        tot=this.img. getBytesTotal()  // byte totali
        this.barra._xscale=Math.floor(car/tot*100) //rap. perc. caricamento
       if(car == tot && car > 1024){
          // qui ottieni le dimensioni dell'imamgine
          larghezza= this._width
          altezza=this._height
          this.barra._xscale=100 // solo per sicurezza
          this.img._alpha=100 // vedo la foto
          delete this.onEnterFrame  // cancello liberando la CPU da inutili controlli e carichi di lavoro
       } // fine if
    }// fine enterFrame
    -Nextart.it Graphic Solutions

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    27
    Grazie lo provo subito.
    Un dubbio: i 2 moviclip da creare all'interno di Top nn devono avere dimensioni? li creo da AS tramite il metodo createEmptyClip ?

    top.createEmptyMovieClip(img, 1);
    top.createEmptyMovieClip(barra, 1);

  4. #4
    si certo puoi crearli dimanicamente o inserili a "mano nel mc 'top'.....

    -Nextart.it Graphic Solutions

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    27
    Ho provato il codice, ma nn mi da i risultati sperati:
    Ho creato i 2 clip interni a top, e inserito il metodo onEnterFrame. Me lo esegue ma nn entra nel ramo dell'if. Se tolgo la condizione "car > 1024" mi ci entra, ma quando vado a stampare altezza e larghezza, ottengo sempre quelle del clip contenitore (top), nn quelle della . Ho provato pure a ceare come empty il clip top, ma cosi nn mi visualizza piu nemmeno l'imamgine.

    if(car == tot && car > 1024){
    // qui ottieni le dimensioni dell'imamgine
    larghezza= this._width
    altezza=this._height
    this.barra._xscale=100 // solo per sicurezza
    this.img._alpha=100 // vedo la foto
    delete this.onEnterFrame // cancello liberando la CPU da inutili controlli e carichi di lavoro
    } // fine if

  6. #6
    scusa , questo

    larghezza= this._width
    altezza=this._height

    deve diventare

    larghezza= this.img._width
    altezza=this.img._height

    per far riferimento all'immagine caricata.

    il codice onEnterFrame postato va messo dopo l'istruzione
    top.Loadmovie.......
    -Nextart.it Graphic Solutions

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    27
    Anche cosi ho lo stesso poblema di prima però.
    L'immagine mi si carica ma senza che ne riesca a controllare il caricamento progressivo.
    I metodi getBytesLoaded e getBytesTotal non mi restituiscono nessun valore.

    Codice:

    top.createEmptyMovieClip(img, 1);
    top.createEmptyMovieClip(barra, 1);
    top.loadMovie(GlobalList[UsedIndex1],img); // è corretto img come taget? o devo mettere top?
    top.onEnterFrame=function(){
    /* fintanto che non mi sposto da questa frame
    eseguo ciclicamente i controlli/calcoli descritti
    */
    trace("Strat EnterFrame");
    car=this.img.getBytesLoaded(); // byte caricati
    tot=this.img.getBytesTotal(); // byte totali
    trace("img.getBytesTotal: "+this.img.getBytesTotal() );
    trace("img.getBytesLoaded: "+this.img.getBytesLoaded());
    this.barra._xscale=Math.floor(car/tot*100) //rap. perc. caricamento
    //if(car == tot && car > 1024){
    if(car == tot){
    // qui ottieni le dimensioni dell'imamgine
    larghezza= this.img._width;
    altezza=this.img._height
    trace("larghezza foto= "+larghezza);
    trace("altezza foto= "+altezza);
    this.barra._xscale=100 // solo per sicurezza
    this.img._alpha=100 // vedo la foto
    delete this.onEnterFrame // cancello liberando la CPU da inutili controlli e carichi di lavoro
    } // fine if
    }// fine enterFrame

    Output:

    img.getBytesTotal:
    img.getBytesLoaded:
    larghezza foto=
    altezza foto=

    Dove sbaglio???

  8. #8
    top.img.loadMovie(GlobalList[UsedIndex1]);

    cosi.


    ciao
    -Nextart.it Graphic Solutions

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    27
    cosi nn mi carica piu nemmeno la foto.. :-(

  10. #10
    top.createEmptyMovieClip(img, 1);
    top.createEmptyMovieClip(barra, 2);
    // se non riempi la barra non vedrai mai nulla visto che è un clip vuoto
    // quindi disegnala a mano alta 10 larga 100 convertila in clip ed utilizza il metodo
    // attachMovie()
    codice:
    top.img.loadMovie(GlobalList[UsedIndex1]); 
    top.img._alpha=0
    top.onEnterFrame=function(){ 
         car=this.img.getBytesLoaded(); // byte caricati
         tot=this.img.getBytesTotal(); // byte totali
         // this.barra._xscale=Math.floor(car/tot*100) //rap. perc. caricamento
         if(car == tot && car > 1024){
             // Immagine caricata
             L = this.img._width;
             H = this.img._height
             this.img.onEnterFrame=function(){
                if(this._alpha<100){this._alpha+=10}else{delete this.onEnterFrame}
             }
             delete this.onEnterFrame 
         } 
    }

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.