Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117

    Ridimensionare immagine caricata dinamicamente

    Salve io carico una jpg dinamicamente con la classe MovieClipLoader

    Codice PHP:
    var mcL:MovieClipLoader = new MovieClipLoader();
    var 
    mmm:Object = new Object();

    mcL.loadClip(_root.offerte["immagine"+idOfferta],miaImg);

    mmm.onLoadProgress = function() {
        
    carMovie _root.miaImg.getBytesLoaded();
        
    totMovie _root.miaImg.getBytesTotal();
        
    percent Math.round((carMovie*100)/totMovie);
        
    percentuale.text percent+"%";
        
    _root.miaImg.stop();
    };

    mcL.addListener(mmm);
    mmm.onLoadInit = function() {
        
    miaImg.play();
        
    percentuale.text "";
    }; 
    come vedete ho inserito un piccolo preloader (un semplice testo dinamico che visualizza la percentuale)

    Il mio problema è che io vorrei ridimensionare l'immagine, non voglio che mantenga le proporzioni (quindi nn uso _xscale) ma che diventi dell'esatta dimensione che voglio io...

    ho provato nell'evento onLoadInit a inserire

    Codice PHP:
    miaImg._width=100 
    Ma se uso le proprietà _width o _height nn mi visualizza + l'immagine...

    Come posso ridimensionare l'immagine e a piacimento?

    PS: Ho notato che se dopo miaImg.play() metto

    Codice PHP:
    xImg=miaImg._width;
    yImg=miaImg._height;
    trace("Misure: "+xImg+"x"+yImg); 
    Mi restituisce valore "0" per le due dimensioni, se invece lo stesso codice lo metto in un bottone e lo metto in un secondo momento funziona...

    Ma l'evento onLoadInit non è quello che decreta il completo caricamento e messa a disposizione del contenuto caricato per le varie manipolazioni?!?

    HELP !!!

    GRAZIE!!!


  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    devi inizializzare tutti gli eventi prima di assegnare il listener alla classe
    nel tuo caso l'errore è che assegni prima il listener e poi inizializzi la funzione onLoadInit

    ah, con la classe MovieClipLoader, prova ad usare i riferimenti che mettono a disposizione gli eventi
    ad esempio, onLoadProgress mette a disposizione un riferimento al clip processato, uno a loadedBytes e uno a totalBytes

    Codice PHP:
    mmm.onLoadProgress = function(mlt) {
        
    percent Math.floor((l/t)*100);
        
    percentuale.text percent+"%";
        
    m.stop(); // non capisco il perchè di questa riga
    }; 
    mentre onLoadInit mette a disposizione il solo riferimento al clip

    Codice PHP:
    mmm.onLoadInit = function(m) {
        
    m._width 100;
        
    m._height 70;
        
    m.play(); // se quello che viene caricato è un'immagine questa riga è inutile
        
    percentuale.text "";
    }; 

  3. #3
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Non ho capito nulla!
    sta classe la uso ma nn la capisco molto...

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ogni funzione preimpostata (onLoadProgress, onLoadInit, onLoadStart ecc...) richiama dei parametri nel suo utilizzo, lo fa automaticamente, senza che tu intervenga, l'unica cosa che devi fare tu nel codice è di indicare i parametri che vuoi utilizzare
    nella reference della classe, per ogni evento, trovi quali parametri puoi passare alla funzione
    se li passi, poi li puoi sfruttare nel codice e non è necessario ad esempio usare getBytesLoaded o getBytesTotal all'interno di onLoadProgress, perchè i due valori di cui hai bisogno vengono già passati come parametri della funzione e possono essere usati dentro la funzione stessa come "riferimenti", ad esempio al movieclip che carica in quel momento il file esterno

    ad esempio l'evento onLoadInit ha questo tipo di costruzione:

    onLoadInit = function([target_mc: MovieClip]) {}

    significa che nella costruzione della funzione, puoi passare un valore "forfettario" per il target, da usare poi dentro il codice stesso

    il discorso è un tantino articolato, la soluzione comunque nel tuo caso è nelle prime righe del mio post precedente

  5. #5
    praticamente il tuo codice viene così:

    Codice PHP:

    var mcL:MovieClipLoader = new MovieClipLoader();
    var 
    mmm:Object = new Object();

    mmm.onLoadProgress = function(mlt) {
        
    percent Math.round((l*100)/t);
        
    percentuale.text percent+"%";
    };

    mmm.onLoadInit = function(m) {
        
    m._width 50;
        
    m._height 50;
        
    percentuale.text "";
    };

    mcL.loadClip(_root.offerte["immagine"+idOfferta],miaImg);
    mcL.addListener(mmm); 
    Grazie ad and80, non sapevo ke il Listener andasse impostato dopo aver dichiarato gli eventi associati...

    Ciao Bambola!

  6. #6
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    ah...ecco ho messo come target il nome istanza dell'mc in cui carico l'immagine!

    Giusto per la cronaca se avessi messo un altro nome avrebbe funzionato lo stesso ma nn capisco il perchè...cioè se nn metto il nome istanza del mc contenitore come fa il flash a sapere che il _width è quello?

    (questa è solo una curiosità)

    Cmq funziona graziie!

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da StefanoV
    Grazie ad and80, non sapevo ke il Listener andasse impostato dopo aver dichiarato gli eventi associati...
    fortunatamente in AS3 hanno eliminato la boiata di dover creare un Object come ascoltatore di eventi, e gli eventi si richiamano direttamente uno alla volta se servono

  8. #8
    Per Logica(quindi nn so se è giusto), le soluzioni sono 2:

    1. Non puoi omettere il MC Contenitore
    2. Di Default prende il Clip in cui ti trovi...

    Se ho sbagliato, smentitemi!

    EDIT: è vero and80... meglio AS3... mi trovo meglio... su AS2 succedono un sacco di cose strane... Veronica sa di che parlo!

  9. #9
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da Veronica80
    ah...ecco ho messo come target il nome istanza dell'mc in cui carico l'immagine!

    Giusto per la cronaca se avessi messo un altro nome avrebbe funzionato lo stesso ma nn capisco il perchè...cioè se nn metto il nome istanza del mc contenitore come fa il flash a sapere che il _width è quello?

    (questa è solo una curiosità)

    Cmq funziona graziie!
    puoi mettere qualsiasi nome, perchè si tratta solo di un parametro passato, è come quando crei una funzione del genere

    Codice PHP:
    function traccia(s) {
        
    trace(s);

    s è un parametro della funzione e quando usi la funzione lo sostituisci con il valore che intendi usare

    Codice PHP:
    traccia("ciao"); 
    nel caso di MovieClipLoader è l'oggetto stesso che usa il parametro, senza che tu debba fare nulla per dirgli che il parametro assumerà quel determinato valore (che per inciso è quello che passi alla funzione loadClip insieme all'url)

  10. #10
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Ah ecco! Ora capisco...

    Un'ultima cosa...

    siccome che quella classe la uso per caricare un anteprima di un img (si scrive l'URL in campo di testo e con moviecliploader carico la preview) mi succede che dopo la prima anteprima mi carica si le successive (ridimensionate) ma quando mi deve scrivere le dimensioni effettive dell'immagine mi scrive quelle che ho impostato per l'anteprima....

    mi spiego meglio:

    Codice PHP:
        mmm.onLoadInit = function(miaImg) {
            
    hImg Math.round(miaImg._height);
            
    wImg Math.round(miaImg._width);
            
    miaImg._width 250;
            
    miaImg._height 177;
            
    dimensioni.text wImg+"x"+hImg+" px";
            
    percentuale.text "";
        }; 
    hImg e wImg dovrebbero essere le dimensioni reali dell'immagine mentre 250x177 è il ridimensionamento...

    La prima la carica bene ma se cambio l'url dell'immagine e ricarico la funzione mi mette come dimensioni reali 270x177...

    Mi sto incartando anke a spiegarlo....

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.