Comunidad de diseño web y desarrollo en internet online

sacudiendo un clip

Citar            
MensajeEscrito el 07 Oct 2009 10:36 pm
hola a todos , necesito realizar lo siguiente:
un clip de pelicula que al ser tomado con el mouse con starDrag() lo llevo hasta otro clip de pelicula y sin soltarlo sacudo fuertemente este sobre el clip me inicie una animacion, con sacudir fuertemende me refiero a mover el mouse con el clip sujeto a el sobre el otro clip de un punto a otro punto rápidamente, seria bueno de que la persona pueda mover el clip como quiera contal de que lo mueva rapido sobre el otro clip

gracias por la ayudita :lol:

Por tuxianof

48 de clabLevel



 

chrome
Citar            
MensajeEscrito el 08 Oct 2009 11:00 am
Idea: al momento que detectes el hitTest, comienza a capturar la posición del clip en intervalos bastante cortos y cuenta la diferencia ... si supera X se estará moviendo rápidamente, sino está quieto o en slow motion

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 Oct 2009 10:31 pm
oye la verdad no te entiendo no veo la forma de hacerlo me podrías poner un ejemplo por favor

Por tuxianof

48 de clabLevel



 

chrome
Citar            
MensajeEscrito el 09 Oct 2009 07:02 am
imagina que tenemos un MC y creamos un ENTER_FRAME

Código ActionScript :

var X0:Number=stage.MouseX
var Y0:Number=stage.MouseY
mc.addEventListener(Event.ENTER_FRAME,conocerMovimiento)
function conocerMovimiento(e:Event){
       var X1=stage.MouseX;
       var Y1=stage.MouseY;
       var incremento=(X1-X0)*(X1-X0)+(Y1-Y0)*(Y1-Y0)
       trace(incremento)
       X0=X1
       Y0=Y1
}

Veremos la distancia al cuadrado de lo que se ha movido el ratón cada fps.
Si queremos podemos acumular ese incremento

Código ActionScript :

var X0:Number=stage.MouseX
var Y0:Number=stage.MouseY
var incremento:Number=0;
mc.addEventListener(Event.ENTER_FRAME,conocerMovimiento)
function conocerMovimiento(e:Event){
       var X1=stage.MouseX;
       var Y1=stage.MouseY;
       var distancia=(X1-X0)*(X1-X0)+(Y1-Y0)*(Y1-Y0)
       incremento+=distancia
       trace(incremento +" :" +distancia)
       X0=X1
       Y0=Y1
}

Veremos cómo estamos moviendo el Mouse.

Tú sólo quieres que cuente esa distancia si X1 e Y1 está sobre un Objeto dado
Pues ponle un "if"

Código ActionScript :

function conocerMovimiento(e:Event){
       if (objeto.hitTest(stage.mouseX,stage.mouseY)){ //<---si está sobre el objeto
                     ......
       }
}


Vale, ese es sólo el principio. Vemos el problema con literatura
1.-Cuando empecemos a draguear debemos añadir un listener MouseMove
2.-Cuando dejemos de draguear eliminaremos el listener MouseMove

3.-En El listener MouseMove, cuando haya un hitTest con el Objeto crearemos el listener ENTER_FRAME anterior

Así que deberemos tener 4 listener,
Para Draguear
MOUSE_DOWN //<---empieza a draguear y crea un MOUSE_MOVE
MOUSE_UP //<--elimina los lsitener MOUSE_MOVE y ENTER_FRAME

Para controlar que empiece a contar el incremento
MOUSE_MOVE //<--que controle el movimiento si choca o no

El que controla el incremento
ENTER_FRAME //<---que controle el incremento

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 10 Oct 2009 02:55 pm
gracias te agradezco mucho la ayuda pero te quisiera complementar algo

Código ActionScript :

var X0:Number=stage.MouseX 
var Y0:Number=stage.MouseY 
var incremento:Number=0; 
mc.addEventListener(Event.ENTER_FRAME,conocerMovimiento) 
function conocerMovimiento(e:Event){ 
       var X1=stage.MouseX; 
       var Y1=stage.MouseY; 
       var distancia=(X1-X0)*(X1-X0)+(Y1-Y0)*(Y1-Y0) 
       incremento+=distancia 
       trace(incremento +" :" +distancia) 
       X0=X1 
       Y0=Y1 
} 

:lol: este code no sirve este si

Código ActionScript :

var X0:Number=stage.mouseX 
var Y0:Number=stage.mouseY 
var incremento:Number=0; 
mc.addEventListener(Event.ENTER_FRAME,conocerMovimiento) 
function conocerMovimiento(e:Event){ 
       var X1=stage.mouseX; 
       var Y1=stage.mouseY; 
       var distancia=(X1-X0)*(X1-X0)+(Y1-Y0)*(Y1-Y0) 
       incremento+=distancia 
       trace(incremento +" :" +distancia) 
       X0=X1 
       Y0=Y1 
} 

este code si sirve es que presentaba problemas así que con solo cambiar el MouseX por mouseX sirvió
gracias ^^

Por tuxianof

48 de clabLevel



 

chrome
Citar            
MensajeEscrito el 13 Oct 2009 12:25 pm
este code no sirve este si


"Puse mouseX en minúsculas" hubiera sonado bastante mejor, sino suena a que has corregido algo realmente importante al algoritmo en vez de una tontería que se le habrá escapado al amigo Eliseo en el tipeo.
Como siempre, gracias Eliseo por poner en código la idea

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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