Установка различных стилей подсказок к диаграммам в компонентах Flex - PullRequest
0 голосов
/ 01 ноября 2011

У меня есть следующая проблема: Моя задача - стилизовать подсказку для двух диаграмм в Flex 4.5. Обе диаграммы располагаются в двух разных компонентах на основе <Group>, которые добавляются в <Application>

Так что послетщательное исследование - это то, что я пытался сделать. Сначала применил нисходящие селекторы css:

#container#chart1 chartClasses|DataTip{     
    backgroundColor:white;
    backgroundAlpha:0.01;
    fontSize: 12; 
    fontWeight:bold;
    fontStyle:italic; 
}

Итак, компонент с контейнером Id = и внутри него диаграмма с id = "chart1". Это не работает.несмотря на то, что документы Adobe говорят, что это должно.Другой подход, который, как я полагал, должен был решить, заключался в том, чтобы поместить этот стиль CSS

chartClasses|DataTip{
    backgroundColor:white;
    backgroundAlpha:0.01;
    fontSize: 12; 
    fontWeight:bold;
    fontStyle:italic; 
}

в каждый из этих компонентов, но угадайте, что селектор класса DataTip диаграммы работает только на уровне <Application> (и затем он применяетсятот же стиль для всех всплывающих подсказок в диаграмме, найденных в приложении. Поэтому размещение его в каждом из двух компонентов, содержащих диаграммы, не имеет никакого эффекта.

Затем я создал класс, который передается в стиль диаграммы dataTipRenderer.Затем внутри класса с именем MyCustomDataTipRenderer я установил селектор класса:

.dataTip{
    backgroundColor:white;
    backgroundAlpha:0.01;
    fontSize: 12; 
    fontWeight:bold;
    fontStyle:italic; 
}

И да, это работает. Но скажем, я хочу иметь возможность устанавливать различные стили для настраиваемого средства визуализации всплывающих подсказок на основе диаграммы размещения.Как я могу это сделать? Кажется, что Flex SDK не предоставил никаких данных через datatipRenderer.So. Если я эффективно установлю пользовательский рендерер datatip следующим образом:

columnchart1.setStyle("dataTipRenderer",CustomDataTip); 

Тогда я бы хотел получитьдоступ к экземпляру класса CustomDataTip. Но я не могу. Так что в настоящее время единственное, что я могу сделать, этосоздать отдельный пользовательский класс рендера datatip для каждой диаграммы. Это может быть хорошо, если у вас есть только несколько диаграмм, которые вы хотите стилизовать, но что мы можем сделать, если у нас их много?

1 Ответ

1 голос
/ 02 ноября 2011

Попробуйте добавить следующее в начало файла css (при условии, что имя файла - chartStyles.css)

@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "http://www.adobe.com/2006/mxml";

mx|#container#chart1 chartClasses|DataTip{     
    backgroundColor:white;
    backgroundAlpha:0.01;
    fontSize: 12; 
    fontWeight:bold;
    fontStyle:italic; 
}

s|#container#chart1 chartClasses|DataTip{     
    backgroundColor:white;
    backgroundAlpha:0.01;
    fontSize: 12; 
    fontWeight:bold;
    fontStyle:italic; 
}

В случае, если стили css помещены в тег стиля прямо в главномв приложениях mxml, тогда нет нужды в начале тега @namespace. Вы можете напрямую добавить mx |и с |в качестве префиксов к вашим стилям.

...