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

Discussione: Adattameto Immagine

  1. #1

    Adattameto Immagine

    Salve, spero che questo topic nn sia ripetitivo, ho cercato se qualcuno avesse gia trattato questo tema ma nn mi pare di aver visto nulla di simile.

    il mio problema è abbastanza semplice, nel mio stage ho caricato un simbolo di tipo movieclip di dimensioni 60X60, al caricamento della pagina carico su questo simbolo una immagine da un link con il comando simbolo.loadMovie("url"); cio che vorrei è che se l'immagine caricata e piu grande della dimensione del mio simbolo, questo venisse adattato automaticamente per evitare che mi vada a coprire altri elementi dello stage.

    Spero di essere stato chiaro, Grazie in anticipo...

    Saluti.

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    per ottenere quello che chiedi hai bisogno di un preload che a fine caricamento si occupi di ridimensionare l'immagine in base alla dimensione prestabilita (60x60 nel tuo caso)

    intanto devi sapere e tenere ben presente che il LoadMovie è un comando "distruttivo" (catastrofico ), nel senso che quando viene invocato, elimina ogni cosa esistente nel clip, comprese dimensioni iniziali e qualsiasi elemento al suo interno, sostituendo tutto con l'immagine o l'swf caricato dall'esterno

    se lavori con Flash Mx 2004 o superiore puoi agire sul caricamento utilizzando la classe MovieClipLoader... per saperne di più puoi leggere l'articolo che ho linkato in firma

    altrimenti ci sarebbe anche una cosetta che ho scritto tempo fa, ma che devo riprendere perchè in situazioni particolari ha presentato dei bug, lo trovi sempre nei miei articoli sotto "Preload.Object"

    intanto ti faccio un esempio per la tua situazione con il MovieClipLoader

    per cominciare ti dico subito che il LoadMovie deve essere eliminato e sostituito con il metodo loadClip

    l'esempio è il seguente

    codice:
    var mcLoader = new MovieClipLoader();
    var mcListener = new Object();
    mcListener.w = simbolo._width;
    mcListener.h = simbolo._height;
    mcListener.onLoadInit = function(target){
    target._width = this.w;
    target._height = this.h;
    }
    mcLoader.addListener(mcListener);
    mcLoader.loadClip("url.jpg", simbolo);

  3. #3
    Che dire.. sei stato fenomenale grazie mille dell'aiuto

  4. #4
    Mi è sorto un altro problema... con questa soluzione io tutte le volte che carico una pagina, il contenuto dell'immagine viene ricaricato da 0, se volessi creare un preload di tutte le immagini insieme per poi richiamarle volta per volta nella loro pagina di apaprtenenza come potrei fare??

  5. #5
    Utente di HTML.it L'avatar di byaur
    Registrato dal
    Aug 2004
    Messaggi
    1,061
    se ho ben capito, spero !!!, se devi caricare che so io 5 immagini, ti fai 5 mc come servono a te, nominandoli progressivamente cioè mc1,mc2,...,mc5 dopodiche carichi in ognuno la sua immagine utilizando la classe MovieClipLoader postata da And prima...

    se levuoi caricare tutte e 5 prima di varle visualizzare puoi fare cosi

    1) setti a _visible = false; ognuno dei mc (così eviti la visualizzazione appena finito)
    2) crei una variabile globale, oppure accessibile da dento gli eventi del movieClipLoader, diciamo ti crei una variabile sulla _root... var quante = 0; che conta quante foto hai gia caricato totalmente con il mc loader
    3) nell'evento onLoadComplete(), cioè quando è stata caricata l'immagine, incrementi il valore di _root.quante. se (_root.quante == 5) allora significa che tutte le immagini sui tuoi 5 mc sono state caricate, quindi puoi settare a _visible = true; tutte le foto oppure ti gestisci questa cosa come ti serve...

    è molto a parole, spero ti serva...

    Chi di noi non vorrebbe
    sollevare il velo sotto cui sta nascosto il
    futuro...
    David Hilbert

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    io te lo sconsiglierei vivamente, per evitare di occupare banda inutilmente

    comunque direi che puoi usare due soluzioni, una a livello Flash e un'altra a livello di Javascript

    in JS mi pare di ricordare che ci fosse una funzione che, richiamata dalla pagina html principale del sito, faceva il caching di tutte le immagini contenute in una determinata cartella, solo che non saprei indicarti dove cercare, mi pare che fosse una funzione preimpostata di DreamWeaver

    in Flash si complica un tantino, perchè comunque dovresti creare un clip per ogni immagine da caricare e questi clip dovrebbero essere invisibili per evitare che si vedano le immagini una volta caricate,

    in sostanza se ho capito bene, si tratterebbe di creare un preload multiplo "cumulativo", che quindi somma tutte le dimensioni delle immagini esterne e finchè tutte non sono caricate, non va avanti, insomma un bel fastidio per connessioni lente direi...

  7. #7
    avevo pensato ad una soluzione simile, solo che utilizzo uno stage singolo per visualizzare "n" notizie, ognuna delle quali ha un immagine diversa...quindi come posso al caricamento della pagina inserire dentro il mc corrispondente??

    in poche parole io dovrei

    a)scaricare i dati e le immagini delle notizie
    b)visualizzarle volta per volta in un singolo stage (con pulsanti next e back ricarico lo stage con la notizia e la foto corrispondente)

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    beh se lo stage è singolo ti dovrebbe bastare rendere visibile un determinato clip a seconda della notizia visualizzata

  9. #9
    gia, il prob e che nn sono esperto di flash io all'inizio del filmato carico tt le immagini con il sistema indicato da te:

    var mcLoader = new MovieClipLoader();
    var mcListener = new Object();
    mcListener.w = 70;
    mcListener.h = 70;
    mcListener.onLoadInit = function(target){
    target._width = this.w;
    target._height = this.h;
    }
    mcLoader.addListener(mcListener);
    var movie1 = new MovieClip();
    mcLoader.loadClip("logo.gif", "movie1");

    var movie2 = new MovieClip();
    mcLoader.loadClip("logo2.gif", "movie2");
    .
    .
    .
    .
    var movien = new MovieClip();
    mcLoader.loadClip("logon.gif", "movien");

    a questo punto io dovrei secondo la mia poca esperienza avere "n" clip che contengono le mie immagini..

    ora qualche step piu avanti nel mio progetto vorrei caricare questi clip dentro degli oggetti presenti sullo stage, nel mio caso avro nel mio stage:

    un istanza di movieclip di nome img1
    due campi di testo
    due pulsanti

    al caricamento dello stage io vorrei che nell'istanza di movieclip si caricasse l'immagine che avevo precedentemente salvato, se poi cambio notizia al ricaricarsi dello stage oltre che a cambiare i testi, dovrebbe caricare un clip diverso....

  10. #10
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    i movieclip in AS1 e AS2 non si creano in quel modo, si creano con createEmptyMovieClip

    quindi riprendendo il codice precedente

    var movie1 = this.createEmptyMovieClip("movie1", 1);
    mcLoader.loadClip("logo.gif", "movie1");

    var movie2 = this.createEmptyMovieClip("movie2", 2);
    mcLoader.loadClip("logo2.gif", "movie2");

    e così via

    in questo modo hai effettivamente creato dei clip che sono sullo stage e conterranno le immagini esterne (saranno sovrapposte e allineate in alto a sinistra, ma potrai spostarle a tuo piacimento sempre nella zona in cui indichi le nuove proprietà dell'immagine

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.