Comunidad de diseño web y desarrollo en internet online

Problema con focus

Citar            
MensajeEscrito el 24 Oct 2012 11:55 am
Hola a todos!
He creado un MovieClip similar a una planilla de cálculo. Desde la clase principal creo una instancia de esta planilla y la agrego al escenario.

He estado intentando establecer el tabIndex desde la propia clase del Movieclip de esta planilla como les muestro:

Código ActionScript :

package 
{
import flash.display.*


   public class PlanillaCalculo extends MovieClip
   {

      public function PlanillaCalculo()
      {
         //Nombre de instancia de los campos de texto
         this.nombre_txt.tabIndex = 1;
         this.edad_txt.tabIndex = 2;
         this.tel_txt.tabIndex = 3;
         this.email_txt.tabIndex = 4;

      }

   }

}


Pero esto no funciona. Además me gustaría cambiar de campo de texto utilizando las flechitas del teclado pero como la planilla tiene un componente scroll bar cuando presiono las flechitas se mueve el scroll en vez de saltar los campos de texto....

¿Me podrían ayudar por favor?

Por viroguitar

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 24 Oct 2012 01:34 pm
Deberías capturar el Key (agregandole un listener a la clase Key) y si lo que se ha presionado son las flechas, hacer un setFocus adonde corresponda (deberás guardar la última posición para que sea consecutiva)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Oct 2012 02:20 pm
Gracias pero tengo conflictos con esto.

El problema es que necesito navegar con el tabulador y las flechas del teclado dentro de unos campos de texto. Estos estan dentro de un MC y este MC esta contenido dentro de un Scroll pane.

Si presiono la flecha de abajo del teclado el Scroll pane me cambia la posición x del MC y, si tengo seleccionado un campo de texto y presiono tabulador, el foco se me va al scroll pane en vez de al siguiente cuadro de texto.

Espero haberme explicado.

Por viroguitar

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 25 Oct 2012 02:40 pm
Entonces tienes que deshabilitar el foco de todos los componentes en cuento entres en el formulario y manejarlo manualmente ... hace tiempo que no hago eso en Flash, consulta la clase FocusManager para ver como se manipula eso

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Oct 2012 03:20 pm
Intenté crear una subclase de Scroll pane y remover las sentencias dentro de la función que se dispara ante una entrada de teclado. Pero deja de funcionar cuando vuelve el foco al scroll pane.

Código ActionScript :

package 
{
   /*This class disables the Scroll Pane built-in behavior
   that fires ScrollPosition changes when user press any arrow key*/


   import fl.containers.ScrollPane;
   import fl.containers.BaseScrollPane;
   import fl.controls.ScrollBar;
   import fl.controls.ScrollPolicy;
   import fl.core.InvalidationType;
   import fl.core.UIComponent;
   import fl.display.ProLoader;
   import fl.events.ScrollEvent;
   import fl.managers.IFocusManagerComponent;
   import flash.display.DisplayObject;
   import flash.display.Sprite;
   import flash.events.Event;
   import flash.events.KeyboardEvent;
   import flash.events.MouseEvent;
   import flash.events.ProgressEvent;
   import flash.events.SecurityErrorEvent;
   import flash.events.IOErrorEvent;
   import flash.events.HTTPStatusEvent;
   import flash.geom.Rectangle;
   import flash.net.URLRequest;
   import flash.system.ApplicationDomain;
   import flash.system.LoaderContext;
   import flash.ui.Keyboard;

   public class CustomScrollPane extends ScrollPane
   {

      public function CustomScrollPane()
      {
         // constructor code
      }
      override protected function keyDownHandler(event:KeyboardEvent):void
      {
         var pageSize:int = calculateAvailableHeight();
         switch (event.keyCode)
         {
            case Keyboard.DOWN :
            case Keyboard.UP :
            case Keyboard.RIGHT :
            case Keyboard.LEFT :
               //do nothing;
               break;
            case Keyboard.END :
               verticalScrollPosition = maxVerticalScrollPosition;
               break;
            case Keyboard.HOME :
               verticalScrollPosition = 0;
               break;
            case Keyboard.PAGE_UP :
               verticalScrollPosition -=  pageSize;
               break;
            case Keyboard.PAGE_DOWN :
               verticalScrollPosition +=  pageSize;
               break;
         }
      }

   }
}


Por favor alguien me podría ayudar?

Por viroguitar

10 de clabLevel



 

chrome

 

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