Comunidad de diseño web y desarrollo en internet online

Arrastrar con el mouse

Citar            
MensajeEscrito el 17 Mar 2011 09:04 am
Hola a todos,

Queria saber si existe manera de excluir un clip del grupo cuando usamos event.target.startDrag();
Tengo un clip que no deberia poder moverlo y no se como bloquearlo.
No puedo quitarlo ni moverlo ya que lo uso para detectar colision con

Código ActionScript :

var mc:MovieClip = e.target as MovieClip;
 Clip1.hitTestObject(DisplayObject(mc))

Clip1 que es con quien detecta si se tocan tambien se mueve si pincho en el.
Y uso event.target ya que son muchos clip los tengo posibilidad de arrastrar con el mouse.

Gracias por la ayuda de antemano.

Por zumimoraes

83 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 17 Mar 2011 10:28 am
No sé si entiendo bien cómo estás haciendo el startDrag(), pero, de todos modos, yo haría algo así:

Código ActionScript :

function arrastrar(e:MouseEvent){
    e.target.startDrag();
}

clip2.addEventListener(MOUSE_DOWN, arrastrar);
clip3.addEventListener(MOUSE_DOWN, arrastrar);
clip4.addEventListener(MOUSE_DOWN, arrastrar);
/* ... con todos los clips que quieras arrastrar... */


Con lo cual tú indicas cuales arrastrar, sin tener que indicar cuales no.

NOTA: No estoy muy seguro de si el evento era MOUSE_DOWN; creo que sí, pero llevo un tiempo sin programar en AS.

Por nestorrente

1010 de clabLevel

10 tutoriales

 

Vigo

chrome
Citar            
MensajeEscrito el 17 Mar 2011 05:27 pm
Hola,
comprendo tu consejo. Pero justamente quiero evitar tener que indicar los clip uno a uno ya que van a ser muchos e ire incorporando.
Ya evite tener que nombrar los clip pero puedo mover todos y hay uno que no debe de poder moverse. ya que es el que marca la zona donde colisionan.
El codigo de arrastrar lo puse asi:

Código :

this.stage.addEventListener(MouseEvent.MOUSE_DOWN, fl_ClickToDrag);
function fl_ClickToDrag(event:MouseEvent):void
{
event.target.startDrag();
}

this.stage.addEventListener(MouseEvent.MOUSE_UP, fl_ReleaseToDrop);
function fl_ReleaseToDrop(event:MouseEvent):void
{
stopDrag();
}


Y asi escribi para que se centre el clip al colisionar con el clip que quiero bloquear

Código :

this.stage.addEventListener(Event.ENTER_FRAME, hubicarCentro);
function hubicarCentro(event:Event)
{
var mc:MovieClip = e.target as MovieClip;
if (mc != null)
{
if (pantalla.hitTestObject(DisplayObject(mc)))
{
e.target.x += ((400) - e.target.height)/4;
etc etc etc.....

Solo que el clip llamado pantalla no debe moverse o se desordena todo.
Gracias por la ayuda

Por zumimoraes

83 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 17 Mar 2011 06:03 pm
Corrección:
e.target.x += ((400) - e.target.height)/4;

e.target.x += ((400) - e.target.x)/4;

Por zumimoraes

83 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 19 Mar 2011 07:31 pm
Podrías probar a meter los clips que quieres mover en un único clip y meter el código del movimiento en ese clip... sino no se me ocurre otra cosa.

Por nestorrente

1010 de clabLevel

10 tutoriales

 

Vigo

chrome

 

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