Comunidad de diseño web y desarrollo en internet online

Redimensionar una imagen

Citar            
MensajeEscrito el 18 Mar 2006 04:16 am
Resulta que tengo una galeria de imagenes que cargo externamente con xml y quiero que las imagenes se adapten al tamaño del mc, para redimensionar la imagen sea cual sea su tamaño para que se adapte a una tamaño determinado, este es el script,

Código :

function resixe() {
   if (picture._width>picture._height) {
      medida1 = int((450*100)/picture._width);
      //escalo sobre el mismo porcentaje para mantener la apariencia y no deformar
      picture._xscale = picture._yscale=medida1;
   } else {
      //regla de tres simple para sacar porcentaje
      medida2 = int((450*100)/picture._height);
      //escalo sobre el mismo porcentaje para mantener la apariencia y no deformar
      picture._yscale = picture._xscale=medida2;
   }
}


Funciona a la primera, luego se hace o mas pequeña o mas grande y si la ubico en el centro se va corriendo cada vez mas a la izquierda y asi susesivamente...

Si podeis ayudarme a solucionar este impase se los agradeceria...

Una prueba es cargar la imagen con el boton y hacer click de nuevo la imagen se recarga pero grande y se va corriendo cada vez mas... no se que pueda estar pasando... llevo varias horas y no he podido lograr que funcione...

[SWAT] Cuando postees código, usa las etiquetas [code] [/SWAT]

Por dnomada

20 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Mar 2006 12:47 pm
Puedes mostrar más código?

Es decir, una vez has realizado la primera escalada, y cierras, reseteas (devuelves los valores originales) picture? porque si no te aseguras de eso, cada vez que la vuelva a llamar, parte de los valores de escala anteriores, no del tamaño y posición base.

Bienvenido a Cristalab ;)

Por MorphX

SWAT Team

982 de clabLevel

3 tutoriales

  SWAT

La Telaraña Digital

firefox
Citar            
MensajeEscrito el 25 Mar 2006 12:39 am
Hola MorphX, gracias por tu respuesta, me diste algunas ideas de cómo solucionar mi problema, pero después de intentar mucho no he logrado mi cometido, he colgado un archivo comprimido con el .fla para que lo mires y si me puedes ayudar te lo agradecería…


El archivo
http://www.nomada.unlugar.com/redimensionar.zip

Por dnomada

20 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 Mar 2006 05:21 pm
Esto lo soluciona ;)

Código :

on (release) {
   picture._xscale = picture._yscale = 100; //Nos aseguramos que partimos de la escala base
   picture.loadMovie("07.jpg");
   onEnterFrame = function()   ///Compas de espera hasta que la imagen tiene tamaño efectivo
   {
      if(picture._width>0)
      {
         if (picture._width>picture._height) {
            medida1 = int((50*100)/picture._width);
            //escalo sobre el mismo porcentaje para mantener la apariencia y no deformar
            picture._xscale = picture._yscale=medida1;
         } else {
            //regla de tres simple para sacar porcentaje
            medida2 = int((70*100)/picture._height);
            //escalo sobre el mismo porcentaje para mantener la apariencia y no deformar
            picture._yscale = picture._xscale=medida2;
         }
         delete onEnterFrame;
      }
   }
}


de todos modos habras de considerar cuando la imagen sea cuadrada (osea width == height) que por defecto entrará en la corrección respecto a la altura, ya que como ves en tu 2ª foto del ejemplo, queda MAS ancha que el marco ;)

suerte

Por MorphX

SWAT Team

982 de clabLevel

3 tutoriales

  SWAT

La Telaraña Digital

firefox
Citar            
MensajeEscrito el 25 Mar 2006 05:27 pm
:D yo tanbien soy nuevo
bien benido :D ^^ ^^

Por kofkero

0 de clabLevel



 

msie
Citar            
MensajeEscrito el 31 Mar 2006 01:54 pm
Que pena por responder tan tarde pero solo hasta hoy llegue de viaje y me pude sentar en mi compu….muchísimas gracias por tu ayuda MorphX, pude solucionar el problema, y ya cargan la imágenes perfectamente.

Ahora tengo un inconveniente pues al tratar de solucionar la redimensión de imágenes utilice botones como en el ejemplo que envié y solucione el problema temporalmente, para salir del apuro, pero pues estoy cargando imágenes externas con XML y texto relativo a las imagenes.

Código :

onClipEvent (load) { 

   if (this._width>this._height) { 
      //regla de tres simple para sacar porcentaje 
      medida1 = int((120*100)/this._width); 
      //escalo sobre el mismo porcentaje para mantener la apariencia y no deformar 
      this._xscale = this._yscale=medida1; 
   } else { 
      //regla de tres simple para sacar porcentaje 
      medida2 = int((75*100)/this._height); 
      //escalo sobre el mismo porcentaje para mantener la apariencia y no deformar 
      this._yscale = this._xscale=medida2; 
   } 
   this._x = this._x+(120-this._width)/2; 
}

presentándose los problemas que ya había tratado antes, trate de aplicar el script de la forma que lo trabajo MorphX pero pues no me funcionó, también trate de incluir el script en una función y gragarla a los botones que llaman las imagenes pero tampoco me funcionó, voy a incluir el script completo que utilizo para la galería de imágenes para que me entendáis mejor, aun soy un principiante en esto y pues espero no estar haciendo preguntas tontas… estoy leyendo mucho para entender el action script desde sus inicios pero hay muchas cosas que aun superan mi nivel de aprendizaje, aunque con la ayuda del foro, los tutoriales y los participantes del foro, voy entendido muchas cosas.

Código :

function loadXML(loaded) {
   if (loaded) {
      xmlNode = this.firstChild;
      image = [];
      nombre = [];
      diseno = [];
      ano = [];
      categoria = [];
      total = xmlNode.childNodes.length;
      for (i=0; i<total; i++) {
         image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
         nombre[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
         diseno[i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
         ano[i] = xmlNode.childNodes[i].childNodes[3].firstChild.nodeValue;
         categoria[i] = xmlNode.childNodes[i].childNodes[4].firstChild.nodeValue;
      }
      firstImage();
   } else {
      content = "file not loaded!";
   }
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("galeria.xml");
/////////////////////////////////////
listen = new Object();
listen.onKeyDown = function() {
   if (Key.getCode() == Key.LEFT) {
      prevImage();
   } else if (Key.getCode() == Key.RIGHT) {
      nextImage();
   }
};
Key.addListener(listen);
previous_btn.onRelease = function() {
   prevImage();
   vinculo();
};
next_btn.onRelease = function() {
   nextImage();
   vinculo();
};
/////////////////////////////////////
p = 0;
this.onEnterFrame = function() {
   filesize = picture.getBytesTotal();
   loaded = picture.getBytesLoaded();
   preloader._visible = true;
   if (loaded != filesize) {
      preloader.preload_bar._xscale = 100*loaded/filesize;
   } else {
      preloader._visible = false;
      if (picture._alpha<100) {
         picture._alpha += 10;
      }
   }
};
function nextImage() {
   if (p<(total-1)) {
      p++;
      if (loaded == filesize) {
         picture._alpha = 0;
         picture.loadMovie(image[p], 1);
         nombre_txt.text = nombre[p];
         diseno_txt.text = diseno[p];
         ano_txt.text = ano[p];
         categoria_txt.text = categoria[p];
         picture_num();
      }
   }
}
function prevImage() {
   if (p>0) {
      p--;
      picture._alpha = 0;
      picture.loadMovie(image[p], 1);
      nombre_txt.text = nombre[p];
      diseno_txt.text = diseno[p];
      ano_txt.text = ano[p];
      categoria_txt.text = categoria[p];
      picture_num();
   }
}
function firstImage() {
   if (loaded == filesize) {
      picture._alpha = 0;
      picture.loadMovie(image[0], 1);
      nombre_txt.text = nombre[0];
      diseno_txt.text = diseno[0];
      ano_txt.text = ano[0];
      categoria_txt.text = categoria[0];
      picture_num();
   }
}
function picture_num() {
   current_pos = p+1;
   pos_txt.text = current_pos+" / "+total;
}
function vinculo() {
   wekk = p+1;
   wek.gotoAndStop (wekk);
}
//numero de imagenes en la galeria
nr = 61;
k = 0;
for (i=1; i<=nr; i++) {
   xmlNode = this.firstChild;
   total = xmlNode.childNodes.length;
   seta.createEmptyMovieClip("box"+i, k);
   duplicateMovieClip(seta.phbutt, ""+i, k-nr);
   k++;
   setProperty(_root.seta["box"+i], _x, i*20);
   setProperty(_root.seta["box"+i], _y, 525);
   setProperty(seta[""+i], _x, i*20);
   setProperty(seta[""+i], _y, 525);
   seta[""+i].onRelease = function() {
      stri = String(this._name);
      b = stri;
      wek.gotoAndStop(b);
      picture._alpha = 0;
      picture.loadMovie(image[b-1],1);
      nombre.text = nombre[b-1];
      diseno_txt.text = diseno[b-1];
      ano_txt.text = ano[b-1];
      categoria_txt.text = categoria[b-1];
      current_pos = b;
      pos_txt.text = current_pos+" / "+total;
   };
}


Gracias por su ayuda... :oops: [/img][/list]

Por dnomada

20 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.