【问题标题】:how can I write a generic property modification function in Flex/Actionscript3?如何在 Flex/Actionscript3 中编写通用属性修改函数?
【发布时间】:2008-10-21 08:35:52
【问题描述】:

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

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

感谢期待!

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      这对我有用:

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

      【讨论】:

        【解决方案3】:

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

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

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

        TextInput 有一些属性可以改变焦点的外观,比如改变焦点皮肤的不透明度(focusAlpha 属性)。查看TextInput documentation 了解更多信息。

        【讨论】:

          猜你喜欢
          • 2023-03-13
          • 1970-01-01
          • 2011-09-29
          • 2012-10-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-12-22
          • 1970-01-01
          相关资源
          最近更新 更多