flex 学习笔记(一)
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:可以由类本身或任何子类访问.但这是以实例为基础的.换言之,类实例可以访问自己的保护成员或者父类的保护成员,但不能访问相同类的其它实例的保护成员,命名保护成员时以下划线"_"开头; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |