Comunidad de diseño web y desarrollo en internet online

SOS con codigo para generar galeria de fotos, rescalandolas.

Citar            
MensajeEscrito el 19 Feb 2008 07:47 pm
Buenas noches, no se si alguien me puede hechar un cable.
Tengo un problema con el código que muestro a continuación.
mi intención es cargar desde un fichero xml una serie de fotos para luego escalarlas a unos tamaños, para hacer una galería. El problema es que leo el xml, sin problemas pero luego no soy capaz de reescalar la foto. El código que tengo preparado sobre el Timeline es

anchoOriginal = 500;
altoOriginal = 400;
//************************************************//
//PRINCIPAL//
xmlData = new XML();//Nuevo objeto XML
xmlData.ignoreWhite = true;//Ignorar espacios en blanco
xmlData.onLoad = loadXML;//LLamamos a loadXML()
xmlData.load("galeria/images.xml");//cargamos XML
xmlData.onLoad=function(){
xmlNode = this.firstChild;
image = [];
tit = [];
coment = [];
total = xmlNode.childNodes.length;
for (i=0; i<total; i++) {
image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
tit[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
coment[i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue;
}
picture.loadMovie(image[0],1);
rescalar();
}
tit_txt.text = tit[0];
desc_txt.text = coment[0];
picture_num();



//************************************************//
//FUNCION QUE CONTROLA NUMERACION DE IMAGENES//
function picture_num() {
current_pos = p+1;
pos_txt.text = current_pos+" / "+total;
}
//*************************************************//


function rescalar() {
picture._xscale = picture._yscale=100;
//Nos aseguramos que partimos de la escala base
//Dictaminamos si debemoscalcular el ancho o el alto
trace(anchoOriginal/altoOriginal);
trace(picture._width/picture._height);
if ((anchoOriginal/altoOriginal)<(picture._width/picture._height)) {
trace("Foto Ancha");// La foto es ancha por lo que el ancho=500 y el alto lo calculamos
alto = (anchoOriginal*picture._height)/picture._width;
picture._width = 500;
picture._height = alto;
trace(alto);
} else {
trace("Foto Alta");
ancho = (anchoOriginal*picture._width)/picture._height;
picture._width = ancho;
picture._height = 400;
trace(ancho);
}
escalado = true;


}
Muchas gracias por adelantado.

Por falkomari

5 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Feb 2008 08:50 pm
Creo recordar que si hacer un

clip1.loadMovie(ruta)
clip1._xscale = 20;

la segunda linea no vale para nada ya que cuando se ejecuta clip1 todavía no ha cargado el archivo.

En cualquier caso, te recomiendo que hagas las cargas com movieClipLoader y reescales las imágenes en el evento Init de cada carga.

Saludos!!!

Por SdR

23 de clabLevel



Genero:Masculino  

opera
Citar            
MensajeEscrito el 19 Feb 2008 09:49 pm
Aupa, muchas gracias por la respuesta.
Noentiendomuy bien lo que me dices. Creo que es porque no tengo muchas nociones de actionscript. Podrías explciarme un poco más a detalle.
Muchas gracias.

Por falkomari

5 de clabLevel



 

msie

 

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