William,
Tentei seguir sua dica, mas seu um erro em tempo de compilação. Então
para funcionar tipo que colocar dessa forma
var fm:IFocusManager = this.getFocus() as FocusManager;
Mas o erro continuou o mesmo.
Tentei colocar a chamada da função no keyUp e Down da tag principal -
no caso TitleWindow -, tentei colocar no TabNavigator e no Canvas. Mas
o problema persiste. ;/
Segue a função:
public function mudarComponente(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.ENTER)
{
var fm:IFocusManager = this.getFocus() as FocusManager;
var next:IFocusManagerComponent;
if (event.shiftKey)
{
next = fm.getNextFocusManagerComponent(true);
}
else
{
next = fm.getNextFocusManagerComponent(false);
}
next.setFocus();
}
}
On 10 dez, 13:29, William Lima <[email protected]> wrote:
> Ednei,
>
> Tente var fm:IFocusManager = this.getFocus();
>
> ao invés de
>
> var fm:IFocusManager = this.focusManager;
>
> Em 10 de dezembro de 2010 10:02, Ednei <[email protected]> escreveu:
>
>
>
> > Blz William,
>
> > Já agradeçendo a força... veja: O que acontece é que sempre quando eu
> > chamo o getNextFocusManagerComponent, o retorno é *null*. Tanto da
> > forma quanto eu fazia antes, quanto da forma que você postou, quanto
> > da que eu tentei depois; o que o getNextFocusManagerComponent traz é o
> > mesmo - null .
>
> > Será que é algum problema com o meu SDK?
>
> > Veja o código como está agora:
>
> > public function mudarComponente(event:KeyboardEvent):void
> > {
> > if (event.keyCode == Keyboard.ENTER)
> > {
> > var fm:IFocusManager = this.focusManager;
> > var next:IFocusManagerComponent;
>
> > if (event.shiftKey)
> > {
> > next = fm.getNextFocusManagerComponent(true);
> > }
> > else
> > {
> > next = fm.getNextFocusManagerComponent(false);
> > }
> > next.setFocus();
> > }
> > }
>
> > On 8 dez, 22:12, William Lima <[email protected]> wrote:
> > > Blz Ednei,
>
> > > Eu uso assim:
>
> > > ...
> > > public function mudarComponente(evento: KeyboardEvent):void {
> > > if (evento.keyCode == Keyboard.ENTER){
> > > if (evento.shiftKey){
>
> > > focusManager.getNextFocusManagerComponent(true).setFocus();
> > > }
> > > else{
>
> > > focusManager.getNextFocusManagerComponent(false).setFocus();
> > > }
> > > }
> > > }
> > > ...
>
> > > para chamar este método coloco o mudarComponente na propriedade keyDown
> > de
> > > cada componente que desejar, ou pode colocar no keyDown do container
> > assim
> > > tudo que poderá receber um foco será 'atingido'.
>
> > > Espero ter ajudado!
>
> > > Em 8 de dezembro de 2010 19:58, Ednei <[email protected]>
> > escreveu:
>
> > > > Repostando a função.
>
> > > > protected function
> > handleKeyboardEnter(event:KeyboardEvent):void
> > > > {
> > > > if (event.keyCode== 13)
> > > > {
> > > > var fm:IFocusManager =
> > this.focusManager;
> > > > var next:IFocusManagerComponent =
> > > > fm.getNextFocusManagerComponent();
> > > > fm.setFocus(next);
> > > > }
> > > > }
>
> > > > On Dec 8, 8:05 pm, Ednei <[email protected]> wrote:
> > > > > Opa, eu tenho um código dentro da minha classe InputMoney. Na qual
> > > > > quando o usuário apertar ENTER, o focus passaria para o próximo campo
> > > > > - como acontece com o Tab.
>
> > > > > protected function
> > > > handleKeyboardEnter(event:KeyboardEvent):void
> > > > > {
> > > > > if (event.keyCode== 13)
> > > > > {
> > > > > var fm:IFocusManager =
> > this.focusManager;
> > > > > var next:IFocusManagerComponent =
> > > > > fm.getNextFocusManagerComponent();
> > > > > fm.setFocus(fm.getNextFocusManagerComponent());
> > > > > }
> > > > > }
>
> > > > > Mas aparece essa mensagem.
>
> > > > > TypeError: Error #1009: Não é possível acessar uma propriedade ou um
> > > > > método de uma referência de objeto nula.
> > > > > at
> > > > mx.managers::FocusManager/setFocus()[C:\autobuild\3.2.0\frameworks
> > > > > \projects\framework\src\mx\managers\FocusManager.as:545]
> > > > > at
> > > > br.com.app.component::InputMoney/handleKeyboardEnter()[C:\xampp
> > > > > \htdocs\gw\src_flex\br\com\app\component\InputMoney.as:80]
>
> > > > --
> > > > 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 emhttp://groups.google.com/group/flexdev
>
> > > --
> > > *William de Farias Lima*
> > > Desenvolvedor - FCM Sistemaswww.fcmsistemas.com.br
> > > williamlima @fcmsistemas.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 emhttp://groups.google.com/group/flexdev
>
> --
> *William de Farias Lima*
> Desenvolvedor - FCM Sistemaswww.fcmsistemas.com.br
> williamlima @fcmsistemas.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