<?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>

flex4.6事件分派+组件+参数传递的更多相关文章

  1. 进程内部异步事件调用组件Async-Event

    项目坐标:https://github.com/cncduLee/async-event async-event 进程内部异步事件调用组件 解决什么问题: 加速服务处理效率.提供进程级别的事件发布和异 ...

  2. OneAlert 入门(四)——事件分派和通知必达

    OneAlert 是国内首个 SaaS 模式的云告警平台,集成国内外主流监控/支撑系统,实现一个平台上集中处理所有 IT 事件,提升 IT 可靠性.有了 OneAlert,你可以更快更合理地为事件划分 ...

  3. SSIS中执行SQL任务组件参数传递的问题

    原文:SSIS中执行SQL任务组件参数传递的问题 症状: 执行SQL任务,传递参数到子查询中,执行报错. 错误: 失败,错误如下:"无法从使用 sub-select 查询的 SQL 语句中派 ...

  4. jQuery事件触发和参数传递

    jQuery事件触发和参数传递: 参考:http://www.jb51.net/article/36249.htm <%@ page language="java" impo ...

  5. Android事件分派机制

    最近一直在学习Android里面的事件分派机制,感觉很奇妙,看了很多博客和分析,才在脑子里形成了一个模糊的概念,对事件分派有了一定的认识. 于是,我画了一个图来简单明了的表述Android中事件的分派 ...

  6. Android--Otto事件总线 -- 组件之间通讯框架使用 --模式解析

    前言:Otto事件总线 -- 组件之间通讯框架 对于之前的情况activity之间或者fragment之间等跳转传值一般都是用bundle.intent等,从activityA --- activit ...

  7. vue30-单一事件管理组件通信: vuex

    ------------------------------------------------------ 可以单一事件管理组件通信: vuex var Event=new Vue(); Event ...

  8. EventDispatcher 事件分发组件

    引言 考虑这样一个问题,现在你想给为你的项目提供一个插件系统,插件可以添加一些方法,或者在某些方法执行之前或者之后做些事情,而不干扰其他插件.要实现这个系统,简单的单继承不是个好办法,即使多继承在PH ...

  9. vuejs单一事件管理组件间的通信

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. Mono For Android离线激活

    我们之前创建过Mono For Android的开发环境,但是使用一段时间后就说明证书过期,那如何破解呢? 但我说的这个也就只能使用免费的证书. 首先下载免费的证书,monoandroid.licx, ...

  2. Java EE 7 / JAX-RS 2.0: Simple REST API Authentication & Authorization with Custom HTTP Header--reference

    REST has made a lot of conveniences when it comes to implementing web services with the already avai ...

  3. Android -- 利用Broadcast开启Service(转)

    Broadcast和Service都是Android四大组建之一的. 这里的广播是动态的,自己注册的一个广播. 这种最典型的用法就是利用开机广播,然后再起自己的服务,也就是在Android手机中做到开 ...

  4. codevs 2495 水叮当的舞步IDA*

    /* 比较简单的A* 估价函数很简单就是除了左上角的联通快之外的不同的个数 加上迭代 好像答案最多在16步之内出解 这样裸裸的交上去是50分 在考虑剪枝 每个选颜色的时候一定是选左上角联通快附近的颜色 ...

  5. Android开源项目 Universal imageloader 源码研究之项目框架

    Universal imageloader 的代码并不复杂 重点是缓存,线程池任务 下面都用UML图进行了绘制 基本使用流程就是 初始化配置,设置Options参数,最后Dispaly提交下载 pub ...

  6. merge into Oracle里的 saveOrUapdate

    1.初始数据: SQL> select * from a; ID NAME ---------------------- ---------------------- 1 1 2 1 3 1 4 ...

  7. hello,boke

    我一名学习软件工程金融服务工程的学生,简单来说就是学习计算机类的,对于自己的介绍,从平时生活中来说吧,我一直处于一种很中规中矩的生活状态里,平时玩玩手机.追追剧.和室友一起去图书馆自习,考前拼命复习两 ...

  8. emmt html生成

    html:5  或 ! html:5 或!:用于HTML5文档类型 html:xt:用于XHTML过渡文档类型 html:4s:用于HTML4严格文档类型 常用过渡文档类型  html:xt  直接c ...

  9. JS屏蔽右键菜单,复制,粘帖xxxxx........

    //屏蔽右键菜单 document.oncontextmenu = function (event) { if (window.event) { event = window.event; } try ...

  10. MapReduce中的排序

           hadoop的计算模型就是map/reduce,每一个计算任务会被分割成很多互不依赖的map/reduce计算单元,将所有的计算单元执行完毕后整个计算任务就完成了.因为计算单元之间互不依 ...