flex4.6事件分派+组件+参数传递
发布时间:2020-12-15 04:06:19 所属栏目:百科 来源:网络整理
导读:?xml version="1.0" encoding="utf-8"?s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:hz="com.hz.*" creationCom
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:hz="com.hz.*" creationComplete="initHandler(event)"> <fx:Script> <![CDATA[ import Event.AddStuEvent; import mx.collections.ArrayCollection; import mx.controls.Alert; import mx.events.FlexEvent; protected function initHandler(event:FlexEvent):void { stuInfo.stuColl=new ArrayCollection(); addEventListener(AddStuEvent.ADD_USER,addBtn); } protected function addBtn(event:AddStuEvent):void { if(stuMana.stuName.text!=""&&stuMana.stuAge.text!="") { stuInfo.stuColl.addItem(event.object); } else { Alert.show("两项都要填三!","温馨提示"); } } ]]> </fx:Script> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <s:layout> <s:HorizontalLayout gap="30" paddingBottom="30" paddingLeft="30" paddingRight="30" paddingTop="30"/> </s:layout> <hz:StuInfo id="stuInfo" width="50%" height="100%"/> <hz:StuManager id="stuMana" width="50%" height="100%"/> </s:Application> 上面是主application文件: <?xml version="1.0" encoding="utf-8"?> <s:Panel xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" title="添加学生" creationComplete="initHandler(event)"> <fx:Script> <![CDATA[ import Event.AddStuEvent; import mx.events.FlexEvent; public function initHandler(event:FlexEvent):void { addBtn.addEventListener(MouseEvent.CLICK,addBtnHandler); } protected function addBtnHandler(event:MouseEvent):void { var object:Object=new Object(); object={sName:stuName.text,sAge:stuAge.text}; dispatchEvent(new AddStuEvent(AddStuEvent.ADD_USER,object)) } ]]> </fx:Script> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <s:Form width="100%" height="100%"> <s:FormItem label="学生姓名:" required="true" width="100%"> <s:TextInput id="stuName" width="100%"/> </s:FormItem> <s:FormItem label="学生年龄" required="true" width="100%"> <s:TextInput id="stuAge" width="100%"/> </s:FormItem> </s:Form> <s:controlBarContent> <s:Button label="添加学生:" id="addBtn"/> <s:Button label="修改信息" id="updateBtn"/> </s:controlBarContent> <s:controlBarLayout> <s:HorizontalLayout horizontalAlign="center" gap="50" paddingTop="9" paddingBottom="9"/> </s:controlBarLayout> </s:Panel>?? 下面是自定义事件:定义了一个常量和要传递的参数,event属性只设置了string,bubble默认为false。 package Event { import flash.events.Event; public class AddStuEvent extends Event { public static const ADD_USER:String="addUser"; private var _object:Object=null; public function AddStuEvent(type:String,object:Object) { super(type,true); _object=object; } public function get object():Object { return _object; } public function set object(value:Object):void { _object = value; } override public function clone():Event { return new AddStuEvent(type,object); } } } <?xml version="1.0" encoding="utf-8"?> <s:Panel xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" title="学生列表" creationComplete="initHandler(event)"> <fx:Script> <![CDATA[ import mx.collections.ArrayCollection; import mx.events.FlexEvent; [Bindable] public var stuColl:ArrayCollection=null; protected function initHandler(event:FlexEvent):void { // TODO Auto-generated method stub } private function stuArr(item:Object):String { var str:String=item.sName+"哈哈"+item.sAge; return str; } ]]> </fx:Script> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <s:List id="stuList" width="100%" height="100%" dataProvider="{stuColl}" labelFunction="stuArr"> </s:List> <s:controlBarContent> <s:Button label="删除学生" id="deleteBtn"/> </s:controlBarContent> </s:Panel> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- ruby – 如何使用rspec测试屏幕抓取?
- YAML 类XML的标记语言
- 记录一次利用Timeline Performance工具进行 Reac
- React Native Android 源码框架浅析(主流程及 J
- postgresql – 如何创建约束来检查电子邮件在pos
- Cocos2dx技术(三)——cocos2dx基本概念(一)
- VB.NET<机房收费系统个人重构版>你都学会了什么(
- xcode – -fno-objc-arc标志设置但ARC转换仍在尝
- Validate and Format North American Phone Numb
- swift – 遍历多个UIAlertController
热点阅读