Con este pequeño código se explica el
uso de la función seno, aplicada al movimiento de objetos de arriba a abajo de
manera suavizada, la suavidad del movimiento se refiere a hacer que este
movimiento sea más real, esta clase hace
uso de otra, llamada Ball.as (bola) que crea una instancia bola que se usa en
el escenario a la que se aplica el movimiento de balanceo de arriba a abajo.
//modificaciones de la clase Smooth and Down Motion package{ import flash.display.Sprite; import flash.events.Event; public class Bobbing2 extends Sprite{ private var ball:Ball; //aqui empieza la modificaciones private var angle:Number= 0; private var centerY:Number=150; private var range:Number= 100; private var speed:Number= .1; public function Bobbing2(){ init(); } private function init():void{ ball = new Ball(); addChild(ball); ball.x=stage.stageWidth/2; addEventListener(Event.ENTER_FRAME, onEnterFrame); } public function onEnterFrame(event:Event):void{ ball.y=centerY+Math.sin(angle)*range; angle+=speed; } } }
Como podemos ver en este sencillo código,
además del objeto ball, se crea 3 variables que son el ángulo, al que le
aplicamos la función seno, la ubicación de la instancia ball en el escenario
esta respecto al eje Y en el punto centerY que tiene la mistad de nuestro
escenario justamente (si nuestro escenario es de 300px entonces el centro de
este será de 150 px), nuestro punto de referencia constante es el eje x por lo
que no varía sin embargo el eje y si varia por lo que le aplicamos la formula:
ball.y=centerY+Math.sin(angle)*range;
Que da el efecto de movimiento sobre
el eje y, aplicado justo al centro de nuestro escenario más el seno del ángulo;
que esta multiplicado por el rango de movimiento que está definido en 100,en la
siguiente línea de código:
angle+=speed;
A este Angulo se le hace un incremento
respecto a la velocidad, con la que actúa el objeto ball. Luego de compilar nuestro código podemos
ver en el escenario lo siguiente: