flex4.6事件分派+组件+参数传递
<?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事件分派+组件+参数传递的更多相关文章
- 进程内部异步事件调用组件Async-Event
项目坐标:https://github.com/cncduLee/async-event async-event 进程内部异步事件调用组件 解决什么问题: 加速服务处理效率.提供进程级别的事件发布和异 ...
- OneAlert 入门(四)——事件分派和通知必达
OneAlert 是国内首个 SaaS 模式的云告警平台,集成国内外主流监控/支撑系统,实现一个平台上集中处理所有 IT 事件,提升 IT 可靠性.有了 OneAlert,你可以更快更合理地为事件划分 ...
- SSIS中执行SQL任务组件参数传递的问题
原文:SSIS中执行SQL任务组件参数传递的问题 症状: 执行SQL任务,传递参数到子查询中,执行报错. 错误: 失败,错误如下:"无法从使用 sub-select 查询的 SQL 语句中派 ...
- jQuery事件触发和参数传递
jQuery事件触发和参数传递: 参考:http://www.jb51.net/article/36249.htm <%@ page language="java" impo ...
- Android事件分派机制
最近一直在学习Android里面的事件分派机制,感觉很奇妙,看了很多博客和分析,才在脑子里形成了一个模糊的概念,对事件分派有了一定的认识. 于是,我画了一个图来简单明了的表述Android中事件的分派 ...
- Android--Otto事件总线 -- 组件之间通讯框架使用 --模式解析
前言:Otto事件总线 -- 组件之间通讯框架 对于之前的情况activity之间或者fragment之间等跳转传值一般都是用bundle.intent等,从activityA --- activit ...
- vue30-单一事件管理组件通信: vuex
------------------------------------------------------ 可以单一事件管理组件通信: vuex var Event=new Vue(); Event ...
- EventDispatcher 事件分发组件
引言 考虑这样一个问题,现在你想给为你的项目提供一个插件系统,插件可以添加一些方法,或者在某些方法执行之前或者之后做些事情,而不干扰其他插件.要实现这个系统,简单的单继承不是个好办法,即使多继承在PH ...
- vuejs单一事件管理组件间的通信
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- WCF:如何将net.tcp协议寄宿到IIS
1 部署IIS 1.1 安装WAS IIS原本是不支持非HTTP协议的服务,为了让IIS支持net.tcp,必须先安装WAS(Windows Process Activation Service),即 ...
- CSS 有趣的边框
今天看到一篇文章.是利用CSS边框来做折纸效果.感觉非常有意思.于是就对CSS的border研究了一下.发现还真有一些好玩的使用方法. 1.border折纸效果 首先是HTML代码,为了简单,就一个d ...
- Ubuntu server下安装JDK和Tomcat7
服务器是Ubuntu server 12.04 LTS 64bit 所有操作假设已经有root权限,若没有需要添加sudo. 一. 安装JDK 1.去Oracle官网下载jdk-6u45-linux- ...
- Qt 学习之路 :Qt 绘制系统简介
Qt 的绘图系统允许使用相同的 API 在屏幕和其它打印设备上进行绘制.整个绘图系统基于QPainter,QPainterDevice和QPaintEngine三个类. QPainter用来执行绘制的 ...
- 再回首,Java温故知新(八):Java基础之字符串
字符串是Java中使用频率最高的类,但是它却不属于基本类型,而是预定义了String类来表示.从String类的源码可以看到,String是基于char[]实现的,而且Java中的String是不可变 ...
- Eclipse中输入系统变量和运行参数--转
原文地址:http://chenzhou123520.iteye.com/blog/1931670 在开发时,有时候可能需要根据不同的环境设置不同的系统参数,我们都知道,在使用java -jar命令时 ...
- Block小结
Blocks是C语言的扩充功能.用一句话来表示Blocks的扩充功能:带有自动变量(局部变量)的匿名函数. block其实是一个代码块,但是它的神奇之处在于在内联(inline)执行的时候(这和C++ ...
- SGU 199 - Beautiful People 最长上升子序列LIS
要邀请n个人参加party,每个人有力量值strength Si和魅力值 beauty Bi,如果存在两人S i ≤ S j and B i ≥ B j 或者 S i ≥ S j and B i ≤ ...
- java邮件客户端
/*** *邮件VO **/package net.jk.util.email.vo; import java.util.Date; import java.util.List; import net ...
- .NET读取Excel
1.代码 string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Path + ";Ext ...