Actionscript 3.0: Simular el movimiento de una cuerda

Actionscript 3.0: Simular el movimiento de una cuerda

Etiquetas: addEventListener graphics clear moveTo lineStyle curveTo Math.sin Math.sqrt

Imagen en reemplazo de flash
Cuando empecé a aprender Flash, lo que más me llamaba la atención eran los experimentos de páginas como uncontrol. Con el tiempo he ido viendo que algunos de esos experimentos no son tan complicados como me parecían, sino que son una mezcla de imaginación y matemáticas. Este es el código para simular el movimiento de una cuerda oscilando, utilizando la función curveTo y un poco de matemáticas.

  1. //CLASES
  2. import flash.display.*;
  3.  
  4. //VARIABLES
  5.  
  6. var ang:Number;
  7. //Longitud del hilo
  8. var l:Number = 300;
  9.  
  10. //FUNCIONES
  11.  
  12. //Inicializa la escena
  13. function Empezar(){
  14. 	Extremo2_mc.ang = 0;
  15. 	Extremo2_mc.addEventListener(Event.ENTER_FRAME,Mover);
  16. 	addEventListener(Event.ENTER_FRAME,Dibujar);
  17. }
  18.  
  19. //Esta función dibuja la curva que "simula" el hilo
  20. function Dibujar(e:Event){
  21. 	Dibujo_mc.graphics.clear();
  22. 	Dibujo_mc.graphics.moveTo(Extremo1_mc.x,Extremo1_mc.y);
  23. 	Dibujo_mc.graphics.lineStyle(2, 0x000000);
  24. 	var ex1 = Extremo1_mc.x;
  25. 	var ex2 = Extremo2_mc.x;
  26. 	//Esta es la linea que dibuja el hilo cada frame. La sintaxis es 
  27. 	//clip.graphics.curveTo(fugax,fugay,finalx,finaly)
  28. 	Dibujo_mc.graphics.curveTo(ex2 - (0.8 * (ex2-ex1)), Extremo2_mc.y - 100,Extremo2_mc.x,Extremo2_mc.y);
  29. }
  30.  
  31. //Mueve el extremo del hilo
  32. function Mover(e:Event){
  33. 	e.target.x = 200 + Math.sin(e.target.ang) * 150;
  34. 	var difx = e.target.x - Extremo1_mc.x;
  35. 	e.target.y = Math.sqrt(l*l - difx*difx) + Extremo1_mc.y;
  36. 	e.target.ang+=0.05;
  37. }
  38.  
  39. //Pongo en marcha
  40. Empezar();

Descargar archivos

Comentarios
    • Autor
    • Carlos Montiel Renteria
    Hola, estoy incorporandome al mundo del Actionscript, ¿podrian hecharme uma mano?, se trata de simular un pendulo y la verdad que ni siquiera se por donde empezar, muchas gracias anticipadamente, saludos
Dejar un comentario
Tu nombre (obligatorio):

E-mail (obligatorio, no se mostrará):

Web:

Comentario: