Hola a todos, tengo un problema al programar un juego que en principio parece una chorrada, pero me trae de cabeza desde ayer. Es el siguiente:
En mi juego tengo un murcielago que suelta 2 ondas cuando abre las alas. El murcielago y las ondas se recogen en un movieclip llamado s2bat y dentro de ese movieclip, las ondas tienen el nombre de instancia waveL y waveR.
El plan es que las ondas vayan recorriendo la pantalla hasta que salgan del escenario (es decir, de la pantalla). waveL se moverá hacia la izquierda hasta que su posicion dentro del stage sea < 0 y waveR por la derecha hasta que su posición en el stage sobrepase el stageWidth, la anchura del stage.
La forma de moverse de ambas la describo con ese trozo de codigo:

Código ActionScript :

while (s2bat.waveL.x > 0 || s2bat.waveR.x < stage.stageWidth){
   if (s2bat.waveL.x > 0) { s2bat.waveL.x -= 15; }
   else { s2bat.waveL.alpha = 0; trace("waveL fuera de stage"); }
   if (s2bat.waveR.x < stage.stageWidth) { s2bat.waveR.x += 15; }
   else { s2bat.waveR.alpha = 0; trace("waveR fuera de stage"); }
   if (s2bat.waveL.alpha == 0 && s2bat.waveR.alpha == 0){
      /* salir del bucle */
   }else { /*repetir bucle con otra funcion*/ }
}


El problema viene cuando estoy alterando la X de las ondas, ya que atiende a su posición dentro de su movieclip pariente (s2bat), y asi hace una comprobación que no concuerda con lo que necesito... He probado a usar, por ejemplo, s2bat.waveL.parent.x para alterar la posición atendiendo a la x de s2bat dentro del stage, pero no creo que esté bien porque hace cosas más raras todavía xD
Bueno, pues llegados hasta aquí, os pregunto a todos los que leáis, ¿qué se os ocurre al respecto? Anoche me quedé hasta MUY tarde intentando sacarlo y me he quedado seco de ideas (y de stamina :zzz: ). Le estaré muy agradecido a cualquiera que quiera dejar un trozo de sabiduría sobre el tema. Un saludo! :D