将 DropShadowFilter 应用于 Flex 3 中 mx.controls.TextInput 组件中的文本

Posted

技术标签:

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

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

【问题讨论】:

【参考方案1】:

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

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

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

    使用显示列表:

    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 的引用。

以上是关于将 DropShadowFilter 应用于 Flex 3 中 mx.controls.TextInput 组件中的文本的主要内容,如果未能解决你的问题,请参考以下文章

C++ FLTK FL_INPUT 检测何时按下输入然后将文本添加到 FL_TEXT_DISPLAY

Cygwin 中的 FLTK 应用程序:GUI 不显示?

Flutter 如何将裁剪器添加到 fl_chart (CustomPainter)

pyFLTK 函数`Fl.wait()` 阻塞所有线程

Fl_Window 子类不起作用

(J2ME) 如何在我的 jar 应用程序中获取文件/资源​​列表