Flex使用自定义皮肤和字体

首先介绍两个Flex皮肤网站:

1. Skins and Themes For Flex and AIR

2.Free Skin and Themes For Adobe Flex

以上两个网站都提供了皮肤下载。先看一个其中的效果:

当然这款皮肤Brownie并不支持中文,原因是它里面的自己没有中文的。需要自行添加,我这里使用的是微软雅黑。

需要在assets/css/Main.css中修改:

添加字体:

@font-face {
    fontFamily:"WRYH";
    src: url("assets/fonts/MSYH.TTF");
}

 在添加:

Application
{
...
    fontFamily: "WRYH"; 
..
.headerStyle
{
	text-align:center;
	font-size: 15;
	fontFamily:"WRYH";
...
}

 当然需要把微软雅黑拷贝到assets/fonts中。这样就可以了。

上面的例子代码:

主程序:

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
   
    <mx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
        
            [Bindable]               
            private var myDP:ArrayCollection = new ArrayCollection([
                {label1:"苹果", quant:39, ok:true},
                {label1:"香蕉", quant:73, ok:true}     
            ]);               
        ]]>
    </mx:Script>
    <mx:Style source="assets/css/Main.css"/>
    <mx:Panel width="478" height="293" layout="absolute" title="水果销售折扣">
        <mx:DataGrid id="myDG" dataProvider="{myDP}"
            editable="true"  width="397" height="117" x="24" y="46">
            <mx:columns>
                <mx:DataGridColumn dataField="label1" headerText="项目" editable="false"/>
                <mx:DataGridColumn dataField="quant" headerText="数量" itemRenderer="MyProgressBar" editable="false"/>
                <mx:DataGridColumn dataField="ok" headerText="剩余" editable="false">
                	<mx:itemRenderer>
                		<mx:Component>
                			<mx:CheckBox selected="{data.ok}"/>
                		</mx:Component>
                	</mx:itemRenderer>
                </mx:DataGridColumn>
            </mx:columns>
        </mx:DataGrid>
        </mx:Panel>
</mx:Application>

 自定义

MyProgressBar.mxml

 

<?xml version="1.0" encoding="utf-8"?>
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="150" height="36" horizontalAlign="center">
	<mx:Script>
        <![CDATA[
        override public function set data(value:Object):void
        {      
                if(value != null)
                {
                    super.data = value;
                    var p:Number = (value.quant) as Number;
                    trace(value);
                    myP.setProgress(value.quant,100);
                    myP.label="当前折扣为"+ p+"%";
                   
                }
}        
        ]]>
</mx:Script>
       
    <mx:ProgressBar id="myP" width="100%" height="80%" mode="manual"/>
</mx:HBox>

 希望大家喜欢这些皮肤!

你可能感兴趣的:(xml,css,Flex,Adobe,AIR)