Hola primer post jeje

Bueno el problema es este resulta que tomé una de estas plantillas de flashmo para aprender a trabajar con xml, todo bien hasta que llego el momento de agregarle botones a la barra de desplazamiento la cual es "artesanal" ( no es un componente agregado ) resulta que logre ponerle los botos y limitar el movimiento el problema es que haces click se mueve la barra pero 1 vez, lo mismo para arriba, revise en el foro entradas antiguas donde salia que le agregara un ENTER_FRAME y un MOUSE_UP para controlar el enter frame el cual controlaba el "loop" de bajar la barra, resulto que funcionó pero solo en una dirección ( apretaba el botón bajar y después me funcionaba solo una vez el de subir ).

ok se me ocurrió intentarlo con un while validando mediante valor boleano ( dependiendo de la funcion ENTER FRAME) y se me pegaba el swf... ayuda por favor ... estos botones me tienen estresado y los necesito para aplicarlos después en la pagina final ( que de hecho me falta solo esto :( ).
les adjunto el ultimo codigo "sano".

Repito ENTER FRAME me toma una sola vez y despues no funciona el del otro boton para subir

Código ActionScript :

alto=flashmo_scrollable_area.height-1;
f=1;
mov= flashmo_scrollable_area.height/flashmo_scroller.height;
btnup.addEventListener(MouseEvent.MOUSE_DOWN,arr);
btndown.addEventListener(MouseEvent.MOUSE_DOWN,abaj);

   function arr(evt:Event):void{
      f=flashmo_scroller.y;
      if(f>0)
      {
      flashmo_scroller.y-=mov;
      f=flashmo_scroller.y;
      }
   
   }
   
   function abaj(evt:Event):void
   {
      xx =f+flashmo_scroller.height-1;
      f=flashmo_scroller.y;
      if ((xx < alto)&&((f+mov)<alto))
      {
         flashmo_scroller.y +=mov;
         f=flashmo_scroller.y;
      }
   }

por si las moscas vuelan adjunto el resto del código

Código ActionScript :

function scrolling( ct:String, ct_area:String, speed:Number ):void
{
   scrolling_speed = speed;
   if( scrolling_speed < 0 || scrolling_speed > 1 ) scrolling_speed = 0.50;
      flashmo_content = parent[ct];
      
      flashmo_content_area = parent[ct_area];
      flashmo_scroller.x = flashmo_scrollable_area.x;
      flashmo_scroller.y = flashmo_scrollable_area.y;
      flashmo_content.mask = flashmo_content_area;
      flashmo_content.x = flashmo_content_area.x;
      flashmo_content.y = flashmo_content_area.y;
      sr = flashmo_content_area.height / flashmo_content.height;
      flashmo_scroller.height = flashmo_scrollable_area.height * sr;
      sd = flashmo_scrollable_area.height - flashmo_scroller.height;
      cd = flashmo_content.height - flashmo_content_area.height;
      cr = cd / sd * 1;
      drag_area = new Rectangle(0, 0, 0, flashmo_scrollable_area.height - flashmo_scroller.height + 1);
      flashmo_scroller.visible = flashmo_scrollable_area.visible = true;
      flashmo_scroller.addEventListener( MouseEvent.MOUSE_DOWN, scroller_drag );
      flashmo_scroller.addEventListener( MouseEvent.MOUSE_UP, scroller_drop );
      flashmo_content.addEventListener( MouseEvent.MOUSE_WHEEL, scroller_wheel );
      this.addEventListener( Event.ENTER_FRAME, on_scroll );
      
   if ( flashmo_content.height <= flashmo_content_area.height )
   {
      flashmo_scroller.visible = flashmo_scrollable_area.visible = false;
      flashmo_scroller.removeEventListener( MouseEvent.MOUSE_DOWN, scroller_drag );
      flashmo_scroller.removeEventListener( MouseEvent.MOUSE_UP, scroller_drop );
      flashmo_content.removeEventListener( MouseEvent.MOUSE_WHEEL, scroller_wheel );
      this.removeEventListener( Event.ENTER_FRAME, on_scroll );
   }
}

function scroller_drag( me:MouseEvent ):void
{
   me.target.startDrag(false, drag_area);
   stage.addEventListener(MouseEvent.MOUSE_UP, up);
}

function scroller_drop( me:MouseEvent ):void
{
   me.target.stopDrag();
   stage.removeEventListener(MouseEvent.MOUSE_UP, up);
}

function scroller_wheel(e:MouseEvent):void
{
   if( e.delta > 0 )
      wheel_value = flashmo_scroller.y - 60;
   else
      wheel_value = flashmo_scroller.y + 60;
   
   if( wheel_value < 0 )
      wheel_value = 0;
   if( wheel_value > flashmo_scrollable_area.height - flashmo_scroller.height )
      wheel_value = flashmo_scrollable_area.height - flashmo_scroller.height;
   
   Tweener.addTween( flashmo_scroller, 
      { y: wheel_value, time: 0.6, transition: "easeOut" } );
}

function up( me:MouseEvent ):void
{
   flashmo_scroller.stopDrag();
}

function on_scroll( e:Event ):void{
   new_y = flashmo_content_area.y + flashmo_scrollable_area.y * cr - flashmo_scroller.y  * cr;
   flashmo_content.y += ( new_y - flashmo_content.y ) * scrolling_speed;
}