Comunidad de diseño web y desarrollo en internet online

Escalar o Redimensionar imagen cargada en un Movie Clip

Citar            
MensajeEscrito el 03 Ago 2008 03:30 pm
Hola amigos, tengo un pequeño problema que seguramente no va a ser difícil para ustedes solucionar.
Tengo que cargar imagenes dentro de un movieclip que tiene un determinado tamaño. El problema es que las imagenes son de 800 x 600 pixeles y el Movie Clip ( de ahora es más MC) de 300 x 225.
El código de carga es el siguiente:

Código :

_root.createEmptyMovieClip("mi_mc", _root.getNextHighestDepth());
_root.mi_mc.createEmptyMovieClip("holder_mc", mi_mc.getNextHighestDepth());
mi_mc.holder_mc.loadMovie("jony.JPG");


Si yo lo dejo así, carga la imagen con un tamaño de 800 x 600, o sea la imagen original, pero lo que yo quiero hacer es que la imagen se adapte al tamaño del MC.
Si yo coloco luego de cargada la imagen las propiedades ._width, y ._height al MC, me desaparece la imagen. O sea si pongo esto:

Código :

mi_mc.holder_mc._width=300;
mi_mc.holder_mc._height=225;

Desaparece la imagen y no se porqué, me gustaría que alguien me lo explique.
Entonces, ¿tengo que escalar la imagen usando _xscale y _yscale?
En el caso de que así sea, me gustaría saber cual es la fórmula matemática para escalar correctamente para poder adecuar un tamaño de imagen de 800 x 600 (o cualqueir tamaño) al del MC de 300 x 225 px.
Muchas gracias por la ayuda y espero obtener una buena respuesta, como siempre.

Por dbarraud

22 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Ago 2008 10:58 pm
Mira este post:

http://www.cristalab.com/foros/t58877_propiedades-de-anchura-y-altura-de-un-movieclip.html

Y este:

http://www.cristalab.com/foros/t58777_redimesionar-imagenes-y-movieclip.html

Pero si no deseas complicarte con scripts, si haces el MC en el que vas a leer las imágenes de tamaño 800 x 600 y después varías su ancho y su alto a 300 x 225 entonces las imágenes que leas en él heredarán sus propiedades, así sea rotación, alpha o ancho y alto, por lo que tus imágenes saldrán a 300 x 225.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 03 Ago 2008 11:06 pm
Gracias por responder elchininet, pero si yo quiero usar el xscale y el yscale, ¿cuál es el paso para que el MC me quede proporcinado?
Si yo pongo

Código :

mi_mc.holder_mc._xscale=50;
mi_mc.holder_mc._yscale=50;

¿estoy diciendo que me escale tanto el x como el y en un 50%?
Yo pongo ese código, pero el tamaño de lo que sería el alto de la foto me aparece más baja y me distorciona la imagen.
No se que es lo que estoy haciendo mal.

Por dbarraud

22 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Ago 2008 11:21 pm
Leiste los links que te puse?

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 04 Ago 2008 12:29 am
Holap dbarraud
Aquí te dejo un codigo que lo saque de livedocs.adobe.com y que lo modifique yo!

// Creando un MovieClip con Imagen
var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
// mc.onRelease = function():Void {
mc.onRollOver = function():Void {
// trace(this.image._url); // http://www.lpurslx.co.cc
image._alpha = 100;
};
mc.onRollOut = function():Void {
// trace(this.image._url); // http://www.lpurslx.co.cc
image._alpha = 15;
};
var image:MovieClip = mc.createEmptyMovieClip("image", mc.getNextHighestDepth());
// Cargas la Imagen
image.loadMovie("http://blog.2grafic.com/wp-content/uploads/2007/06/adobe-flash-9.png");
image._x = 250;
image._y = 110;
image._alpha = 15;
// Escala de la Imagen
image._xscale = 50;
image._yscale = 50;

Por AdemFlash

10 de clabLevel



 

Lima - Perú

msie
Citar            
MensajeEscrito el 13 Ago 2009 11:47 pm
que tal mi manejo del flash es moderado se hacer algunas cosilla spero aun necesito mucha asesoria, estoy haciendo una galeria de fotos, ya puedo hacer que se carguen mis imagnes automatico, ya logre que les asignara un numero y lo muestre a manera de titulo ahora, tengo poco mas de 200 imagenes y no quiero ponerme a modificar cada una en photoshop para que se ajuste al tama;o de mi ventana, he tratado de utilizar width pero no reacciona y cuando uso _xscale me lo hace en porcentaje no en pixels si mi ventana es de 580px y le pongo
_root.contenedorfoto._xscale = 580; en lugar de limitarlo a 580px lo que hace es escalarlo 580% como puedo hacer para que el tama;o se limite a una ventana sin deformar mis imagenes y que lo haga de manera automatica ahora esa parte de mi codigo esta como sigue

_root.contenedorfoto._xscale = 700; // el tama;o de mi ventana para desplegar imagenes es 700x700px

_root.contenedorfoto._yscale = contenedorfoto._xscale; //me respeta la proporcion pero no los limites y se sale de la ventana

y de la otra manera en que he intentado es

_root.contenedorfoto.width = 700; // no me respeta este limite, sigue usando el tama;o original de cada imagen

_root.contenedorfoto._yscale = contenedorfoto._xscale; //al no cambiar el tama;o en x en y se queda igual osea el que tiene por defecto la imagen


ahora, he leido un par de post mas de elchininet y he notado que hace un doble emptymc, quiza eso es lo que me hace falta pero, es realmente necesario??

una vez resuelva esto pido mas ayuda con swapdepths que tampoco me lo esta respetando , quiero que mis fotos aparezcan detras de un logo, tipo mascara de proteccion para evitar plagio de imagenes pero aun no lo logro

gracias espero me puedan ayudar

Por altjira

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Ago 2009 08:43 pm
@altjira, estás empleando el método correcto lo que debes hacer un segundo chequeo para comprobar que la imagen no se te salga de los límites, el método es exactamente el siguiente:

1 - Darle a la imagen el ancho que deseas
2 - Darle en la escala de las "y" la misma escala de las "x"
3 - Chequear que el alto de la imagen no sobrepasa el alto que deseas
4 - Si el alto de la imagen sobrepasa el límite permitido hacer el mismo proceso pero guiándose por el alto.

Algo así:

Código ActionScript :

//---El ancho y alto al que deseas escalar la imagen están representados por las variables "ancho" y "alto"

_root.contenedorfoto._width = ancho;
_root.contenedorfoto._yscale = _root.contenedorfoto._xscale;

if(_root.contenedorfoto._height > alto){

    _root.contenedorfoto._height = alto;
    _root.contenedorfoto._xscale = _root.contenedorfoto._yscale;

}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 14 Ago 2009 09:53 pm
ok entiendo la logica, pero no me queda claro en donde tengo que poner esto ya tengo un if, se puede poner otro if dentro??

lo intente de la siguiente manera y aun no funciona, sigue colocando las imagnes al tama;o original
var a=1
var b=0;

if(a<6){
_root.createEmptyMovieClip("contenedorfoto", 1);
_root.clave =("abs-0"+a);
_root.contenedorfoto.swapdepths ("logo-promart");
_root.contenedorfoto.width = 700;
_root.contenedorfoto._yscale = contenedorfoto._xscale;

if(_root.contenedorfoto._height > 700){

_root.contenedorfoto._height = 700;
_root.contenedorfoto._yscale = _root.contenedorfoto._xscale;

}

_root.contenedorfoto._x = 565;

_root.contenedorfoto._y = 18;

_root.contenedorfoto._alpha=0;

_root.contenedorfoto.loadMovie("carpeta1/imagen"+a+".jpg");
a++;

}
else if(a=5){

a=1;
_root.contenedorfoto._alpha=0;
gotoAndPlay ("intro-2");

}
intente tambien poner la segunda condicionante una vez cargada la imagen osea despues de

_root.contenedorfoto.loadMovie("carpeta1/imagen"+a+".jpg");
a++;
_root.contenedorfoto.width = 700;
_root.contenedorfoto._yscale = contenedorfoto._xscale;

if(_root.contenedorfoto._height > 700){

_root.contenedorfoto._height = 700;
_root.contenedorfoto._xscale = _root.contenedorfoto._yscale;

}

pero no logro ningun cambio tampoco, el script no me marca errores pero no se si este bien poner conciciones dentro de otra condicion

gracias

Por altjira

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Ago 2009 10:58 pm
Creí que habías leido los post anteriores y los links que postee, leelos primero. Si deseas hacer esto lo debes hacer con MovieClipLoader y aplicar las dimensiones del MovieClip que lee la imágen en el evento onLoadInit de dicho MovieClipLoader. Si lo deseas hacer con LoadMovie (no te lo recomiendo) deberás determinar cuando la imagen se cargó completamente dentro del MovieClip para poder escalarlo y esto debes hacerlo mediante un onEnterFrame calculando los bytes leidos.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

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