在基于Flex4的AIR程序中改变状态栏字体大小

本站原创文章,转载请注明: 转载自zrong's Blog,原文 在基于Flex4的AIR程序中改变状态栏字体大小,欢迎使用文章源码进行转载。

本站转载文章会标明[转],转载请注明原始作者文章地址。



在Flex3时代,要改变AIR程序的状态栏字体,可以使用修改CSS的方法:

<mx:Style>
	.boldRed {
		color: red;
		fontSize: 12;
		fontWeight: bold;
	}
 
	WindowedApplication {
		statusTextStyleName: boldRed;
	}
</mx:Style>

但是,在Flex4中,这招不管用了,默认的spark组件采用了新的方法来定义皮肤,这直接导致你根本找不到statusTextStyleName属性。

幸运的是,spark提供了更好的方法。spark的Window或者WindowedApplication组件的默认皮肤都包含statusText这个“外观部件”,我们对它的属性进行设置即可。当然,我们也可以完全重写默认的skin,skin采用MXML写成,更好编辑。这个组件的路径在这里:

[Flash Builder安装路径]\sdks\[SDK版本]\frameworks\projects\airspark\src\spark\skins\spark\

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
					   xmlns:s="library://ns.adobe.com/flex/spark"
					   xmlns:mx="library://ns.adobe.com/flex/mx"
					   applicationComplete="init()" status="测试">
	<fx:Style>
		@namespace s "library://ns.adobe.com/flex/spark";
		@namespace mx "library://ns.adobe.com/flex/mx";
		s|WindowedApplication
		{
			font-size: 12;
			font-family:"Microsoft YaHei,SimSun";			
		}
		.errorTip
		{
			font-size: 12;
		}
	</fx:Style>
	<fx:Script>
		<![CDATA[
			private function init():void
			{
				statusText.setStyle('fontSize', 12);
			}
		]]>
	</fx:Script>
</s:WindowedApplication>

需要注意的是,如果把这招用在Window组件中,就必须在Window.open()执行之后再调用setStyle,否则将会导致运行时错误。至于原因么……自己想^_^


发表评论


请输入上面的验证码