Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di gnola
    Registrato dal
    Jun 2001
    Messaggi
    603

    Caricare foto sempre al centro...

    Ciao a tutti ho un problemino con una gallery...

    Ho delle miniature di foto che al click devono ingrandirsi.....io ho messo così un MC al centro dello stage che inizlamente non è visibile ma al click sulla miniatura diventa visibile e carica la foto grande dall'esterno....Il problema è che non tutte le foto hanno la stessa dimensione...alcune sono verticali altre più piccole ecc...come faccio a fare in modo che il MC con la foto grande si adatti alle giuste dimensioni e soprattutto sia sempre al centro dello schermo??? Ho un problema con le coordinate.....mi carica la foto allineata all'angolo sinistro in alto quindi non è mai al centro dello stage.....

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    devi dargli le nuove impostazioni una volta che l'immagine esterna è caricata, per questo hai bisogno di un preload... ti consiglio di fare così:

    - crei un ulteriore clip vuoto dentro quello che hai già creato al centro dello stage
    - trovi un preload che abbia una funzione di verifica del "caricamento avvenuto" (puoi usare MovieClipLoader se stai su mx 2004 o superiore)
    - sposti via codice il nuovo clip creato dentro quello che già avevi... la formula è sempre la stessa qualsiasi sia la dimensione dell'immagine caricata...

    target._x = -target._width/2;
    target._y = -target._height/2;

    dove target è il nome del clip in cui viene caricata la foto

  3. #3
    Utente di HTML.it L'avatar di gnola
    Registrato dal
    Jun 2001
    Messaggi
    603
    Non mi funziona...forse ho fatto male io....mi carica la foto sempre in alto a sinistra dello stage alle coordinate 0 0

    Allora io ho fatto così:
    Ho creato un MC vuoto da codice mettendo sul frame questo:

    var container:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
    container._x = 0;
    container._y = 0;

    Sul bottone della miniatura invece ho inserito questo codice:

    on (release) {
    //carico la foto grande nel movieclip

    var fotobig:MovieClip = _root.container.createEmptyMovieClip("fotobig", 1, 0, 0, 0, 0);
    _root.container.fotobig.loadMovie("img/gallery/dettagli/foto1_big.jpg");

    _root.container.fotobig._x = -_root.container.fotobig._width/2;
    _root.container.fotobig._y = -_root.container.fotobig._height/2;
    }

    Cosa sbaglio?

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da gnola

    Cosa sbaglio?
    più che altro... cosa ometti... l'azione di spostamento va data dopo il preload, come ti ho scritto nel secondo punto dell'altro mio post

  5. #5
    Utente di HTML.it L'avatar di gnola
    Registrato dal
    Jun 2001
    Messaggi
    603
    Si hai ragione...è che il preload l'avevo proprio saltato per il momento visto che stavo lavorando in locale....e poi lì sorge un altro problema....stò cercando di inserire il codice del preload che hai suggerito te..quello con il file .as esterno ma naturalmente mi stò impiccando....ci devo perdere un pò di tempo per adattarlo alla mia situazione...ci provo..

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Originariamente inviato da gnola
    Si hai ragione...è che il preload l'avevo proprio saltato per il momento visto che stavo lavorando in locale....e poi lì sorge un altro problema....stò cercando di inserire il codice del preload che hai suggerito te..quello con il file .as esterno ma naturalmente mi stò impiccando....ci devo perdere un pò di tempo per adattarlo alla mia situazione...ci provo..
    magari prova ad utilizzare il MovieClipLoader al posto del mio (era del Preload.as che parlavi no).. non è difficile, ci vuole un po' per entrare nel meccanismo ma poi...

  7. #7
    Utente di HTML.it L'avatar di gnola
    Registrato dal
    Jun 2001
    Messaggi
    603
    Ci stò provando ma non riesco a farlo funzionare e ad adattarlo al mio caso....

    Stò provando su un documento a parte il solo preload con l'oggetto Listener come spiegato nell'articolo sul sito....nel mio caso però inizialmente non si deve caricare nessuna foto grande ma solamente dopo aver cliccato sulla miniatura...
    Quindi ho inserito nel frame questo codice:


    codice:
     
    //inizialmente il MC della foto non si vede
    target_mc.image_mc._visible = false;
    
    //creo la variabile che conterra le informazioni di quale filmato aprire
    var fileNumber:Number;
    //creo la variabile che conterrà il percorso dove prendere le immagini
    var folderPath:String;
    //creo una funzione che definisce le immagini da aprire e il loro path
    openImage = function (path:String, imageNo:Number) {
    fileNumber = imageNo;
    folderPath = path;
    }
    
    //creo il percorso del file da caricare in base alla scelta di Main
    var fileToLoad:String;
    fileToLoad = folderPath + "/" + fileNumber.toString() + ".jpg";
    stop();


    sul pulsanete della foto piccola invece ho associato questo:

    codice:
     
    on(release) {
    	//#######################################################
    //LISTENER PER IL CARICAMENTO DEL FILE JpG
    //#######################################################
    var loader:MovieClipLoader = new MovieClipLoader();
    //Crea un oggeto listener
    var loadListener:Object = new Object();
    loadListener.onLoadStart = function(loadTarget) {
    _root.target_mc.image_mc._visible = false;
    }
    loadListener.onLoadProgress = function(loadTarget, bytesLoaded, bytesTotal) {
    //calcolo la percentuale di avanzamento.
    var percentLoaded = Math.round (bytesLoaded/bytesTotal * 100);
    //aggiungo il simbolo % e creo una stringa
    percentuale = percentLoaded.toString() + "%";
    // Segno nel movie lo stato della percentuale
    loader_mc.percentual_txt.text = percentuale;
    }
    loadListener.onLoadComplete = function(loadTarget) {
    gotoAndStop("out");
    }
    loader.addListener(loadListener);
    //carico il filmato precedentemente calcolato nel movieclip prescelto
    loader.loadClip(fileToLoad, target_mc.image_mc);
    
    openImage("image", 1);
    stop();
    }

    Sò che ho sbagliato perchè così non mi vede nè la variabile dell'immagine che chiamo nè mi crea l'oggetto Loader...ma non sò perchè....non sò dove devo inizializzare l'oggetto Listener..


    Puoi darmi una mano??

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    fa' una cosa... cancella quel codice e scrivi questo nel pulsante

    codice:
    on (release) {
    	var mcList:Object = new Object();
    	var mcLoad:MovieClipLoader = new MovieClipLoader();
    	mcList.onLoadInit = function(target){
    		target._x = -target._width/2;
    		target._y = -target._height/2;
    	}
    	var fotobig:MovieClip = _root.container.createEmptyMovieClip("fotobig", 1, 0, 0, 0, 0);
    	mcLoad.addListener(mcList);
    	mcLoad.loadClip("img/gallery/dettagli/foto1_big.jpg", _root.container.fotobig);
    }

  9. #9
    Utente di HTML.it L'avatar di gnola
    Registrato dal
    Jun 2001
    Messaggi
    603
    Grazie!! Adesso funziona... però ho dovuto sostituire

    target._x = -target._width/2;
    target._y = -target._height/2;

    con questo
    target._x = (700 -target._width)/2;
    target._y = (350-target._height)/2;

    mettendo sia per la x che per la y l'esatta dimensione dello stage per calcolare le coordinate altrimenti mi visualizzava la foto in alto a sinistra... :master:

    Comunque sei stato gentilissiiimoooooooooo!! grazieee!

    ciao!

  10. #10
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    beh... chiaro, dovevi avere il clip container al centro perchè poi la foto risultasse al centro dello stage... comunque mi pare che hai capito il meccanismo vista la correzione che hai apportato allo script molto bene

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.