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