Comunidad de diseño web y desarrollo en internet online

Touch Scroll AS3 poner limite

Citar            
MensajeEscrito el 25 Mar 2015 01:55 am
Hola amigos estoy queriendo ponerle un limite a un mc que tiene la codificacion de abajo la cuestion es que al realizar el arrastre este se va hacia arriba o hacia abajo donde ya no hay imagen la pregunta es como puedo ponerle un limite en el codigo para que se detenga donde ya no hay imagen este es el codigo que estoy usando dejo el ejemplo:
[flash width=1000 height=600]http://www.domumstudio.com/TOUCH%20SCROLL.swf[/flash]



var ease:int = 6;
var targY:int = dragMe.y;
var drag:Boolean = false;
var ptY:Number = 0;

dragMe.addEventListener(Event.ENTER_FRAME, dragHandler, false, 0, true);
dragMe.addEventListener(MouseEvent.MOUSE_DOWN, downHandler, false, 0, true);
stage.addEventListener(MouseEvent.MOUSE_UP, upHandler, false, 0, true);

function dragHandler(e:Event):void
{
if (drag)
{
targY = mouseY + ptY;
}

e.target.y += (targY - e.currentTarget.y) / ease;
}

function upHandler(event:MouseEvent):void
{
drag = false;
}

function downHandler(e:MouseEvent):void
{
ptY = e.currentTarget.y - mouseY;
drag = true;
}

Por orlandoallos

11 de clabLevel



 

chrome
Citar            
MensajeEscrito el 25 Mar 2015 01:57 am

Por orlandoallos

11 de clabLevel



 

chrome
Citar            
MensajeEscrito el 25 Mar 2015 09:36 am
Asi a voz de pronto se me ocurre que deberias determinar el area visible de la imagen, luego calcular la altura de la imagen y dependiendo de los pixeles que desplaces la imagen respecto al area visible pues bloqueas con un if el codigo de dragHandler

Por giskard

110 de clabLevel



Genero:Masculino  

Programador y diseñador web

safari
Citar            
MensajeEscrito el 25 Mar 2015 01:34 pm
Gracias giskard por tu respuesta, soy diseñador grafico y ese es mi fuerte en AS3 conozco lo basico y este codigo lo he copiado de alguna pagina por ahi, para mi mc que cree me gustaria saber como se veria en el codigo lo que me comentas te agradezco de antemano por tu ayuda. Saludos

Por orlandoallos

11 de clabLevel



 

chrome
Citar            
MensajeEscrito el 25 Mar 2015 05:06 pm

Por orlandoallos

11 de clabLevel



 

chrome
Citar            
MensajeEscrito el 25 Mar 2015 10:58 pm
Hola borra todo el código y pone el siguiente, asegúrate de cambiar el nombre al movieclip de dragME a obj, por cierto el código no es de mi autoría, lo he encontrado en la siguiente dirección:
http://as3adventure.blogspot.com.es/2011/05/drag-ease.html

Código ActionScript :

import flash.events.MouseEvent;
import flash.geom.Point;
import flash.events.Event;
var destination:Point=new Point();
var dragging:Boolean = false;
var speed:Number = 5;
var offset:Point=new Point();
obj.addEventListener(MouseEvent.MOUSE_DOWN,startdrag);
stage.addEventListener(MouseEvent.MOUSE_UP,stopdrag);
obj.addEventListener(Event.ENTER_FRAME,followmouse);
function startdrag(e:MouseEvent):void {
   offset.x = obj.mouseX * obj.scaleX;
   offset.y = obj.mouseY * obj.scaleY;
   dragging = true;
}
function stopdrag(e:MouseEvent):void {
   dragging = false;
}
import flash.geom.Rectangle;
var bounds:Rectangle = new Rectangle(0,0,stage.stageWidth,stage.stageHeight);
function followmouse(e:Event):void {
   if (dragging) {
      destination.x = mouseX;
      destination.y = mouseY;
   }
   obj.x-=(obj.x-(destination.x-offset.x))/speed;
   obj.y-=(obj.y-(destination.y-offset.y))/speed;
   if (obj.x > bounds.left) {
      obj.x = bounds.left;
   }
   if (obj.x <  -  obj.width + bounds.right) {
      obj.x =  -  obj.width + bounds.right;
   }
   if (obj.y > bounds.top) {
      obj.y = bounds.top;
   }
   if (obj.y <  -  obj.height + bounds.bottom) {
      obj.y =  -  obj.height + bounds.bottom;
   }
}

Por giskard

110 de clabLevel



Genero:Masculino  

Programador y diseñador web

firefox
Citar            
MensajeEscrito el 26 Mar 2015 01:28 am
Impresionante giskard Gracias funciono perfecto :)

Por orlandoallos

11 de clabLevel



 

chrome
Citar            
MensajeEscrito el 26 Mar 2015 01:30 pm
Hola amigos tengo una pregunta mas y si quisiera que el desplazamiento a izquierda derecha arriba o abajo se vaya a una posición especifica como se ve en este video https://vimeo.com/11440002 que código me recomendarían o donde modificaría el código que nos envió nuestro amigo giskard? saludos...

Por orlandoallos

11 de clabLevel



 

chrome
Citar            
MensajeEscrito el 26 Mar 2015 02:55 pm
te doy la idea,, modifica la funcion para que en vez de pasarle la posicion del raton constantemente reciva la posicion en pantalla donde hayas echo click con el raton, registra una listener en el stage con el evento MouseEvent.CLICK y recupera la posicionx mouseX y mouseY

Saludos

Por giskard

110 de clabLevel



Genero:Masculino  

Programador y diseñador web

firefox

 

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