2011-03-07 15 views
7

Tengo un componente que extiende una lista de chispa, y cuando me desplazo con la rueda del mouse, se desplaza demasiado de una vez. He intentado buscar el controlador que trata con el desplazamiento de la rueda del mouse en la clase List y la clase VerticalLayout para anular pero no puedo encontrarlo.Flex Spark List Velocidad de desplazamiento de la rueda del mouse

¿Hay alguna otra manera en que deba cambiar esto o me falta algo?

+0

si su problema es sólo con la rueda del ratón mí: he el mismo problema y todavía no hay solución :(http://stackoverflow.com/questions/3584127/scrolling-interval-in- a-spark-list-with-tilelayout-oversized-while-using-mouse-wh – hering

+0

Sí, solo se desplaza la rueda del mouse, se mueve aproximadamente 3 veces más que el desplazamiento normal, por lo que parece inconsistente. De lo contrario, está bien ... Usando el mx list Podría hacer caso omiso de la función protegida mouseWheelHandler() para cambiar la velocidad, así que supuse que habría algo igual en la lista de chispa ... –

Respuesta

11

La propiedad "delta" de MouseEvent.MOUSE_WHEEL define cuántas líneas se desplazarán con un desplazamiento de rueda. Puede intentar cambiarlo en el controlador MOUSE_WHEEL (durante la fase de captura). Por ejemplo el siguiente código se desplazará línea por línea:

 protected function init(event:FlexEvent):void 
     { 
      list.addEventListener(MouseEvent.MOUSE_WHEEL, list_mouseWheelHandler, true); 
     } 

     protected function list_mouseWheelHandler(event:MouseEvent):void 
     { 
      event.delta = event.delta > 0 ? 1 : -1; 
     } 

+0

Ya lo intenté, llamaron al manejador demasiado tarde para que no tenga efecto en el desplazamiento, pero gracias de todos modos :) Lo que quiero saber es qué función para anular esa t La lista está llamando cuando escucha MouseEvent.MOUSE_WHEEL –

+1

Ha agregado el controlador con la captura establecida en falso. Si agrega el controlador con el conjunto de capturas a verdadero -> se llamará antes. Esto resolverá su problema y no necesita anular nada. En cuanto al hadler: compruebe VScrollBar-> mouseWheelHandler (pero, sinceramente, no necesita anularlo). Una vez más, intente suscribirse al evento MOUSE_WHEEL exactamente como en el ejemplo anterior. –

+0

¡Gracias! eso realmente resolvió el problema, lo siento, no me di cuenta ayer. la verdad estaba fuera de la pantalla, así que pensé que era lo que ya intenté ... muchas gracias :) –

0

Los y las propiedades "horizontalLineScrollSize" "verticalLineScrollSize" determinar el número de píxeles para desplazarse cuando el usuario selecciona las flechas de la barra de desplazamiento. La propiedad "verticalLineScrollSize" también controla la cantidad de desplazamiento cuando se usa la "rueda del mouse". El valor predeterminado es 5 píxeles. Las propiedades "horizontalPageScrollSize" y "verticalPageScrollSize" determinan cuántos píxeles se desplazan cuando el usuario selecciona la "pista de la barra de desplazamiento". El valor predeterminado es 20 píxeles.

Más detalles: http://livedocs.adobe.com/flex/3/html/help.html?content=containers_intro_4.html

Cuestiones relacionadas