Comunidad de diseño web y desarrollo en internet online

Movimiento de persiana

Citar            
MensajeEscrito el 02 Feb 2011 08:34 am
Hola,
No consigo hacer una cosa, a ver si alguien me puede ayudar. Tengo un mc colocado en la parte superior y quiero que el usuario lo pueda arrastrar hacia abajo y hacia arriba como un persiana, o sea, que no se desvie de la coordenada x=0 y que cuando llegue a y=-21.05 ya no se pueda arrastrar más hacia abajo, lo mismo para y=-599.60 que es la posición "y" inicial, una vez llegado ahí que ya no pueda seguir subiendo. Es exactamente igual que el subir y bajar de una persiana, con sus topes superior e inferior y su guía vertical. Hasta ahora tengo esto en el código, pero no acaba de funcionar correctamente.

Código ActionScript :

seccionarrastrable_mc.x=0.0
seccionarrastrable_mc.y=-599.60

this.addEventListener(MouseEvent.CLICK, 
                 guiamovimiento);
function guiamovimiento(e:MouseEvent) :void {
   if (seccionarrastrable_mc.x==0.0)
   {
seccionarrastrable_mc.addEventListener(MouseEvent.MOUSE_DOWN,
inicioARRASTREseccionarrastrable);
function inicioARRASTREseccionarrastrable(e:MouseEvent):void {
   seccionarrastrable_mc.startDrag();
   }
seccionarrastrable_mc.addEventListener(MouseEvent.MOUSE_UP,
finalARRASTREseccionarrastrable);
function finalARRASTREseccionarrastrable(e:MouseEvent):void {
   seccionarrastrable_mc.stopDrag();
      }
   } else {
      seccionarrastrable_mc.addEventListener(MouseEvent.MOUSE_UP,
finalARRASTREseccionarrastrable2);
function finalARRASTREseccionarrastrable2(e:MouseEvent):void {
      seccionarrastrable_mc.x=0.0;
      seccionarrastrable_mc.y=-21.05
      }
   }
}


Muchas gracias por adelantado.

Por menganita

8 de clabLevel



 

safari
Citar            
MensajeEscrito el 02 Feb 2011 10:19 am
¿Y cual es la pregunta exactamente? X_X

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

chrome
Citar            
MensajeEscrito el 02 Feb 2011 11:08 am
Hola, pues:
¿cómo hago para que el mc seccionarrastrable_mc sólo sea arrastrable de verticalmente sin moverse de la coordenada seccionarrastrable_mc.x=0?

y:

¿cómo anular el event startDrag cuando la coordenada seccionarrastrable_mc.y es menor a -599.60 o mayor a -21.05?

Por menganita

8 de clabLevel



 

safari
Citar            
MensajeEscrito el 02 Feb 2011 11:35 am
Es muy fácil, la función startDrag te pide un rectangle para delimitar el área de arrastre.

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/Sprite.html#startDrag()

Básicamente:

Código ActionScript :

clip.startDrag(false,new Rectangle(x,y,ancho,alto));


Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

chrome
Citar            
MensajeEscrito el 02 Feb 2011 12:12 pm
Mil gracias, me estudio esto que apuntas y te digo el resultado :)

Por menganita

8 de clabLevel



 

safari
Citar            
MensajeEscrito el 02 Feb 2011 03:56 pm
Muchísimas gracias!!!

Al final el código me ha quedado reducido así y me funciona perfectamente!!!

// PERSIANA //
seccionarrastrablehidro_mc.addEventListener(MouseEvent.MOUSE_DOWN,
inicioARRASTREseccionarrastrable);
function inicioARRASTREseccionarrastrable(e:MouseEvent):void {
seccionarrastrablehidro_mc.startDrag(false,new Rectangle(0,-599.60,1,577.20));
}
seccionarrastrablehidro_mc.addEventListener(MouseEvent.MOUSE_UP,
finalARRASTREseccionarrastrable);
function finalARRASTREseccionarrastrable(e:MouseEvent):void {
seccionarrastrablehidro_mc.stopDrag();
}

Un saludo!!! :D

Por menganita

8 de clabLevel



 

safari
Citar            
MensajeEscrito el 02 Feb 2011 04:05 pm
¿no has podido poner 0 tanto a la x inicial, como a la x final?

Código ActionScript :

seccionarrastrablehidro_mc.startDrag(false,new Rectangle(0,-599.60,0,577.20));

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Feb 2011 04:18 pm
ups! sí, sí que se puede!!! :)

Por menganita

8 de clabLevel



 

safari

 

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