Comunidad de diseño web y desarrollo en internet online

permitir StartDrag() hasta un límite

Citar            
MensajeEscrito el 20 Abr 2009 10:46 am
Saludos,

Tengo una capa Imagen en la que tengo una foto que he convertido a MC. Además tengo otra capa Máscara, que permite ver una porción de la anterior. He diseñado cuatro botones Flechas (arriba, abajo, izqda, drcha) y los he programado para con ellos ver la imagen en la máscara, digamos que desliza la imagen por debajo de la máscara. No quiero que mi máscara quede nunca en blanco, por ello en los botones lo manejo con coordenadas de forma más o menos eficiente.

Pero al querer hacer la herramienta mano, con startDrag(); ¿hay algún modo de controlar que no deje arrastrar más del tamaño de la imagen? Es decir, si arrastro hacia la izquierda, que en el momento que el borde derecho del MC (imagen) toque con el borde derecho de la máscara, no me deje arrastrar más.

Espero haberme explicado, muchas gracias.

Por ferola

20 de clabLevel



 

msie7
Citar            
MensajeEscrito el 20 Abr 2009 12:32 pm
startDrag(true*, limiteIzquierda, limiteArriba, limiteDerecha, limiteAbajo);
//*o false si no quieres que el clip se alinee con el mouse

salut

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 21 Abr 2009 07:33 pm
Hola, gracias por tu respuesta.

Tengo la posibilidad de hacer zoom a mi mapa, asique dependiendo del zoom, el drag tendrá unos límites u otros.
Tengo el código:

Código :

on (press)
{
       if (mapa._xscale = 100)
      {
          this.startDrag(false, 570, 415, 250, 185);
      }
      //Demás condiciones de tamaños (de 120, 140, 160, 180, 200) con sus respectivos límites. 

}
on (release){
     this.stopDrag(); 
}


¿Así estaría bien?
Muchas gracias.

Por ferola

20 de clabLevel



 

msie
Citar            
MensajeEscrito el 21 Abr 2009 08:15 pm
lo veo bien, pero tenes que probar a ver si funciona.
En lo personal pondria los valores dinamicamente, declarando una variable que cambia su valor dependiendo del tamanio, por ejemplo;

Código :

var limiteIzquierda : Number = 570;
var limiteDerecha : Number = 250;
var factor : Number = 20;
var zoom : Number = 100;
// ...
// al hacer zoom +:
function hacerZoom() : Void
{
zoom += factor;
limiteIzquierda -= factor; // u otro valor que cambie su valor relativamente
limiteDerecha -= otroFactor;
}
// al llamarlo en el boton:
on (press)
{
      this.startDrag(false, limiteIzquierda, limiteArriba, limiteDerecha, limiteAbajo);
}


si te enrreda el codigo que mencione, olvidate y seguilo haciendo como vos entendas ;)

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 22 Abr 2009 09:44 am
Hola,
El caso es que estoy aprendiendo, por lo que no tengo muy claro donde situar los códigos.
En el código del botón Ampliar (Zoom IN) tengo:

Código :

on (press)
{
   var zoom:Number;
   if (mapa._xscale<180)
   {
      mapa._xscale+=20;
      mapa._yscale+=20;
      zoom=mapa._xscale;
   }
}


Y ahora, en el código del mapa tengo:

Código :

on (press)
{
   if (zoom = 100)
   {
      this.startDrag(false, 570, 415, 250, 185);
   }
}

on (release){
this.stopDrag(); 
}


¿Es así correcto? Gracias.

Por ferola

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Abr 2009 06:57 pm
no, hay cosas que no funcionarian, por ejemplo el = debe ser ==.

Lo que debes hacer es NO poner nada en tus botones o movieclips, poner codigo en ellos es mala practica.
Te aconsejo usar nombres de instancia.
Como no tengo mucha idea de como tenes tu .fla, proba haciendolo en una pelicula nueva.
Pone un boton en el escenario
Seleccionalo y donde dice "instance name" en el panel de propiedades, escribi: "btnPrueba".
Luego en un fotograma vas a escribir lo siguiente:

Código :

var zoom : Number = 100;

btnPrueba.onPress = function() : Void
{
   if (zoom == 100)
   {
      this.startDrag(false, 570, 415, 250, 185);
   }
}
btnPrueba.onRelease = this.stopDrag();

eso debiese funcionar aunque no lo he probado.
Asi se hace para NO escribir codigo directamente en los botones.

Salut!

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 11 Oct 2009 06:08 pm
mmm, cuando quede bien ese archivo compartanlo en fl no?, nos ayudaría a muchos a poder comprender, yo tambie teno mi panel con zon in , out y un panel de desplazamient pero de plano no me sale eso de los limites para que no se quede en banco mi mascara y se pierda en el espacio mi imagen, jejeje... lo peor es ue yo si tengo codigo en botones y movieclips,...asi que ya se imaginaran el relajo que tengo....po eso digo, si comparten esto será de mucha ayuda para muchos...en lo personal lo agradeceri mucho...gracias muy buen dia

Por Javier Tamariz

22 de clabLevel



 

Mexico D.F.

msie8

 

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