我是Flex的新手,虽然不是编程新手。我想编写一个通用事件处理程序,当它们获得焦点时,将由我的所有textinput框调用。当他们有焦点时,我想改变textinput框的颜色。当他们失去焦点时,我想恢复“非活动”状态。颜色配置文件我可以为每个textinput框编写一个ActionScript事件处理程序,但我们都知道这是蹩脚的。 :o)然后,我需要的是一种访问调用事件处理程序的对象的方法。

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

感谢您的期待!

有帮助吗?

解决方案

您应该将TextInput子类化并在那里处理焦点事件。我认为这是实现您正在寻找的东西的最简单方法,而无需任何复杂的代码。

其他提示

我希望我能理解你所要求的......你在谈论事件授权吗?

这对我有用:

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

如果要更改焦点输入框的外观,可以通过设置 focusSkin 属性来完成此操作。如果您希望全局发生这种情况,可以在CSS文件中添加样式声明。

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

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

TextInput具有一些用于更改焦点外观的属性,例如更改焦点外观的不透明度( focusAlpha 属性)。有关详细信息,请查看 TextInput文档

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top