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

Centrar un MC que se agranda con AS

Estas en el tema de Centrar un MC que se agranda con AS en el foro de Flash y Actionscript en Foros del Web. Hola señores Logre hacer un efecto de sinfin (carrusel) con imagenes para la web de la empresa para la que trabajo. Este sinfin captura los ...
  #1 (permalink)  
Antiguo 02/11/2005, 10:12
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 13 años, 10 meses
Puntos: 7
Centrar un MC que se agranda con AS

Hola señores

Logre hacer un efecto de sinfin (carrusel) con imagenes para la web de la empresa para la que trabajo.

Este sinfin captura los logos externamente y lee los nombres de los archivos a traves de un XML. Por tanto, las animaciones y posiciones de los logos dentro del Flash se aplican dinamicamente.

El caso es que hice una funcion que hace que al poner el cursor sobre cualquier logo este se agrande y al sacar el mouse vuelva a su tamaño original. Hasta ahora todo bien, hasta que vemos que agranda a partir de la esquina superior izquierda (que es desde donde carga el MC generado dinamicamente).

Aqui pueden ver una muestra de lo que digo y este es el script que maneja el efecto:

Código:
function efectosMouseLogo(mcEfecto:MovieClip) {
	//
	clearInterval(encreaseLogo);
	clearInterval(decreaseLogo);
	//
	mcEfecto.onRollOver = function() {
		pausarLogos();
		var encreaseLogo = setInterval(function () {
			mcEfecto._xscale = mcEfecto._yscale += 1;
			if (mcEfecto._xscale >= escalaMaxima) {
				clearInterval(encreaseLogo);
			}
		}, 10);
	};
	//
	mcEfecto.onRollOut = function() {
		animarLogos();
		var decreaseLogo = setInterval(function () {
			mcEfecto._xscale = mcEfecto._yscale -= 1;
			if (mcEfecto._xscale <= escalaNormal) {
				clearInterval(decreaseLogo);
			}
		}, 10);
	};
	//
	mcEfecto.onPress = function() {
		trace(this);
	};
}
Como veran, se agranda hacia una esquina y lo correcto es que amplie centrado. Sabrian como corregir ese script para centrar el MC al agrandar ????
__________________
JuniHH
- Mi blog
- Mi portafolio
  #2 (permalink)  
Antiguo 03/11/2005, 02:30
Avatar de webgeri  
Fecha de Ingreso: marzo-2005
Ubicación: montevideo
Mensajes: 374
Antigüedad: 12 años, 9 meses
Puntos: 0
pues yo lo haria asi

cuando estas arriba
antes de agrandar preguntas el ancho y el alto
luego de agrandarlo preguntas el nuevo ancho y nuevo alto
restas ancho nuevo - ancho viejo divides entres 2 el resultado y se lo restas
a la posicion x del clip
lo mismo para el alto

Código:
oldancho = mcEfecto._width;
oldalto = mcEfecto._height;
mcEfecto._xscale = mcEfecto._yscale += 1;
newancho = mcEfecto._width;
newalto = mcEfecto._height;
mcEfecto._x -= (newancho-oldancho)/2;
mcEfecto._y -= (newalto-oldalto)/2;
y para cuando estas afuera del clip lo mismo
solo que se invierten las operaciones

Código:
oldancho = mcEfecto._width;
oldalto = mcEfecto._height;
mcEfecto._xscale = mcEfecto._yscale -= 1;
newancho = mcEfecto._width;
newalto = mcEfecto._height;
mcEfecto._x += (oldancho-newancho)/2;
mcEfecto._y += (oldalto-newalto)/2;
habria que definir el tipo de variables antes tb

Código:
var oldancho:Number;
var oldalto:Number;
var newancho:Number;
var newalto:Number;
bueno creo que en tu script quedaria asi


Código:
var encreaseLogo = setInterval(function () {
                        oldancho = mcEfecto._width;
                        oldalto = mcEfecto._height;
			mcEfecto._xscale = mcEfecto._yscale += 1;
			newancho = mcEfecto._width;
			newalto = mcEfecto._height;
			mcEfecto._x -= (newancho-oldancho)/2;
			mcEfecto._y -= (newalto-oldalto)/2;
			if (mcEfecto._xscale >= escalaMaxima) {
				clearInterval(encreaseLogo);
			}
		}, 10);

y asi

Código:
var decreaseLogo = setInterval(function () {
                        oldancho = mcEfecto._width;
                        oldalto = mcEfecto._height;
			mcEfecto._xscale = mcEfecto._yscale -= 1;
                        newancho = mcEfecto._width;
                        newalto = mcEfecto._height;
                        mcEfecto._x += (oldancho-newancho)/2;
                        mcEfecto._y += (oldalto-newalto)/2;
			if (mcEfecto._xscale <= escalaNormal) {
				clearInterval(decreaseLogo);
			}
		}, 10);
bueno espero te sirva a mi me funciono aunque no lo probe con tu script

sldos y suerte
__________________
...
.....todos somos muy ignorantes
...lo que ocurre es que
......no todos ignoramos las mismas cosas
:-D
...

:: jack experimentos ::
:: jack fotografias ::
:: jack fotografias 2 ::
  #3 (permalink)  
Antiguo 03/11/2005, 07:00
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 13 años, 10 meses
Puntos: 7
Hola Webgeri

Pues realmente esperaba una idea de como hacerlo y luego yo me encargaba de intentarlo... pero ya resolviste todo, Y QUEDO PERFECTO.. No me gusta el copy-paste pero no tuve otra opcion.

Realmente si funciono, lo adapte un poco y este fue el resultado. Muchisimas gracias por tu ayuda..

Por cierto, estuve viendo tus enlaces y me gusto mucho tu galeria de fotos, excepto que para mostrar el año de primera mano me confundio un poco... pero es un buen trabajo, viejo.
__________________
JuniHH
- Mi blog
- Mi portafolio
  #4 (permalink)  
Antiguo 03/11/2005, 14:39
Avatar de webgeri  
Fecha de Ingreso: marzo-2005
Ubicación: montevideo
Mensajes: 374
Antigüedad: 12 años, 9 meses
Puntos: 0
si es un poco confusa la interfaz de la galeria y repito los datos de las fotos
pero esta en stanby por el momento
hasta que contrate un sitio pago y defina un diseño del sitio

sldos
__________________
...
.....todos somos muy ignorantes
...lo que ocurre es que
......no todos ignoramos las mismas cosas
:-D
...

:: jack experimentos ::
:: jack fotografias ::
:: jack fotografias 2 ::
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 17:29.