在基于Flex4的AIR程序中改变状态栏字体大小
在Flex3时代,要改变AIR程序的状态栏字体,可以使用修改CSS的方法:
1<mx:Style>
2 .boldRed {
3 color: red;
4 fontSize: 12;
5 fontWeight: bold;
6 }
7
8 WindowedApplication {
9 statusTextStyleName: boldRed;
10 }
11</mx:Style>
但是,在Flex4中,这招不管用了,默认的spark组件采用了新的方法来定义皮肤,这直接导致你根本找不到statusTextStyleName属性。
幸运的是,spark提供了更好的方法。spark的Window或者WindowedApplication组件的默认皮肤都包含statusText这个“外观部件”,我们对它的属性进行设置即可。当然,我们也可以完全重写默认的skin,skin采用MXML写成,更好编辑。这个组件的路径在这里:
1[Flash Builder安装路径]\sdks\[SDK版本]\frameworks\projects\airspark\src\spark\skins\spark\
1<?xml version="1.0" encoding="utf-8"?>
2<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
3 xmlns:s="library://ns.adobe.com/flex/spark"
4 xmlns:mx="library://ns.adobe.com/flex/mx"
5 applicationComplete="init()" status="测试">
6 <fx:Style>
7 @namespace s "library://ns.adobe.com/flex/spark";
8 @namespace mx "library://ns.adobe.com/flex/mx";
9 s|WindowedApplication
10 {
11 font-size: 12;
12 font-family:"Microsoft YaHei,SimSun";
13 }
14 .errorTip
15 {
16 font-size: 12;
17 }
18 </fx:Style>
19 <fx:Script>
20 <![CDATA[
21 private function init():void
22 {
23 statusText.setStyle('fontSize', 12);
24 }
25 ]]>
26 </fx:Script>
27</s:WindowedApplication>
需要注意的是,如果把这招用在Window组件中,就必须在Window.open()执行之后再调用setStyle,否则将会导致运行时错误。至于原因么……自己想 ^_^
- 文章ID:1123
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/change-status-bar-font-size-in-flex4-air/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。