Actionscript 3 如何动态更改DataGrid的字体大小和字体系列?

Actionscript 3 如何动态更改DataGrid的字体大小和字体系列?,actionscript-3,apache-flex,flex3,Actionscript 3,Apache Flex,Flex3,我有一个Flex屏幕MyData.mxml,它有一个使用数据网格的值表。DataGrid的所有样式都包含在Flex库项目的default.css文件中。这将在swc文件中转换,并在我使用MyData.mxml的Flex项目中使用 在MyData屏幕中,我们可以选择更改DataGrid的字体大小。我们有一个RadioButtonGroup,用户可以从两个选项按钮中进行选择: 普通字体(Verdana,12) 小字体(Verdana,11) 当用户选择“普通字体”按钮时,DataGrid中的所有

我有一个Flex屏幕
MyData.mxml
,它有一个使用数据网格的值表。DataGrid的所有样式都包含在Flex库项目的
default.css
文件中。这将在swc文件中转换,并在我使用
MyData.mxml
的Flex项目中使用

在MyData屏幕中,我们可以选择更改DataGrid的字体大小。我们有一个RadioButtonGroup,用户可以从两个选项按钮中进行选择:

  • 普通字体(Verdana,12)
  • 小字体(Verdana,11)
当用户选择“普通字体”按钮时,DataGrid中的所有数据应设置为Verdana 12,当用户选择小字体选项按钮时,DataGrid中的所有数据应设置为Verdana 11


如何实现这一点?

我想以下代码可以解决您的问题:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application layout="vertical" verticalAlign="middle" xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script>
    <![CDATA[
        public static const NORMAL_STYLE:String = "normal";
        public static const SMALL_STYLE:String = "small";

        protected function styleGroup_changeHandler(event:Event):void
        {
            var fontFamily:String = "Verdana";
            var fontSize:int;
            switch (styleGroup.selectedValue)
            {
                case NORMAL_STYLE:
                    fontSize = 12;
                    break;
                case SMALL_STYLE:
                    fontSize = 11;
                    break;
            }
            dataGrid.setStyle("fontFamily", fontFamily);
            dataGrid.setStyle("fontSize", fontSize);
        }
    ]]>
    </mx:Script>

    <mx:ArrayCollection id="dataGridData">
        <mx:source>
            <mx:Array>
                <mx:Object first="First1" second="Second1" />
                <mx:Object first="First2" second="Second2" />
            </mx:Array>
        </mx:source>
    </mx:ArrayCollection>

    <mx:DataGrid dataProvider="{dataGridData}" height="200" id="dataGrid">
        <mx:columns>
            <mx:DataGridColumn dataField="first" headerText="First" />
            <mx:DataGridColumn dataField="second" headerText="Second" />
        </mx:columns>
    </mx:DataGrid>
    <mx:RadioButtonGroup change="styleGroup_changeHandler(event)" id="styleGroup" />
    <mx:RadioButton group="{styleGroup}" label="Normal" value="{NORMAL_STYLE}" />
    <mx:RadioButton group="{styleGroup}" label="Small" value="{SMALL_STYLE}" />
</mx:Application>


Hai朋友,感谢您的友好回复!我试过你的建议,效果很好。但是,我被要求从css文件中获取样式名称。因此,我在css文件中添加了两个样式组件,如下所示:'.dataGridNormal'和'.dataGridSmall',并在主mxml的相应条件块中调用它们。感谢您的帮助。我很高兴我的解决方案帮助您解决了问题:)