Estou trabalhando em um projeto atualmente em que o cliente solicitou que o aplicativo pudesse ser controlado por teclas de atalho. Elas funcionam perfeitamente no Google Chrome e no IE mas, por algum motivo, o Firefox não trabalha muito bem com o foco em objetos “embedados” as vezes.
Depois de muitos testes, encontrei uma maneira bem simples de “resolver” esse problema. Primeiro você precisa abrir sua aplicação em algum navegador e olhar o código fonte de página. Procure pela tag <object> e olhe o valor do atributo “id” dela. Se você estiver no Flex usando o template padrão, esse valor deverá ser o nome da sua Application. No meu caso esse valor é “index”. Então escrevi essa linha em JavaScript para colocar o foco novamente no Flash:
[javascript]document.getElementById(‘index’).focus();[/javascript]
Para usar esse código em sua aplicação Flex sem precisar mudar nada no template, faça:
navigateToURL(new URLRequest("javascript:try{ document.getElementById('index').focus(); void(0); }catch(err){}"), "_self");
algumComponente.setFocus();
Funcionará melhor se você tentar encontrar onde sua aplicação está perdendo o foco (ao abrir alguma popup, no meu caso) e colocar o código logo em seguida. Usei um try/catch para evitar problemas, como no caso do usuário abrir o SWF diretamente.
Espero que seja útil,
Abraços!
[…] Problema de foco com Flash/Flex no Firefox […]
Muito bom isso!
Estou desenvolvendo um sisteminha que precisa efetuar login e precisava clicar na combobox pra escolher o usuário, não dava pra simplesmente apertar pra baixo e dar tab pra entrar com a senha 😀
Valeu André!
No chrome 11.0.696.68 não rolou… alguma alternativa?