Foros del Web » Creando para Internet » Flash y Actionscript »

Mover agujas de reloj con AS2 - drag and drop

Estas en el tema de Mover agujas de reloj con AS2 - drag and drop en el foro de Flash y Actionscript en Foros del Web. Hola a tod@s! Tengo un pequeño problemilla. Necesito hacer un reloj en el que se pueda mover la aguja de las horas mediante drag and ...
  #1 (permalink)  
Antiguo 08/10/2011, 06:00
Avatar de digonuz  
Fecha de Ingreso: octubre-2010
Mensajes: 209
Antigüedad: 14 años, 1 mes
Puntos: 15
Pregunta Mover agujas de reloj con AS2 - drag and drop

Hola a tod@s!

Tengo un pequeño problemilla. Necesito hacer un reloj en el que se pueda mover la aguja de las horas mediante drag and drop con distintos targets. Esto es para un juego infantil en el que el niño debe mover la aguja hasta la hora que le están pidiendo para lanzar una locución diciendo "bieeeen" o "inténtalo de nuevo" según donde caiga. Lo que es el drag and drop con targets lo tengo pillado, el problema es "anclar" la aguja al reloj para que parezca real...

Alguna idea?
GRACIAS DE ANTEMANO!
  #2 (permalink)  
Antiguo 10/10/2011, 01:50
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 20 años, 3 meses
Puntos: 12
Respuesta: Mover agujas de reloj con AS2 - drag and drop

No creo que el drag and drop sea lo más correcto sino con eventos del Mouse. Yo lo haría capturando la posición del mouse y calculando el ángulo que forma con el centro del reloj. Por ejemplo, si tienes el centro del reloj en (0, 0) y sueltas el mouse en (5, 5) el ángulo que debe mostrar la aguja es 45º. Eso se hace con las propiedades seno y coseno de la clase Math (que pide los ángulos en radianes: 180º = pi rad). El seno de un ángulo es igual al cateto opuesto dividido por la hipotenusa.
Saludos!
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #3 (permalink)  
Antiguo 10/10/2011, 14:40
Avatar de digonuz  
Fecha de Ingreso: octubre-2010
Mensajes: 209
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: Mover agujas de reloj con AS2 - drag and drop

No me he enterao de ná... jejeje es que yo sólo sé programar a niveles "básicos"... Eso sí, GRACIAS por tu respuesta... voy a intentar seguir la pista que me das a ver que sale. Toca estudiar.

Gracias!
  #4 (permalink)  
Antiguo 11/10/2011, 02:17
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 20 años, 3 meses
Puntos: 12
Respuesta: Mover agujas de reloj con AS2 - drag and drop

Lo siento, hace mil años que dejé atrás el as2 por lo que ahora no lo tengo muy fresco. Sin embargo seguro que puedo montarte un ejemplillo en pocos minutos.
Saludos!
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #5 (permalink)  
Antiguo 11/10/2011, 02:27
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 20 años, 3 meses
Puntos: 12
Respuesta: Mover agujas de reloj con AS2 - drag and drop

Me he picado y lo he montado. Lo que no sé es si le quieres echar un vistazo o sacarlo por tu cuenta.
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #6 (permalink)  
Antiguo 12/10/2011, 05:25
Avatar de digonuz  
Fecha de Ingreso: octubre-2010
Mensajes: 209
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: Mover agujas de reloj con AS2 - drag and drop

Hombre muchísimas gracias! La verdad es que voy fatal de tiempo. Si me dejases el ejemplo te estaría muy agradecido.
  #7 (permalink)  
Antiguo 13/10/2011, 01:53
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 20 años, 3 meses
Puntos: 12
Respuesta: Mover agujas de reloj con AS2 - drag and drop

Perdona por la tardanza, ayer festivo no toqué el ordenador en todo el día. Ahí va el código:
Código ActionScript:
Ver original
  1. aguja.onMouseDown = function () {
  2.     this.onEnterFrame = function() {
  3.         var contiguo:Number     = _root._xmouse - 175;
  4.         var opuesto:Number      = _root._ymouse - 175;
  5.         var hipotenusa:Number   = Math.sqrt(Math.pow(opuesto, 2) + Math.pow(contiguo, 2));
  6.         var angulo:Number       = Math.asin(opuesto / hipotenusa) * 180 / Math.PI;
  7.         if (contiguo < 0)       angulo = 180 - angulo;
  8.         aguja._rotation         = angulo;
  9.     }
  10. }
  11. onMouseUp = function() {
  12.     delete aguja.onEnterFrame;
  13. }
Para crear el símbolo de la aguja debe descansar horizontalmente con el punto de anclaje a la izquierda. Cuando la instancies en el escenario, puedes ponerla apuntando a donde quieras (nombre de instancia 'aguja').
Y eso es todo. Es un código mejorable pero para empezar vale.
Saludos!
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #8 (permalink)  
Antiguo 14/10/2011, 10:06
Avatar de digonuz  
Fecha de Ingreso: octubre-2010
Mensajes: 209
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: Mover agujas de reloj con AS2 - drag and drop

GRACIAS!! Voy a probarlo y te cuento!
  #9 (permalink)  
Antiguo 14/10/2011, 10:32
Avatar de digonuz  
Fecha de Ingreso: octubre-2010
Mensajes: 209
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: Mover agujas de reloj con AS2 - drag and drop

Dos cosas, una me da errores de sintaxis... seguramente sea fallo mío al pegar el código, pero lo he revisado y en mi corto entendimiento del tema no veo fallos. La otra es saber dónde pego el código, si en el fotograma o en el propio objeto (imagino que en el objeto de cara a luego meter la programación para detectar colisiones)... es que yo me dedico sobre todo a medios impresos, y la programación se me escapa jeje

MUCHAS GRACIAS!
  #10 (permalink)  
Antiguo 14/10/2011, 10:52
Avatar de digonuz  
Fecha de Ingreso: octubre-2010
Mensajes: 209
Antigüedad: 14 años, 1 mes
Puntos: 15
Respuesta: Mover agujas de reloj con AS2 - drag and drop

Ya! Lo conseguí!! Muchas gracias otra vez. Tenía un fallo relativamente "tonto" y junto con un tutorial que también encontré cuando me diste las primeras pistas lo he completado.

MUCHAS GRACIAS AMIGO!!
  #11 (permalink)  
Antiguo 14/10/2011, 11:47
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 20 años, 3 meses
Puntos: 12
Respuesta: Mover agujas de reloj con AS2 - drag and drop

El código iba en el fotograma, por eso la referencia a la 'aguja'.
Me alegro que ya lo tengas resuelto.
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge

Etiquetas: as2, drag, drop, reloj
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:00.