Flex 3:是否有一种简单的方法可以在主应用程序中更改组件中的值?

时间:2011-07-19 17:33:14

标签: flex module components autosuggest

所以我正在使用我在http://hillelcoren.com/flex-autocomplete/在线找到的自定义自动推荐组件。项目的背景颜色在以下文件夹中设置:com> hillelcoren>组件> autoComplete> FlowBox.mxml。那里硬编码的bg颜色为白色:

<mx:Canvas
    xmlns:mx="http://www.adobe.com/2006/mxml"
    xmlns="com.hillelcoren.components.autoComplete.classes.*"
    verticalScrollPolicy="off" horizontalScrollPolicy="off"
    borderStyle="inset" backgroundColor="#FFFFFF"
    initialize="init()" clipContent="true" 
    xmlns:components="com.hillelcoren.components.*">

我在我创建的名为“position.mxml”的组件中使用此组件,该组件位于名为“modules”的文件夹中。有没有办法从位置模块,我可以改变自动提示框的背景颜色?

1 个答案:

答案 0 :(得分:1)

真的,这取决于组件架构,我没有深入研究Hillel的AutoComplete组件的架构。

样式通常是继承的,所以理论上在位置组件或自动完成上设置backgroundColor样式是设置值的一种方法。但是,我希望“硬编码”样式可以覆盖这种继承,除非你设置在组件初始化之后。

另一种方法是修改Hill​​el的组件以将此值公开为样式。从理论上讲,这并不难;在实践中,复杂的架构可能会使其变得困难。 More info on creating custom styles

第三种方法是向下钻取组件并设置样式。像这样:

positionInstance.autoCompleteInstance.flowBoxInstance.setStyle('backgroundColor',myNewStyle);

当然,所有相关的组件实例都必须是公开的。

第四种方法可能是使用不同的组件。 The Flextras AutoComplete组件是一个原生的Spark组件,可以很容易地创建一个自定义皮肤,用于更改任何相关皮肤部件的背景颜色。