将 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