【发布时间】:2011-08-23 05:42:10
【问题描述】:
我想在 Spark TextInput 控件中添加搜索图标。有没有一种方法可以扩展 TextInput 控件并向其添加子控件。
谢谢
【问题讨论】:
标签: apache-flex actionscript textinput
我想在 Spark TextInput 控件中添加搜索图标。有没有一种方法可以扩展 TextInput 控件并向其添加子控件。
谢谢
【问题讨论】:
标签: apache-flex actionscript textinput
您不应该扩展 TextInput 本身。 Spark 架构的主要力量是剥皮的可能性。您可以根据标准TextInputSkin 创建自己的皮肤并将图标放在那里。我认为不会有任何问题。
【讨论】:
我遇到了同样的问题,想在 spark TextInput 中获取搜索图标。复制现有的火花皮肤并将图标添加到其中非常简单。方法如下:
皮肤文件的最后一个部分是<!-- text -->。在此部分之后,为 <!-- search icon --> 创建一个新部分,其中包括以下内容(注意:这将是皮肤中的最后一个部分):
<s:Image id="iconDisplay" source="@Embed('path/to/image/file/MY_SEARCH_IMAGE.png')"
mouseEnabled="false" mouseChildren="false"
visible.normal="false" visible.normalWithPrompt="true"/>
修改文件中较早出现的排除数组,使其如下所示(注意:文件中已经存在以下代码,只需添加iconDisplay即可):
/* Define the skin elements that should not be colorized. */
static private const exclusions:Array = ["background", "textDisplay", "promptDisplay", "iconDisplay", "border"];
/* exclusions before Flex 4.5 for backwards-compatibility purposes */
static private const exclusions_4_0:Array = ["background", "textDisplay", "promptDisplay", "iconDisplay",];
转到您拥有 TextInput 组件的应用程序代码,并使用以下命令将其链接到皮肤:<s:TextInput ... skinClass="path.to.skins.TextInputSkinWithPromptIcon" prompt=" "/>
【讨论】: