Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    10

    Ridimensionare Immagini esterne

    Ciao a tutti..

    sono alle prese con un'animazione flash e xml che fa ruotare delle immagini. La richiesta potrà sembrare alquanto banale, ma purtroppo nel fare siti web ci sono talmente tante cose da sapere che spesso ci si portano avanti lacune anche basilari..

    Vorrei ridimensionare le immagini in modo che abbiano una altezza e una larghezza massima, in modo che se una delle due dimensioni dell'immagine supera il massimo (es: la larghezza) viene scalata l'immagine fino a raggiungere la larghezza massima fissata. Idem se fosse l'altezza a sforare.

    A occhio direi di confrontare le due dimensioni in modo da capire se il rapporto è minore o superiore al relativo rapporto tra altezza max e larghezza max, in modo da capire quale dimensione prendere come riferimento..

    ovviamente non ho idea di come farlo..

    In alternativa mi accontenterei di rimensionare l'immagine facendole raggiungere semplicemente una larghezza prefissata, e disinteressarmi dell'altezza..

    Attualmente utilizzo questo codice per leggere i dati dall'xml:

    my_xml = new XML ();
    my_xml.ignoreWhite = true;
    my_xml.onLoad = parsingXML;
    my_xml.load ("foto.xml");

    function parsingXML (success) {

    if (!success) {
    trace ("problema");
    return;
    }
    fotogal = new Array ();
    for (t = 0; t < this.childNodes[0].childNodes.length; t++) {
    var objfotogal = new Object ();
    objfotogal.id_ = this.childNodes[0].childNodes[t].attributes.id;
    for (j = 0; j < this.childNodes[0].childNodes[t].childNodes.length; j++) {
    objfotogal[this.childNodes[0].childNodes[t].childNodes[j].nodeName] = this.childNodes[0].childNodes[t].childNodes[j].firstChild.nodeValue;
    }
    fotogal[t] = objfotogal;
    }
    }


    e questo è il codice che butta nell'mc (foto) l'immagine caricata (ovviamente il tutto all'interno di un ciclo):

    view(z);
    function view () {

    var prod = fotogal[z].PROD ;

    foto.loadMovie(prod);

    }


    in realtà il codice comprenderebbe altri attributi che non ha senso postare in quanto il problema è riferito unicamente a "foto"..

    Grazie a chiunque possa darmi una mano..

  2. #2

    Re: Ridimensionare Immagini esterne

    Originariamente inviato da folla4
    Ciao a tutti..

    sono alle prese con un'animazione flash e xml che fa ruotare delle immagini. La richiesta potrà sembrare alquanto banale, ma purtroppo nel fare siti web ci sono talmente tante cose da sapere che spesso ci si portano avanti lacune anche basilari..

    Vorrei ridimensionare le immagini in modo che abbiano una altezza e una larghezza massima, in modo che se una delle due dimensioni dell'immagine supera il massimo (es: la larghezza) viene scalata l'immagine fino a raggiungere la larghezza massima fissata. Idem se fosse l'altezza a sforare.

    A occhio direi di confrontare le due dimensioni in modo da capire se il rapporto è minore o superiore al relativo rapporto tra altezza max e larghezza max, in modo da capire quale dimensione prendere come riferimento..

    ovviamente non ho idea di come farlo..

    In alternativa mi accontenterei di rimensionare l'immagine facendole raggiungere semplicemente una larghezza prefissata, e disinteressarmi dell'altezza..

    Attualmente utilizzo questo codice per leggere i dati dall'xml:

    my_xml = new XML ();
    my_xml.ignoreWhite = true;
    my_xml.onLoad = parsingXML;
    my_xml.load ("foto.xml");

    function parsingXML (success) {

    if (!success) {
    trace ("problema");
    return;
    }
    fotogal = new Array ();
    for (t = 0; t < this.childNodes[0].childNodes.length; t++) {
    var objfotogal = new Object ();
    objfotogal.id_ = this.childNodes[0].childNodes[t].attributes.id;
    for (j = 0; j < this.childNodes[0].childNodes[t].childNodes.length; j++) {
    objfotogal[this.childNodes[0].childNodes[t].childNodes[j].nodeName] = this.childNodes[0].childNodes[t].childNodes[j].firstChild.nodeValue;
    }
    fotogal[t] = objfotogal;
    }
    }


    e questo è il codice che butta nell'mc (foto) l'immagine caricata (ovviamente il tutto all'interno di un ciclo):

    view(z);
    function view () {

    var prod = fotogal[z].PROD ;

    foto.loadMovie(prod);

    }


    in realtà il codice comprenderebbe altri attributi che non ha senso postare in quanto il problema è riferito unicamente a "foto"..

    Grazie a chiunque possa darmi una mano..
    devi crearti una funzione di preload x poter ridimensinare le img ad es con una cosa del genere ottieni il ridimensionamento

    supponendo di voler caricare e ridimensionare prova.jpg nel mc vuoto
    codice:
    //funzione preload
    function preload1(clip1, width1, height1){
    	car = clip1.getBytesLoaded();
    	tot = clip1.getBytesTotal();
    	perc = Math.round((car/tot)*100);
    	clip1.createTextField("testo", 1, (this._width/2), (this._height/2), 200, 20);
    	clip1.testo.wordWrap = true;
    	testoformat = new TextFormat();
    	testoformat.color = "0x123466";
    	testoformat.font = "Verdana";
    	clip1.testo.setTextFormat(testoformat); 
    	
    	if(!isNaN(perc)) {
    		clip1.testo.text = "Caricamento..."+perc+"%";
    		clip1.testo.setTextFormat(testoformat);
    	}
    
    	
    	if(car == tot && tot>1024){
    		clearInterval(c);
    		altezza = (clip1._height*width1)/clip1._width;
    		larghezza = (clip1._width*height1)/clip1._height;
    		if (clip1._width > width1 || clip1._height > height1){
    			if (clip1._height < clip1._width){
    				clip1._width = width1;
    				clip1._height = altezza;
    			} else if (clip1._height > clip1._width){
    				clip1._width = larghezza;
    				clip1._height = height1;
    			} else {
    				clip1._width = clip1._height = height1;
    
    			}
    			
    		if(clip1._height > height1){
    			clip1._height=height1;
    			clip1._width=larghezza;
    			}
    		}
    		clip1.testo.text = "";
    		
    	}
    };
    vuoto.loadMovie("prova.jpg");
    c = setInterval(preload1, 100,vuoto, 250, 180 );
    xrò dovresti integrare questo script nel tuo

    ciao
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    10
    Grazie crescenzo,

    mi daresti però qualche info in più.. qui vedo molte cose che non credo mi servano.. immagino che io debba usare solo:


    altezza = (clip1._height*width1)/clip1._width;
    larghezza = (clip1._width*height1)/clip1._height;
    if (clip1._width > width1 || clip1._height > height1){
    if (clip1._height < clip1._width){
    clip1._width = width1;
    clip1._height = altezza;
    } else if (clip1._height > clip1._width){
    clip1._width = larghezza;
    clip1._height = height1;
    } else {
    clip1._width = clip1._height = height1;

    }

    if(clip1._height > height1){
    clip1._height=height1;
    clip1._width=larghezza;
    }
    }


    non ho capito però come usarlo.. clip1 dovrà essere la mia variabile "prod"? In quale punto del miocodice devo inserire quello che mi hai postato? dopo "var prod = fotogal[z].PROD ;"..?

    Grazie ancora, intanto ci provo da solo..

  4. #4
    no ti serve tutta la funzione del preload

    clip1 è il nome che uso nella funzione ma tu qua

    vuoto.loadMovie("prova.jpg");
    c = setInterval(preload1, 100,vuoto, 250, 180 );


    fai la chiamata passando come clip1 nella chiamata il clip che ti interessa nel caso vuoto

    a te dovrebbe essere, almeno la chiamata

    foto.loadMovie("prova.jpg");
    c = setInterval(preload1, 100,foto, 250, 180 );

    e metti la funzione prima di questo e la chiamata nella funzione
    function view () {


    ciao
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    10
    ottimo.. c'è però un ultimo problema, le immagini che superano i limiti, che mi pare di aver capito siano le ultime 2 cifre della chiamata:

    c = setInterval(preload1, 100,foto, 250, 180 );

    mentre 100 ad esempio non so cosa sia.. se mi dai l'ultimo aiuto te ne sono grato, in quanto credo che siamo proprio vicini..

    Grazie ancora..

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    10
    scusa non ho finito la frase..

    le immagini che superano i limiti non vengono visualizzate..

    Grazie..

  7. #7
    strano che nn visualizzi le img prova con un file e quel codice vedi che funge
    ed io utilizzo lo stesso codice
    qua

    x questa galleria nel ridimensionare i vari ingrandimenti
    come vedi funge abbastanza bene

    ciao
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

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.