Pergunta

Eu sou novo para Flex, embora não seja novo em programação. Eu quero escrever um manipulador de evento genérico que será chamado por todas as minhas caixas TextInput quando recebem o foco. Quando eles têm foco, eu quero mudar a cor da caixa de textinput. Quando eles perdem o foco, eu quero restaurar o perfil de cor "inativa". Eu poderia escrever um manipulador de eventos ActionScript para cada caixa textinput, mas todos nós sabemos que é coxo. :. O) O que eu preciso, então, é uma maneira de acessar o objeto que está chamando o manipulador de eventos

Em Delphi, eu teria escrito uma função que passa no objeto remetente, permitindo-me para acessar as propriedades do objeto chamando. Eu estou supondo ActionScript / Flex tem uma arquitetura completamente diferente, que é por isso que eu estou tendo dificuldade em fazer isso.

Graças, em antecipação!

Foi útil?

Solução

Você deve subclasse TextInput e manipular os eventos foco lá. Eu acho que esta seria a maneira mais simples de conseguir o que você está procurando, sem ter qualquer código complexo.

Outras dicas

Espero que eu estou entendendo o que você está pedindo ... você está falando delegação de eventos?

Isso funcionou para mim:

// 'focusOut' for blur
stage.addEventListener('focusIn', function(e:Event):void {
    // The focused control is e.target
});

Se você quiser mudar o visual da caixa de entrada focado, você pode fazer isso definindo a propriedade focusSkin. Se você quer que isso aconteça globalmente, você pode colocar uma declaração de estilo em seu arquivo CSS.

Neste exemplo CSS Eu estou substituindo o padrão focusSkin (mx.skins.halo.HaloFocusRect) com um arquivo PNG incorporado.

TextInput {
  focusSkin: Embed(source="focus.png");
}

TextInput tem algumas propriedades para alterar a aparência do foco, como mudar a opacidade da pele foco (propriedade focusAlpha). Verifique a TextInput documentação para mais informações.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top