Resulta que hice con Swift 3D un menú vertical giratorio en forma de rueda, y quiero conseguir que el menú gire y cambie de sección, es decir, de botón, conforme voy girando la rueda del ratón. Conseguí que girase, pero no que se detuviese en caso de estar en los fotogramas clave de los botones, que están cada 24 fotogramas, y el menú consta de 6 secciones y son 144 fotogramas, el último es repetido respecto al primero, porque también quiero hacer que vaya en ambos sentidos, no sólo en uno. Probé el siguiente código, con el evento onMouseWheel, en el clip que es el menú entero, pero no funciona:

Código :

onClipEvent(load)
{
   this.stop();
   var notificador:Object = new Object();
}

onClipEvent(mouseMove)
{
   notificador.onMouseWheel = function(delta, scrollTarget:MovieClip)
   {
      switch (this._currentframe)
      {
         case 24:
            stop();
            break;
         case 48:
            stop();
            break;
         case 72:
            stop();
            break;
         case 96:
            stop();
            break;
         case 120:
            stop();
            break;
         default:
            this.gotoAndPlay(this._currentframe = delta);
            break;
      }
   }
   Mouse.addListener(notificador);
}


Antes, hice algo similar pero con las flechas del teclado en lugar del ratón, y funcionaba, aunque no era lo que yo buscaba, puesto que a pesar de pararse en los fotogramas que yo quería, no se ejecutaba de nuevo, no permitiéndome acceder a otras secciones aparte de la segunda. Adjunto el código también:

Código :

onClipEvent(load)
{
   this.stop();
}

onClipEvent(keyDown)
{
   switch(Key.getCode())
   {
      case Key.DOWN :
         if(this._currentframe == 144)
         {
            this.gotoAndStop(1);
         }
         else
         {
            switch(this._currentframe)
            {
               case 24:
                  stop();
                  break;
               case 48:
                  stop();
                  break;
               case 72:
                  stop();
                  break;
               case 96:
                  stop();
                  break;
               case 120:
                  stop();
                  break;
               default:
                  this.nextFrame();
                  break;
            }
         }
         break;
         
      case Key.UP :
         if(this._currentframe == 1)
         {
            this.gotoAndStop(144);
         }
         else
         {
            switch(this._currentframe)
            {
               case 24:
                  stop();
                  break;
               case 48:
                  stop();
                  break;
               case 72:
                  stop();
                  break;
               case 96:
                  stop();
                  break;
               case 120:
                  stop();
                  break;
               default:
                  this.prevFrame();
                  break;
            }
         }
         break;
         
      default :
         stop();
         break;
   }
}


Soy nuevo en ActionScript, muchas gracias por adelantado. Intento no molestarles consultándoles estas cosas, pero estoy realmente atascado en este código desde hace días.
Gracias.[/code]