Sim, funciona sim, agora to com um outro probleminha que é o seguinte:
Se eu tabulo com Enter de um componente qualquer para um TextArea o cursor
vai para o TextArea, porém para a 2ª linha já.... Ele pula uma linha. Abaixo
segue a rotina..
public class MyFocusManager
{
private var container:Container;
public function MyFocusManager()
{
}
public function addFocusSequence(comps:Array, container:Container):void
{
for (var i:int = 0; i < comps.length; i++) {
(comps[i] as UIComponent).tabIndex = i+1;
}
this.container = container;
this.container.addEventListener(KeyboardEvent.KEY_DOWN, enterTab);
}
private function enterTab(e:KeyboardEvent):void
{
if ((e.keyCode == 13)) {
var objetoQueContemOFoco:String =
flash.utils.getQualifiedClassName(this.container.focusManager.getFocus());
//TextArea NAO tabula com ENTER
if(objetoQueContemOFoco.indexOf("TextArea") < 0) {
this.container.focusManager.moveFocus(FocusRequestDirection.FORWARD);
}
}
}
}
Eu passo um array contendo os componentes do meu "form" e o container dele,
por exemplo um canvas...
A Tabulação está OK, a não ser pelo problema do TextArea. Alguma dica para
resolver tal problema?
PS: parte do metodo "enterTab" retirei do exemplo do Eduardo Kraus. Valeu
Eduardo por compartilhar conhecimento.
2010/4/7 Paullo Estevam <[email protected]>
> Amigo,
>
> experimente usar:
> this.focusManager.moveFocus(FocusRequestDirection.FORWARD);
>
> isso vai mover o focus para o próximo componente, na ordem da propriedade
> tabIndex de cada componente.
>
> 2010/4/6 Leonardo Ribeiro <[email protected]>
>
>> Pessoal,
>>
>> Tenho uma tela (acima um panel com botoes e abaixo um form com os
>> componentes) que o último componente do form é um DateField. Criei uma
>> função para tabular tanto com Enter como com Tab.
>> Segue abaixo
>>
>> public static function onEnterPressed(event:KeyboardEvent,
>> control:Object):void {
>> if (event.keyCode == Keyboard.ENTER || event.keyCode == Keyboard.TAB) {
>> if (control is TextInput) {
>> (control as TextInput).setFocus();
>> } else if (control is ComboBox) {
>> (control as ComboBox).setFocus();
>> } else if (control is Button) {
>> (control as Button).setFocus();
>> } else if (control is DateField) {
>> (control as DateField).setFocus();
>> } else if (control is TextArea) {
>> (control as TextArea).setFocus();
>> }
>> }
>>
>>
>> O problema é que nessa tela (form) que tem um DateField como ultimo campo,
>> se eu pressiono Enter estando nesse componente ele vai para o
>> próximo componente (no caso um botão da barra de botões), porém se eu
>> pressiono Tab o foco vai para a barra de endereço do navegador.
>>
>> Alguém sabe o pq disso?
>>
>> Já debuguei e tanto com Enter como com Tab é executado o mesmo código da
>> função acima.
>>
>>
>> --
>> []'s
>> Leonardo
>>
>> Linux User #488650
>> Ubuntu User #27045
>> Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
>>
>> --
>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> Para enviar uma mensagem, envie um e-mail para [email protected]
>> Para sair da lista, envie um email em branco para
>> [email protected]
>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>
>
>
>
> --
> -----------------------------------------------
> Cel. 83 8790.1304
> [email protected]
> www.paulloestevam.com.br
>
>
>
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para [email protected]
> Para sair da lista, envie um email em branco para
> [email protected]
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>
--
[]'s
Leonardo
Linux User #488650
Ubuntu User #27045
Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
To unsubscribe, reply using "remove me" as the subject.