所以我正在使用我在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”的文件夹中。有没有办法从位置模块,我可以改变自动提示框的背景颜色?
答案 0 :(得分:1)
真的,这取决于组件架构,我没有深入研究Hillel的AutoComplete组件的架构。
样式通常是继承的,所以理论上在位置组件或自动完成上设置backgroundColor样式是设置值的一种方法。但是,我希望“硬编码”样式可以覆盖这种继承,除非你设置在组件初始化之后。
另一种方法是修改Hillel的组件以将此值公开为样式。从理论上讲,这并不难;在实践中,复杂的架构可能会使其变得困难。 More info on creating custom styles
第三种方法是向下钻取组件并设置样式。像这样:
positionInstance.autoCompleteInstance.flowBoxInstance.setStyle('backgroundColor',myNewStyle);
当然,所有相关的组件实例都必须是公开的。
第四种方法可能是使用不同的组件。 The Flextras AutoComplete组件是一个原生的Spark组件,可以很容易地创建一个自定义皮肤,用于更改任何相关皮肤部件的背景颜色。