Flex 3: есть ли простой способ изменить значение внутри компонента из основного приложения? - PullRequest
0 голосов
/ 19 июля 2011

Поэтому я использую пользовательский компонент автоматического предложения, который я обнаружил в сети по адресу http://hillelcoren.com/flex-autocomplete/. Цвет фона для элемента задается в следующей папке: 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.*">

Я использую этот компонент из компонента, который я создал и который называется "position.mxml", который находится в папке с именем "modules".Есть ли способ, которым из модуля позиции я могу изменить цвет фона окна автозаполнения?

1 Ответ

1 голос
/ 19 июля 2011

На самом деле это зависит от архитектуры компонента, и я не углублялся в архитектуру компонента автозаполнения Hillel.

Стили часто наследуются, поэтому теоретически установка стиля backgroundColor для компонента position или для AutoComplete является одним из способов установки значения. Однако я ожидаю, что стиль с жестким кодом переопределит такое наследованиеесли вы не установите его после инициализации компонента.

Другой подход состоит в том, чтобы модифицировать компонент Гилеля, чтобы выставить это значение как стиль.В теории это не так сложно;на практике сложная архитектура может усложнить задачу. Дополнительная информация о создании пользовательских стилей .

Третий подход заключается в детализации компонента и установке стиля.Примерно так:

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

Конечно, для этого все соответствующие экземпляры компонентов должны быть открытыми.

Четвертый подход может заключаться в использовании другого компонента. Компонент Flextras AutoComplete является встроенным компонентом Spark, и было бы легко создать пользовательский скин, который изменяет цвет фона любой из соответствующих частей скина.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...