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

Limites de StartDrag tras hacer zoom (URGE)

Estas en el tema de Limites de StartDrag tras hacer zoom (URGE) en el foro de Flash y Actionscript en Foros del Web. Tengo una imagen que puedo arrastrar usando startDrag(). La veo a través de una máscara, y controlo con coordenadas que no se pase para que ...
  #1 (permalink)  
Antiguo 27/04/2009, 04:43
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 279
Antigüedad: 19 años, 6 meses
Puntos: 2
Limites de StartDrag tras hacer zoom (URGE)

Tengo una imagen que puedo arrastrar usando startDrag(). La veo a través de una máscara, y controlo con coordenadas que no se pase para que no quede huecos en blanco.
Tengo un botón zoom in que permite ampliar la imagen hasta el 180% como máximo, de 20 en 20. El código del zoom in es:

Código :

var zoom:Number=imagen ._xscale; //Zoom de la imagen
zoom_in.onPress = function():Void
{
if (imagen ._xscale<180)
{
imagen ._xscale+=20;
imagen ._yscale+=20;
zoom=imagen ._xscale;
}
}


El problema viene al mover la imagen con el zoom distinto al 100%. Si lo hago con zoom = 100; bien porque he comprobado los límites manualmente y se los pongo. Pero si es distinto al 100% ¿hay algún modo de calcularlos a raíz del incremento, o tengo que irlos probándolos "a ojo"?
Gracias, saludos.
  #2 (permalink)  
Antiguo 27/04/2009, 10:45
Avatar de Diegoazul  
Fecha de Ingreso: mayo-2007
Ubicación: { Dash Berlin }
Mensajes: 1.879
Antigüedad: 17 años, 5 meses
Puntos: 67
Respuesta: Limites de StartDrag tras hacer zoom (URGE)

No se te entiende bien, explicate mejor, y donde esta el codigo de startDrag()?
  #3 (permalink)  
Antiguo 28/04/2009, 04:04
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 279
Antigüedad: 19 años, 6 meses
Puntos: 2
Respuesta: Limites de StartDrag tras hacer zoom (URGE)

Hola, gracias por la respuesta

Intentaré explicarlo mejor:
Tengo una imagen grande, de dimensiones 800x600. Está en una capa1. Tengo otra capa2, de dimensiones 300x300, que es una máscara de la anterior.
Quiero poder arrastrar la imagen con el drag, para poder verla por completo por la máscara, pero que no queden blancos en caso de arrastrarla toda hacia un lado, por ejemplo. Por ello, lo de los límites. Tengo botones zoom in y zoom out, que aumentan y disminuyen la _xscale y la _yscale de 20 en 20; hasta un máximo de 180.


El código del drag es:
Código:
var limiteIz:Number;
var limiteAr:Number;
var limiteDe:Number;
var limiteAb:Number;

imagen.onPress = function():Void
{
	if (zoom == 100)
	{
		limiteIz= 570;
		limiteAr= 415;
		limiteDe= 250;
		limiteAb= 185;
	}
	else if (zoom == 120)
	{
		limiteIz= 625;
		limiteAr= 470;
		limiteDe= 195;
		limiteAb= 130;
	}

	//Seguir con if-else para todos los zooms posibles calculando los límites

	this.startDrag(false, limiteIz, limiteAr, limiteDe, limiteAb);
}

imagen.onRelease = function():Void
{
	this.stopDrag(); 
}
A veces el drag sigue arrastrando aunque suelto la manito, no sé si está bien hecho así.

Y al hacer zoom menos, ¿cómo hacer para que aunque lo haga desde una esquina de la imagen y no se vean blancos en la máscara?

Gracias, saludos.
  #4 (permalink)  
Antiguo 28/04/2009, 10:42
Avatar de Diegoazul  
Fecha de Ingreso: mayo-2007
Ubicación: { Dash Berlin }
Mensajes: 1.879
Antigüedad: 17 años, 5 meses
Puntos: 67
Respuesta: Limites de StartDrag tras hacer zoom (URGE)

suponiendo que el punto de registro de tu mascara y de tu imagen esta en el lado superior izquierdo podrias sumarle esto a tu codigo:




Código:
imagen.onMouseMove= function():Void  {
	if (imagen._y>mascara._y) {
		imagen._y=mascara._y

	} 
	if (imagen._x>mascara._x) {
		imagen._x=mascara._x

	}
};
  #5 (permalink)  
Antiguo 29/04/2009, 02:59
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 279
Antigüedad: 19 años, 6 meses
Puntos: 2
Respuesta: Limites de StartDrag tras hacer zoom (URGE)

Hola,
El problema esque el punto de registro tanto de mi máscara cómo de la imagen está al centro (lo hice así porque al hacer zoom in incrementando la imagen._xscale y la imagen._yscale queda mucho mejor).

Si hay otro modo mejor de hacer el zoom cambio los registros, pero no sé cómo.

Gracias.
  #6 (permalink)  
Antiguo 29/04/2009, 13:37
Avatar de Diegoazul  
Fecha de Ingreso: mayo-2007
Ubicación: { Dash Berlin }
Mensajes: 1.879
Antigüedad: 17 años, 5 meses
Puntos: 67
Respuesta: Limites de StartDrag tras hacer zoom (URGE)

Si la mascara tiene el punto de registro en el lado superior izquierdo, y la imagen en el centro:

Código:
var limiteIz:Number;
var limiteAr:Number;
var limiteDe:Number;
var limiteAb:Number;
zoom_in.onPress = function():Void  {
	if (imagen._xscale<180) {
		imagen._xscale += 20;
		imagen._yscale += 20;
		zoom = imagen._xscale;
	}
};
imagen.onPress = function():Void  {


	//Seguir con if-else para todos los zooms posibles calculando los límites

	this.startDrag();
};

imagen.onRelease = function():Void  {
	this.stopDrag();
};

imagen.onMouseMove = function():Void  {
	if (imagen._y>mascara._y+imagen._height/2) {
		imagen._y = mascara._y+imagen._height/2;

	}
	if (imagen._x>mascara._x+imagen._width/2) {
		imagen._x = mascara._x+imagen._width/2;

	}
}; 
solo le sumas la mitad de la imagen. deahi ya puedes calcular tu sola lo demas.
  #7 (permalink)  
Antiguo 30/04/2009, 05:20
 
Fecha de Ingreso: mayo-2005
Ubicación: España
Mensajes: 279
Antigüedad: 19 años, 6 meses
Puntos: 2
Respuesta: Limites de StartDrag tras hacer zoom (URGE)

Hola Diegoazul,
Muchas gracias por tu aporte. De todos modos no sé si lo estoy haciendo correctamente.

Tengo el código que me has mostrado,
Código:
imagen.onMouseMove = function():Void  
{
	if (imagen._y>mascara._y+imagen._height/2) {
		imagen._y = mascara._y+imagen._height/2;

	}
	if (imagen._x>mascara._x+imagen._width/2) {
		imagen._x = mascara._x+imagen._width/2;
        }
}
Pero no entiendo si el startDrag debo mantenerlo o no. Entiendo que éste codigo lo que hace es modifical el la posicion de la imagen en caso de que no esté por fuera de la máscara, pero no entiendo cómo aplicarlo al Drag. Estoy aprendiendo y no tengo claro cómo hacerlo. Gracias.
  #8 (permalink)  
Antiguo 30/04/2009, 09:07
Avatar de Diegoazul  
Fecha de Ingreso: mayo-2007
Ubicación: { Dash Berlin }
Mensajes: 1.879
Antigüedad: 17 años, 5 meses
Puntos: 67
Respuesta: Limites de StartDrag tras hacer zoom (URGE)

sube el archivo que usas por www.rapidshare.com
  #9 (permalink)  
Antiguo 28/07/2009, 10:38
 
Fecha de Ingreso: junio-2009
Mensajes: 38
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Limites de StartDrag tras hacer zoom (URGE)

Hola, no se si habran completado o resuelto el problema, de ser asi, tal vez lo podrian compartir.
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 23:04.