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; }