snipplrCallback({"id":30273,"title":"trayectoria-curva","source":"
  1. \/\/Funci\u00c3\u00b3n valor absoluto<\/span><\/div><\/li>
  2. function<\/span> abs<\/span>(<\/span> value:Number<\/span> )<\/span>:Number<\/span><\/div><\/li>
  3. {<\/span><\/div><\/li>
  4. return<\/span> value <<\/span> 0<\/span> ? -value : value;<\/div><\/li>
  5. }<\/span><\/div><\/li>
  6.  <\/div><\/li>
  7. \/\/Funcion que se ejecuta cuando se pulsa el bot\u00c3\u00b3n del rat\u00c3\u00b3n<\/span><\/div><\/li>
  8. function<\/span> drag(<\/span>event:MouseEvent)<\/span>:void<\/span> {<\/span><\/div><\/li>
  9. \tleyenda.visible<\/span>=false<\/span>;<\/div><\/li>
  10. \tletrero.visible<\/span> = false<\/span>;<\/div><\/li>
  11. \tevent.currentTarget<\/span>.startDrag<\/span>(<\/span>)<\/span>;<\/div><\/li>
  12. \tcentro.visible<\/span> = true<\/span>;<\/div><\/li>
  13. \tdestino.addEventListener<\/span>(<\/span>MouseEvent.MOUSE_MOVE<\/span>, updateAfterEvent<\/span>)<\/span>;<\/div><\/li>
  14. }<\/span><\/div><\/li>
  15.  <\/div><\/li>
  16. \/\/Funcion que se ejecuta cuando se dejde pulsar el bot\u00c3\u00b3n del rat\u00c3\u00b3n<\/span><\/div><\/li>
  17. function<\/span> drop(<\/span>event:MouseEvent)<\/span>:void<\/span> {<\/span><\/div><\/li>
  18. \tevent.currentTarget<\/span>.stopDrag<\/span>(<\/span>)<\/span>;<\/div><\/li>
  19. \tleyenda.visible<\/span>=true<\/span>;<\/div><\/li>
  20. \tdestino.removeEventListener<\/span>(<\/span>MouseEvent.MOUSE_MOVE<\/span>, updateAfterEvent<\/span>)<\/span>;<\/div><\/li>
  21. \tactualizarPunto(<\/span>)<\/span>;<\/div><\/li>
  22. \tdibujarCirculo(<\/span>)<\/span>;<\/div><\/li>
  23. }<\/span><\/div><\/li>
  24.  <\/div><\/li>
  25. \/\/Funcion que se ejecuta cuando se pulsa el bot\u00c3\u00b3n del rat\u00c3\u00b3n y se mueve<\/span><\/div><\/li>
  26. function<\/span> updateAfterEvent<\/span>(<\/span>event:MouseEvent)<\/span>:void<\/span>{<\/span><\/div><\/li>
  27. \tactualizarPunto(<\/span>)<\/span>;<\/div><\/li>
  28. \tdibujarCirculo(<\/span>)<\/span>;<\/div><\/li>
  29. \ttextoCentro.text<\/span> = "Centro: (0, "<\/span>+centroY.toFixed<\/span>(<\/span>0<\/span>)<\/span>+")"<\/span>;<\/div><\/li>
  30. \ttextoAngulo.text<\/span> = "Angulo de giro: "<\/span>+angulo.toFixed<\/span>(<\/span>1<\/span>)<\/span>;<\/div><\/li>
  31. }<\/span><\/div><\/li>
  32.  <\/div><\/li>
  33. \/\/Dibuja el circulo<\/span><\/div><\/li>
  34. function<\/span> dibujarCirculo(<\/span>)<\/span>{<\/span><\/div><\/li>
  35. \tmc.graphics<\/span>.clear<\/span>(<\/span>)<\/span>;<\/div><\/li>
  36. \tmc.graphics<\/span>.lineStyle<\/span>(<\/span>1<\/span>,0xFFFFFF)<\/span>;<\/div><\/li>
  37. \tmc.graphics<\/span>.drawCircle<\/span>(<\/span>centroY*<\/span>-1<\/span>+250<\/span>,150<\/span>,radio)<\/span>;<\/div><\/li>
  38. }<\/span><\/div><\/li>
  39.  <\/div><\/li>
  40. \/\/Calcula posici\u00c3\u00b3n del centro y el \u00c3\u00a1ngulo de giro<\/span><\/div><\/li>
  41. function<\/span> actualizarPunto(<\/span>)<\/span>{<\/span><\/div><\/li>
  42. \tpX = 150<\/span>-destino.y<\/span>;<\/div><\/li>
  43. \tpY = (<\/span>destino.x<\/span>-250<\/span>)<\/span>*<\/span>-1<\/span>;<\/div><\/li>
  44. \ttexto.text<\/span> = "Destino: ("<\/span>+pX.toFixed<\/span>(<\/span>0<\/span>)<\/span>+", "<\/span>+pY.toFixed<\/span>(<\/span>0<\/span>)<\/span>+")"<\/span>;<\/div><\/li>
  45.  <\/div><\/li>
  46. \tif<\/span> (<\/span>pX!<\/span>=0<\/span>)<\/span>{<\/span><\/div><\/li>
  47. \t\tcentroY = (<\/span>pX*<\/span>pX+pY*<\/span>pY)<\/span>\/<\/span>(<\/span>2<\/span>*<\/span>pY)<\/span>;<\/div><\/li>
  48. \t}<\/span>else<\/span>{<\/span><\/div><\/li>
  49. \t\tcentroY = 0<\/span>;<\/div><\/li>
  50. \t}<\/span><\/div><\/li>
  51.  <\/div><\/li>
  52. \tsacaAngulo(<\/span>)<\/span>;<\/div><\/li>
  53.  <\/div><\/li>
  54. \tcentro.x<\/span>=centroY*<\/span>-1<\/span>+250<\/span>;<\/div><\/li>
  55. \tcentro.y<\/span> = 150<\/span>;<\/div><\/li>
  56. \tradio = abs<\/span>(<\/span>centroY)<\/span>;<\/div><\/li>
  57. }<\/span><\/div><\/li>
  58.  <\/div><\/li>
  59. function<\/span> sacaAngulo(<\/span>)<\/span>{<\/span><\/div><\/li>
  60. \tvar<\/span> destY:Number<\/span>= pY-centroY;<\/div><\/li>
  61.  <\/div><\/li>
  62. \tangulo = (<\/span>Math<\/span>.atan<\/span>(<\/span>destY\/<\/span>pX)<\/span>)<\/span>*<\/span>(<\/span>180<\/span>\/<\/span>Math<\/span>.PI<\/span>)<\/span>;<\/div><\/li>
  63.  <\/div><\/li>
  64. \t\/\/Primer y segundo cuadrante<\/span><\/div><\/li>
  65. \tif<\/span> (<\/span>pX><\/span>=0<\/span> &&<\/span> pY<<\/span>0<\/span>)<\/span><\/div><\/li>
  66. \t\tangulo=angulo+360<\/span>;<\/div><\/li>
  67. \t\t\/\/Segundo cuadrante<\/span><\/div><\/li>
  68. \t\telse<\/span> if<\/span> (<\/span>y><\/span>0<\/span>)<\/span><\/div><\/li>
  69. \t\t\t\tangulo=angulo+180<\/span>;<\/div><\/li>
  70. \t\t\telse<\/span><\/div><\/li>
  71. \t\t\t\tangulo=angulo+180<\/span>;<\/div><\/li>
  72.  <\/div><\/li>
  73. \tif<\/span>(<\/span>pY==0<\/span>)<\/span>{<\/span><\/div><\/li>
  74. \t \t angulo=5<\/span>;<\/div><\/li>
  75. \t }<\/span>else<\/span> if<\/span>(<\/span>pY><\/span>0<\/span>)<\/span>{<\/span><\/div><\/li>
  76. \t \t angulo+=90<\/span>;\t<\/div><\/li>
  77. \t }<\/span>else<\/span>{<\/span><\/div><\/li>
  78. \t \t angulo=360<\/span>-angulo+90<\/span>;\t<\/div><\/li>
  79. \t }<\/span><\/div><\/li>
  80. }<\/span><\/div><\/li>
  81.  <\/div><\/li>
  82. destino.addEventListener<\/span>(<\/span>MouseEvent.MOUSE_DOWN<\/span>, drag)<\/span>;<\/div><\/li>
  83. destino.addEventListener<\/span>(<\/span>MouseEvent.MOUSE_UP<\/span>, drop)<\/span>;<\/div><\/li>
  84.  <\/div><\/li>
  85. var<\/span> angulo:Number<\/span> = 0<\/span>;<\/div><\/li>
  86. var<\/span> pX:Number<\/span> = 150<\/span>-destino.y<\/span>;<\/div><\/li>
  87. var<\/span> pY:Number<\/span> = (<\/span>destino.x<\/span>-250<\/span>)<\/span>*<\/span>-1<\/span>;<\/div><\/li>
  88. var<\/span> mc:MovieClip<\/span> = new<\/span> MovieClip<\/span>(<\/span>)<\/span>;<\/div><\/li>
  89. var<\/span> centroY:Number<\/span> = 0<\/span>;<\/div><\/li>
  90. var<\/span> radio:Number<\/span> = 0<\/span>;<\/div><\/li>
  91. centro.visible<\/span> = false<\/span>;<\/div><\/li>
  92. leyenda.visible<\/span> = false<\/span>;<\/div><\/li>
  93. texto.mouseEnabled<\/span> = false<\/span>;<\/div><\/li>
  94. textoCentro.mouseEnabled<\/span> = false<\/span>;<\/div><\/li>
  95. textoAngulo.mouseEnabled<\/span> = false<\/span>;<\/div><\/li>
  96. destino.buttonMode<\/span> = true<\/span>;<\/div><\/li>
  97. actualizarPunto(<\/span>)<\/span>;<\/div><\/li>
  98. dibujarCirculo(<\/span>)<\/span>;<\/div><\/li>
  99. this<\/span>.addChildAt<\/span>(<\/span>mc, 0<\/span>)<\/span>;<\/div><\/li><\/ol><\/pre>","link":"https:\/\/snipplr.com\/view\/30273\/trayectoria-curva"});