Pregunta

Soy nuevo en Flex, aunque no soy nuevo en programación. Quiero escribir un controlador de eventos genérico que será llamado por todos mis cuadros de entrada de texto cuando reciban el foco. Cuando tienen el foco, quiero cambiar el color del cuadro de entrada de texto. Cuando pierdan el foco, quiero restaurar el " inactivo " perfil de color. Podría escribir un controlador de eventos de ActionScript para cada cuadro de entrada de texto, pero todos sabemos que es poco convincente. : o) Lo que necesito, entonces, es una forma de acceder al objeto que está llamando al controlador de eventos.

En Delphi, habría escrito una función que pasa en el objeto Remitente, lo que me permite acceder a las propiedades del objeto que llama. Supongo que ActionScript / Flex tiene una arquitectura completamente diferente, por lo que tengo dificultades para hacerlo.

Gracias de antemano!

¿Fue útil?

Solución

Debería subclasificar TextInput y manejar los eventos de foco allí. Creo que esta sería la forma más sencilla de lograr lo que está buscando sin tener ningún código complejo.

Otros consejos

Espero entender lo que estás pidiendo ... ¿estás hablando de la delegación de eventos?

Esto funcionó para mí:

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

Si desea cambiar el aspecto del cuadro de entrada enfocado, puede hacerlo configurando la propiedad focusSkin . Si desea que esto ocurra globalmente, puede poner una declaración de estilo en su archivo CSS.

En este ejemplo de CSS, estoy reemplazando el focusSkin predeterminado ( mx.skins.halo.HaloFocusRect ) con un archivo PNG incrustado.

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

TextInput tiene algunas propiedades para alterar el aspecto del enfoque, como cambiar la opacidad de la máscara de enfoque (propiedad focusAlpha ). Consulte la documentación de TextInput para obtener más información.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top