Flex 学习笔记
1. flex弹出子页面:
1). 首先导入包:import mx.manager.PopUpManager;
2). 指定子页面:var childwin:add_member = new add_member();就是想弹出的页面
3). 指定父页面,就是谁想弹出页面:
Childwin.owner = this;
This是想弹出页面的页面,根据需要进行设定;
4). PopUpManager.addPopUp(childwind,this,true);
5). PopUpManager.centerPopUp(childwin);
相对的关闭(卸载)所弹出的页面则需要:
PopUpManager.removePopUp(childwin);
2. 在按钮事件中,判断是哪个触发事件要用:event.target=“按钮id”。首先也要引入相应的包。
3. 在AdvancedDataGrid中嵌入checkbox或者是ComboBox:
<mx:DataGridColumn>
<mx:itemRenderer>
<fx:Component>
<mx:checkbox />或者是<mx:ComboBox />
</fx:component>
</mx:itemRenderer>
</mx:DataGridColumn>
4. SWFLoader自适应屏幕的大小:
mainTainAspectRatio=”false”scaleContent=”true”
5. ModuleManager卸载模块的问题:
IModuleInfo.unload(url);只是删除moduleManager中模块的引用,而没有卸载swf文件。从显示列表中删除模块,需调用父显示对象的removechild方法。
6. 为flex组件添加背景图片时,可用BorderContainer的backgroundImage属性;
添加背景色用:chromeColor属性
7. MouseOve放大的行为效果:
有时候需要当鼠标放置在某个组件上时,需要该组件变大;首先要在组件上定义一个rollOver=rolloverHandler(event)事件;
然后在<fx:Declarations>标签组中写两句话:
<s:Scale id=”rotateOver”
scaleYFrom=”1” scaleYTo=”2” //y轴放大2倍;也可以是小数
scaleXFrom=”1” scaleXTo=”2” //x轴放大2倍;
/>
然后:functionrolloverHandler(Event:MouseEvent):void{
if(rotateOver.isPlaying){
rotateover.reverse();
}else{
rotateOver.play([event.target],event.type=MouseEvent.MOUSE_OVER?true:false);
}
}
当鼠标离开时该组件则需要返回默认的状态:先定义rollOut=rollOutHandler(event)事件,其余的跟上述的代码相反;
8. 换肤的问题:
换肤曾经困扰我很长时间,但是做出来之后发现确实非常的简单。
1).在每个css文件上右键选中“装换为swf文件”。就是当css有改动时,系统给都会自动转换为swf文件;
2). 用StyleManager.loadStyleDeclarations(“swf文件的具体路径”,true);
注:swf文件的具体路径可以到bin-debug目录下去找;true是指立即刷新。该换皮肤;
Css文件最好在默认包下,否则在编译时有可能会报错;
9. 关于tabNavigator
如何设置组件的标签卡tab的位置:
可以用tabOffset来设置。tabOffSet以像素为单位来设置标签的位置,向右移为证书,向左移为负值。用tabWidt、tabHeight来设定选项卡的宽和高;
10. 动态载入组件的问题:
可以像这样来动态加载一个组件:
private function init():void{
_moduleInfo= ModuleManager.getModule("member/mem_guide.swf");
_moduleInfo.addEventListener(ModuleEvent.READY,moduleLoadHandler);
_moduleInfo.load();
}
private functionmoduleLoadHandler(evt:ModuleEvent):void{
mem_can.addChild(_moduleInfo.factory.create()as DisplayObject); //有了这行,才能把模块引进过来,才能执行子模块代码
}
注:member/mem_guide.swf是所要动态引入的组件的具体路径;
Mem_can是父容器;
11. Flex声明变量:
var 变量名:类型; 或者:var 变量名:类型 = new 类型;
如: var abc:int;
Var abc:Array = new Array[];
变量的访问权限有
Public:可以在类内部访问,也可以由类实例访问,或者声明为static时,可以直接从类访问. Private:只能在类本身内部访问,按惯例,命名私有成员时以下划线"_"开头;
Internal:可以由类本身或者相同包内的任何类访问;
Protected:可以由类本身或任何子类访问.但这是以实例为基础的.换言之,类实例可以访问自己的保护成员或者父类的保护成员,但不能访问相同类的其它实例的保护成员,按惯例,命名保护成员时以下划线"_"开头;