3. Condiciones -- if...then --

El objeto -sprite- reaccionará a los limites del escenario y rebotará.

El primer paso es expresar la condicion en términos de variables en el programa. Podemos decir que el circulo reaccione al borde inferior del escenario, declarando que la posición vertical del sprite sea más grande que la altura del escenario:

sp.locV > _movie.stage.rect.height  

El siguiente paso es expresar lo que debe hacer el círculo, la reacción, en este caso: subir en vez de seguir bajando, esto significa que la velocidad vertical deberá cambiar, esto estará almacenado en la variable yVelocidad.
 Así la definición de velocidad deberá cambiar de un valor positivo a un valor negativo, es decir yVelocidad de 1 a -1. Lo opuesto deberá suceder cuando el objeto toque el borde superior del escenario: yVelocidad cambiará desde -1 a 1. ambos cambios se sintetizan en el siguiente codigo:

yVelocidad = -yVelocidad

Finalmente, los codigos de la condición y la reacción serán:

if sp.locV > _movie.stage.rect.height or sp.locv < 0 then
  yVelocidad= -yVelocidad
end if

Cada vez que el circulo se mueve, lingo deberá revisarlas y comprobar si se cumplen para así determinar la posición del objeto en el escenario. El codigo completo es:

property sp, xVelocidad, yVelocidad

on beginSprite me
  sp = sprite(me.spriteNum)
  --valor inicial de velocidad x & y
  xVelocidad = 5
  yVelocidad = 1
end

on enterframe me
  
--condiciones
  if sp.locH >_movie.stage).rect.width or sp.locH < 0 then
    xVelocidad = -xVelocidad
  end if

  if sp.locV > _movie.stage.rect.height or sp.locv < 0 then
    yVelocidad = -yVelocidad
  end if

  --calcular posición
  sp.locH = sp.locH + xVelocidad
  sp.locv = sp.locV + yVelocidad
end

¿Por qué el objeto solo rebota cuando la mitad del mismo atravieza el borde del escenario?. ¿Cómo se haría para que los bordes del objeto reacionaran a los limites del escenarios?

_movie.stage: propiedad de película; se refiere a la película principal. En este ejemplo esta devuelve el tamaño de lapelícula.