如何在Flex / Actionscript3中编写通用属性修改函数?

时间:2008-10-21 08:35:53

标签: flex actionscript-3 events event-handling flexbuilder

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

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

感谢您的期待!

3 个答案:

答案 0 :(得分:1)

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

这对我有用:

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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

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

TextInput具有一些用于更改焦点外观的属性,例如更改焦点外观的不透明度(focusAlpha属性)。查看TextInput documentation了解详情。