【问题标题】:Applying DropShadowFilter to text within mx.controls.TextInput component in Flex 3将 DropShadowFilter 应用于 Flex 3 中 mx.controls.TextInput 组件中的文本
【发布时间】:2012-01-03 22:49:06
【问题描述】:

有没有办法在不影响组件本身的情况下将 DropShadowFilter 应用于 Flex 3 中的 TextInput 组件中的文本?

【问题讨论】:

    标签: apache-flex actionscript filter components textinput


    【解决方案1】:

    其实你的mx.controls.TextInput确实有一个叫textField的IUITextField类型的成员,但它是protected,所以不能从其他类直接访问。 您可以在 /frameworks/projects/mx/src/mx/controls/TextInput.as 下的 Flex SDK 中查看它的源代码。

    要修改此成员,您仍然可以执行以下两项操作之一:

    1. 创建一个扩展 mx.controls.TextInput 的类。子类可以访问受保护的成员,因此您应该能够添加 DropShadowFilter,最好的方法是覆盖 updateDisplayList 方法。

    2. 使用显示列表:

      for (var i:int = 0; i < myTextInput.numChildren; i++) {
          var child:DisplayObject = myTextInput.getChildAt(i);
          if (child is IUITextField) doStuffToTextField(child);
      }
      

    【讨论】:

    • 我正在使用来自 mx.controls 包的 TextInput(而不是来自 fl.controls)。不幸的是,我的 TextInput 没有 textField 属性。
    • 我已经更新了我的答案。顺便说一句 - 将包裹信息添加到您的问题中会使这更容易回答;)
    • 您还可以在 TextInput 中侦听 ADDED_TO_STAGE 并通过这种方式获取对 TextInput 的引用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多