0

我是 Flex 的新手,虽然对编程并不陌生。我想编写一个通用事件处理程序,当我的所有文本输入框收到焦点时,它们都会调用它。当他们有焦点时,我想改变文本输入框的颜色。当他们失去焦点时,我想恢复“非活动”颜色配置文件。我可以为每个文本输入框编写一个 ActionScript 事件处理程序,但我们都知道这很糟糕。:o) 那么,我需要的是一种访问正在调用事件处理程序的对象的方法。

在 Delphi 中,我编写了一个传入 Sender 对象的函数,允许我访问调用对象的属性。我猜 ActionScript/Flex 有一个完全不同的架构,这就是为什么我很难做到这一点。

感谢期待!

4

3 回答 3

1

我希望我能理解您的要求...您是在谈论事件委托吗?

这对我有用:

// 'focusOut' for blur
stage.addEventListener('focusIn', function(e:Event):void {
    // The focused control is e.target
});
于 2008-10-21T08:43:11.620 回答
1

您应该继承 TextInput 并在其中处理焦点事件。我认为这将是在没有任何复杂代码的情况下实现您正在寻找的最简单的方法。

于 2008-10-21T08:43:11.777 回答
0

如果你想改变焦点输入框的外观,你可以通过设置focusSkin属性来做到这一点。如果您希望这在全局范围内发生,您可以在您的 CSS 文件中放置一个样式声明。

在这个 CSS 示例中,我将默认的 focusSkin ( mx.skins.halo.HaloFocusRect) 替换为嵌入的 PNG 文件。

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

TextInput 具有一些用于更改焦点外观的属性,例如更改焦点皮肤的不透明度(focusAlpha属性)。查看TextInput 文档以获取更多信息。

于 2008-12-30T15:48:27.747 回答