Apache flex Flex3:是否有一种简单的方法可以从主应用程序中更改组件中的值?

Apache flex Flex3:是否有一种简单的方法可以从主应用程序中更改组件中的值?,apache-flex,module,components,autosuggest,Apache Flex,Module,Components,Autosuggest,因此,我正在使用一个自定义的自动建议组件,我在网上找到的。项目的背景色在以下文件夹中设置:com>hillelcoren>components>autoComplete>FlowBox.mxml。其中硬编码的bg颜色为白色: <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="com.hillelcoren.components.autoComplete.classes.*" verticalScr

因此,我正在使用一个自定义的自动建议组件,我在网上找到的。项目的背景色在以下文件夹中设置:com>hillelcoren>components>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.*">


我从名为“modules”的文件夹中创建的名为“position.mxml”的组件中使用此组件。是否有任何方法可以通过position模块更改autosuggest box的背景颜色?

实际上,这取决于组件架构,我没有深入了解Hillel的AutoComplete组件的架构

样式通常是继承的,因此从理论上讲,在position组件或AutoComplete上设置backgroundColor样式是设置值的一种方法。但是,我希望“硬编码”样式会覆盖这种继承,除非在组件初始化后设置它

另一种方法是修改Hillel的组件以将此值作为样式公开。理论上这并不难;实际上,一个复杂的架构可能会使它变得困难

第三种方法是深入组件并设置样式。大概是这样的:

positionInstance.autoCompleteInstance.flowBoxInstance.setStyle('backgroundColor',myNewStyle);
当然,所有相关组件实例都必须是公共的


第四种方法可能是使用不同的组件。组件是本机Spark组件,可以轻松创建更改任何相关皮肤部分背景颜色的自定义皮肤。

flextras autocomplete是否可以基于在使用应用程序时经常更改的布尔值更改bg颜色?@Brds在组件类上设置的样式在中继承皮肤类;因此,您可以轻松地使用自定义皮肤类来模拟某些东西。我非常确定,当在组件类中设置样式时,skin类的styleChanged()方法将触发;这就是你可以进行切换的地方。这些都不是我们组件独有的,不过,这只是框架的操作方式。