2012-06-22 2 views
1

У меня есть PieChart ... теперь, когда я перехожу к поддержке планшета, мне нужно сделать fontSize легенды больше. Однако следующее не имеет эффекта:mx: Legend fontSize не работает

<mx:Legend dataProvider="{industryChart}" 
     height="110" bottom="40" 
     height.groupTablets="220" bottom.groupTablets="80" 
     fontSize="8" fontSize.groupTablets="16" 
     markerHeight="10" markerHeight.groupTablets="20" 
     verticalGap="3" 
     /> 

Я знаю, что состояние правильное, потому что другие атрибуты меняются.

Я также попытался добавить раздел стиль:

<fx:Style> 
    .legend { 
     fontSize:24; 
    } 
</fx:Style> 


<mx:Legend dataProvider="{industryChart}" 
     height="110" bottom="40" 
     height.groupTablets="220" bottom.groupTablets="80" 
     markerHeight="10" markerHeight.groupTablets="20" 
     verticalGap="3" 
     styleName="legend" 
     /> 

Без изменений. Это не работает, если я переведу стиль в Main.css.

Используя это дает предупреждение: селекторы типа CSS не поддерживаются в компонентах: «mx.charts.LegendItem»:

<fx:Style> 
    @namespace mx "library://ns.adobe.com/flex/mx"; 
    mx|LegendItem { 
     fontSize:24; 
    } 
    </fx:Style> 

Но если я ставлю то же самое в Main.css, он работает:

@namespace mx "library://ns.adobe.com/flex/mx"; 
    mx|LegendItem { 
     fontSize:24; 
    } 

у меня есть проблема с тем, что я должен быть в состоянии сделать шрифт больше, когда в состоянии планшета, а не только для всех государств, или шрифт будет слишком большим по телефону.

Псевдо-селекторы, кажется, не работает:

mx|LegendItem:groupTablets { 
     fontSize:24; 
    } 

идентификаторы не работают, либо main.cc или Fx: Стиль:

#pieLegend { 
     fontSize:24; 
    } 

<mx:Legend id="pieLegend" 
    dataProvider="{industryChart}" 
    height="110" bottom="40" 
    height.groupTablets="220" bottom.groupTablets="80" 
    markerHeight="10" markerHeight.groupTablets="20" 
    verticalGap="3" 
    /> 

Однако, даже если этот подход работал у него возникнут трудности, когда код, стоящий за mxml, должен ссылаться на конкретный компонент по id.

я даже получил разочарование и попытался это в коде:

pieLegend.setStyle("fontSize", 24); 

Nope. Grrrr.

Любые идеи?

ответ

1

Поймал ту же проблему. Вот из форума adobe, возможно, придется ждать apache flex для реального исправления:

Проблема основана на ошибке, которая была отложена (http://bugs.adobe.com/jira/browse/FLEXDMV-1656). Есть несколько способов обойти, но проще всего установить FONTSIZE на селекторе типа LegendItem, например:

<mx:Style> 
LegendItem { 
fontSize:24; 
} 
</mx:Style> 
+0

ошибка ссылку в черепашки базе Apache https://issues.apache.org/jira/browse/FLEX- 32065 –

+0

удивительный. рад видеть, что команда Apache взяла на себя ответственность! – wcribbs

+0

@wcribbs знаете ли вы какое-либо обходное решение, позволяющее динамически устанавливать размер шрифта? – Darius