FLEX实践—动态切换应用皮肤
在同一个Application中动态切换主题,这里采用的是动态引用不同的CSS文件。
具体步骤如下:
1)创建CSS文件
skyTheme.css
/* CSS file */
.backgroudSkin
{
backgroundColor: #89caec;
fontWeight:bold;
fontSize:12;
}
.applicationBar
{
cornerRadius:20;
stype:solid;
fillAlphas:0.42, 0.42;
}
treeTheme.css
/* CSS file */
.backgroudSkin
{
backgroundColor: #bee38a;
fontWeight:bold;
fontSize:12;
}
.applicationBar
{
cornerRadius:5;
fillAlphas:0, 0;
}
2)将每一个CSS文件右键选择"Compile CSS to SWF"
3)创建ThemeTest.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" styleName="backgroudSkin">
<mx:Script>
<![CDATA[
import mx.styles.StyleManager;
private var style:String;
private function changeTheme(theme:String):void{
//切换CSS文件
StyleManager.loadStyleDeclarations(theme, true);
}
]]>
</mx:Script>
<mx:ArrayCollection id="skinCollection">
<mx:Object label="SkyTheme" data="theme/skyTheme.swf"/>
<mx:Object label="TreeTheme" data="theme/treeTheme.swf"/>
</mx:ArrayCollection>
<mx:ApplicationControlBar x="10" y="10" width="100%" height="50" styleName="applicationBar">
<mx:ComboBox id="skinSelect
相关文档:
上次说了直接把字体嵌入到flex程序中的方法,这次写一下将字体编译成swf后供其它flex程序加载来调用的方法。
首先,新建一个actionscript的project,取名为FlexFont,将字体文件放到src/font目录下,主程序为
FlexFont.as文件,内容如下:
package {
import flash.display.Sprite;
public class FlexFont extend ......
No.1 某字符器放到粘贴版:
System.setClipboard(strContent);
No.2 复制数组:
//dummy solution( well, it works )
var bar:ArrayCollection = new ArrayCollection();
for each ( var i:Object in ac ){
bar.addItem( i );
}
// fantastic ! //
var bar:ListCollectionView = new ListCollectionVi ......
前期准备:
点击File菜单 -> New -> MXML Component,然后弹出一个对话框。
在对话框中输入组件名,选择此组件继承的类型,如:Canvas,DataGrid,ComboBox …… 等。
然后选择组件的大小,点击Finish即可。
关于组件继承的类型,假设Based on  ......
1、如果要设置Validator验证组件里面提示字的大小,可以在mxml中加入
<mx:Style>
<!--[CDATA[
.errorTip
{
fontSize: 12;
}
]]-->
</mx:Style>
2、设置tooltip中的样式(如字体大小,颜色)可在mxml中的creationComplete的initApp()加入
......