我有一个Flex 4.5应用程序。我们在大多数表中使用Spark DataGrids。但是,有几个实例我们需要使用MX AdvancedDataGrid,因为我们需要进行多重排序并锁定列。
问题是Spark DataGrid标头中的字体显示得非常好。在MX AdvancedDataGrid标题内(并且仅在标题中,数据显示字体完全正常),字体将恢复为Times。但是,并非所有用户都会这样。我们的大多数开发人员都看到字体很好,但我们的一些用户在MX ADG中看到了Times字体。因为我所缺少的东西,我感到很茫然。
我在应用程序中使用嵌入字体,嵌入了CFF和非CFF(包括所有变体,如斜体和光):
@font-face {
src: url("assets/fonts/SourceSansPro-Regular.ttf");
fontFamily: SSP;
fontStyle: normal;
fontWeight: normal;
embedAsCFF: true;
}
/* embed non CFF fonts for MX controls */
@font-face {
src: url("assets/fonts/SourceSansPro-Regular.ttf");
fontFamily: SSPNoCFF;
fontStyle: normal;
fontWeight: normal;
embedAsCFF: false;
}
我为spark DataGrid和mx AdvancedDataGrid设置了样式:
mx|AdvancedDataGrid,
.standardDataGrid,
mx|DataGrid {
alternating-item-colors: #ffffff, #f6f6f6;
border-visible: false;
headerColors: #e6e6e6, #e6e6e6;
headerStyleName: standardDataGridHeader;
headerSeparatorColor: #d0d0d0;
headerSeparatorAlpha: 1;
horizontal-grid-lines: true;
horizontal-grid-line-color: #d0d0d0;
selection-color: #c2e5f2;
roll-over-color: #d4ebf3;
vertical-grid-lines: true;
vertical-grid-line-color: #d0d0d0;
user-roll-over: false;
text-align: left;
header-background-skin: ClassReference("org.pcpgm.gis.flex.skins.DataGridHeaderBackgroundSkin");
header-separator-skin: ClassReference("org.pcpgm.gis.flex.skins.DataGridHeaderSeparatorSkin");
vertical-separator-skin: ClassReference("org.pcpgm.gis.flex.skins.DataGridVerticalSeparatorSkin");
vertical-locked-separator-skin: ClassReference("org.pcpgm.gis.flex.skins.DataGridVerticalLockedSeparatorSkin");
}
s|DataGrid {
alternating-row-colors: #ffffff, #f6f6f6;
selection-color: #c2e5f2;
roll-over-color: #d4ebf3;
skinClass: ClassReference("org.pcpgm.gis.flex.skins.GIDataGridSkin");
}
skins|GIDataGridSkin {
border-visible: false;
}
grid|DefaultGridHeaderRenderer {
vertical-align: middle;
padding-top: 0px;
padding-right: 5px;
padding-bottom: 0px;
padding-left: 5px;
color: #4f4f4f;
text-align: left;
roll-over-color: #e6e6e6;
}
grid|DefaultGridHeaderRenderer #labelDisplay {
fontFamily: SSPLight;
font-size: 14pt;
}
我已经分别为spark和mx组件设置了项目渲染器,以允许使用nonCFF版本的字体。
mx|Alert,
mx|DataGrid,
mx|Menu,
mx|DateChooser,
mx|Panel,
mx|TabNavigator {
fontFamily: SSPNoCFF;
defaultDataGridItemEditor: ClassReference("mx.controls.MXFTETextInput");
defaultDataGridItemRenderer: ClassReference("mx.controls.dataGridClasses.FTEDataGridItemRenderer");
}
mx|AdvancedDataGrid,
controls|SearchSortedAdvancedDataGrid{
fontFamily: SSPNoCFF;
defaultDataGridItemEditor: ClassReference("mx.controls.MXFTETextInput");
defaultDataGridItemRenderer: ClassReference("mx.controls.advancedDataGridClasses.FTEAdvancedDataGridItemRenderer");
}
非常感谢任何帮助,
GD