Comunidad de diseño web y desarrollo en internet online

Click central y componente scrollpane

Citar            
MensajeEscrito el 15 Oct 2012 04:59 pm
Hola usuarios de Cristalab!

Tengo un MovieClip muy largo al que le asigné un componente scrollpane.

Quisiera saber si hay alguna propiedad en scrollpane para que al hacer click con el botón central del mouse pueda empezar a arrastrar ese MovieClip.

Para darles una idea más clara, quiero lograr lo mismo que sucede cuando presionamos y mantenemos el click central en nuestro navegador de internet y así vamos al pie o al cielo de la página.

Puedo agregar un detector de eventos al MovieClip (MouseEvent.MIDDLE_CLICK) ya que trabajo con Air. Pero seguramente no va a modificar la posición de la barra lateral. Además me va a tocar dibujar este MC adicional....



¿Me explico? :?

Gracias de antemano

Por viroguitar

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Oct 2012 01:39 pm
¿Cuando dices botón central te refieres a la ruedita? Entonces algo así:


stage.addEventListener( MouseEvent.MOUSE_WHEEL, onWheel)

function onWheel(event:MouseEvent ):void
{
if( scrollPane !== null )
{
scrollPane.verticalScrollPosition += - ( event.delta * 8 );
}
});


scrollPane es el nombre de instancia de tu scrollPane

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Oct 2012 04:10 pm

solisarg escribió:

¿Cuando dices botón central te refieres a la ruedita? Entonces algo así:


stage.addEventListener( MouseEvent.MOUSE_WHEEL, onWheel)

function onWheel(event:MouseEvent ):void
{
if( scrollPane !== null )
{
scrollPane.verticalScrollPosition += - ( event.delta * 8 );
}
});


scrollPane es el nombre de instancia de tu scrollPane

Jorge


Gracias Jorge siempre ayudando a todos aquí en el foro.
En realidad me refería al click central, o sea, cuando presionamos la ruedita, pero tu código me ayudó a resolverlo.

Se los dejo por si a alguien le sirve:

Código ActionScript :

      public function onClickEvent(e:MouseEvent)
      {
         nuevo_btn.removeEventListener(MouseEvent.CLICK, onClickEvent);

         miMC = new MovieClip();

         aSp = new ScrollPane();
         aSp.source = miMC;
         aSp.setSize(550,400);
         aSp.move(0,0);
         addChild(aSp);
         //var clickCentral:Boolean; (variables declaradas al principio de la clase)
         //var oldMouseY:Number;
         stage.addEventListener( MouseEvent.MIDDLE_MOUSE_DOWN, onMiddleDown);
         stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
         stage.addEventListener( MouseEvent.MIDDLE_MOUSE_UP, onMiddleUp);
      }
      function onMiddleDown(e:MouseEvent )
      {
         clickCentral = true;
         oldMouseY = mouseY;
      }
      function onMiddleUp(e:MouseEvent )
      {
         clickCentral = false;
      }

      function enterFrameHandler(e:Event )
      {
         if (clickCentral)
         {
            if ( aSp != null )
            {
               //la diferencia entre mouseY y oldMouseY es la aceleración 
               //el signo de esta diferencia es el sentido de movimiento.
               

               aSp.verticalScrollPosition +=  (mouseY-oldMouseY);
            }
         }
      }


Gracias de nuevo por tu ayuda

Por viroguitar

10 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.