Foros del Web » Creando para Internet » Flash y Actionscript »

escalar images en movieClip

Estas en el tema de escalar images en movieClip en el foro de Flash y Actionscript en Foros del Web. Mi problema es que tengo varios movieClips de tamaño 50x50 sobre los que quiero cargar varias imagenes "jpg". La cuestión es que cada imagen tiene ...
  #1 (permalink)  
Antiguo 10/11/2005, 05:39
 
Fecha de Ingreso: noviembre-2005
Mensajes: 28
Antigüedad: 18 años, 5 meses
Puntos: 0
escalar images en movieClip

Mi problema es que tengo varios movieClips de tamaño 50x50 sobre los que quiero cargar varias imagenes "jpg".

La cuestión es que cada imagen tiene un tamaño diferente, y quiero que todas se escalen para que acaben dentro de los movieClips con un tamaño 50x50.

Como no se el tamaño de la imagen, no se cuanto tengo que escalar con _xscale, _yscale para que no se modifique el tamaño del movieClip, y si al movieClip le doy un tamaño _width=50, _height=50 las imágenes me desaparecen al cargar.

¿que puedo hacer?
  #2 (permalink)  
Antiguo 10/11/2005, 10:43
 
Fecha de Ingreso: noviembre-2005
Mensajes: 28
Antigüedad: 18 años, 5 meses
Puntos: 0
Para resolver el problema e intentado hacer lo siguiente. Dado que los componentes Loaders te permiten el escalado de la imagen:

1. He creado un nuevo símbolo y le he añadido un componente Loader con el nombre "carga". Al símbolo le he llamado "cargador" y lo he vinculado a action script con el nombre de "cargador".

2. He utilizado _root.attachMovie("cargador", "aux",20);
aux.carga.contentPath="imagen.jpg";
aux.carga.load();

Pero no funciona. No sale la imagen. Así que lo he provado de otra manera:

1. Con el símbolo anterior "cargador" creado y vinculado a actionscript

2. initObjeto= new Object();
initObjeto.carga = new Loader();
initObjeto.carga.contentPath=this.contentPath;
initObjeto.carga.load();
initObjeto._x=10;
initObjeto._y=10;
_root.attachMovie("cargador", "aux",50,initObjeto);


Pero tampoco funciona .

¿Qué está pasandoooo?
  #3 (permalink)  
Antiguo 10/11/2005, 11:08
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Hola napalm_jp:
Vamos con un ejemplo para cargar una imagen:
Coloca un MC vacío en el escenario y le pones como nombre de instancia, por ejemplo: contenedor y 2 botones con nombre de instancia: btn1 y btn2
En la capa 2 frame 1 coloca éste código:
contenedor.loadMovie("imagenes/imagen0.jpg");
tamañofinal = 100;//éste es el tamaño en píxeles de la imagen cargada
this.onEnterFrame = function() {
if (contenedor._width>0) {
if (contenedor._width>contenedor._height) {
contenedor._yscale = contenedor._xscale=(tamañofinal*100)/(contenedor._width);
} else {
contenedor._yscale = contenedor._xscale=(tamañofinal*100)/(contenedor._height);
}
}
if (contenedor._width == tamañofinal || contenedor._height == tamañofinal) {
delete (this.onEnterFrame);
}
};
btn1.onRelease = function() {
contenedor.loadMovie("imagenes/imagen0.jpg");
};
btn2.onRelease = function() {
contenedor.loadMovie("imagenes/imagen00.jpg");
};

Pruébalo y adecualo a tus necesidades.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #4 (permalink)  
Antiguo 10/11/2005, 11:30
 
Fecha de Ingreso: noviembre-2005
Mensajes: 28
Antigüedad: 18 años, 5 meses
Puntos: 0
Pero el problema es que yo no se cuanto mide la imagen que quiero cargar, solo se que se llama "imagen.jpg" y que la quiero introducir con un tamaño de 50x50 ó 60x70, es igual. Para poner un ejemplo:

Queremos cargar 3 imagenes que hay en un directorio, cada una de las cuales tiene un tamaño, pero no lo sabemos, solo sabemos que se llaman "imagen1.jpg", "imagen2.jpg" e "imagen3.jpg".

Estas imagenes las queremos cargar en tres movieClips de 50x60, por ejemplo. ¿como aplico la escala sin saber previamente el tamaño de las imagenes?
  #5 (permalink)  
Antiguo 10/11/2005, 12:00
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 20 años, 2 meses
Puntos: 7
Oye napalm_jp, primero haz la prueba antes de hacer un comentario. Si no te funciona te tratamos de ayudar nuevamente.

Ese metodo que te dio Bandit funciona, solo intentalo a ver que tal y si no ya veremos... que tal ???
__________________
JuniHH
- Mi blog
- Mi portafolio
  #6 (permalink)  
Antiguo 10/11/2005, 12:26
 
Fecha de Ingreso: noviembre-2005
Mensajes: 28
Antigüedad: 18 años, 5 meses
Puntos: 0
Teneis razón, funciona y escala la imagen.

Lo había probado antes pero no me había funcionado por un fallo tonto, muchas gracias.

Lo que no entiendo es como logra escalar la imagen tomando solo como parámetros el contenedor._width y el contenedor._height ¿podeis explicarmelo?
  #7 (permalink)  
Antiguo 10/11/2005, 12:32
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 20 años, 2 meses
Puntos: 7
Pues que "contenedor._width" realmente es un valor numerico, no un simple nombre o codigo. Si seleccionas el MC en el stage y ves en la casilla W de la ventana Propiedades (Properties) veras un numero, por ejemplo "50.0". Eso quiere decir que el ancho (width) de ese MC equivale a 50.

Lo que pasa es que Flash sabe que "contenedor" es un MC y "._width" es una propiedad de los MC's. Al escribir el codigo de ese modo, simplemente le dices a Flash "calculame el ancho de contenedor". Simple no ???

Lo mismo con el alto (height).
__________________
JuniHH
- Mi blog
- Mi portafolio
  #8 (permalink)  
Antiguo 10/11/2005, 13:22
 
Fecha de Ingreso: noviembre-2005
Mensajes: 28
Antigüedad: 18 años, 5 meses
Puntos: 0
aaaah!!! OK

Muchas gracias
  #9 (permalink)  
Antiguo 10/11/2005, 14:43
 
Fecha de Ingreso: noviembre-2005
Mensajes: 28
Antigüedad: 18 años, 5 meses
Puntos: 0
Una pregunta más.

He conseguido hacer que funcione el escalado tal y como me habeis explicado. El problema es que no me funciona cuando introduzco el código dentro de una función, me explico.

Lo que pretendo es cargar una imagen externa en un Loader y una vez hagas click sobre este se copie la imagen en un movieClip en otra parte del documento.

La imagen tiene un tamaño x,y en el directorio y una anchura y altura definidas en un XML. Cuando haga click sobre el Loader la imagen debe cargarse en un movieClip con el tamaño anchura y altura, no con los valores x,y. (por eso hay que escalarla)

El problema creo que lo tengo en this.onEnterFrame, ya que cuando introduzco el código en la función evento del Loader el contexto "this" es diferente y no funciona.

¿A que elemento tengo que asignarle el "onEnterFrame"?
  #10 (permalink)  
Antiguo 04/03/2008, 23:25
 
Fecha de Ingreso: marzo-2008
Mensajes: 1
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: escalar images en movieClip

Hola, yo tengo el mismo problema, utilicé este código pero lo que hace es cargar indefinidamente la imagen y escalarla, en la pantalla se ve parpadeante la imagen y de dos tamaños diferentes. Pareciera que no se da la condición de delete. Ayuda!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:59.