flex dispatchEvent 实例
flashbuilder sdk:3.6;jdk:1.7,;tomcat:7;myeclipse:10.0
Flex dispatchEvent实例下载:点击打开链接
Flex dispatchEvent实例:所谓dispatchEvent是一个什么东西呢?按照我单纯 的理解,就是我定义了一个事件,然后去监听这个事件,最后,当有人触发这个事件的时候,就调用监听程序进行处理。好了,废话不多说了,看代码吧。
首先说下思路:
页面里面有一个Button,点击button后,会有两个操作,一是弹出另外一个窗口,二是注册自定义事件(加自定义事件的监听);然后在弹出窗口定义函数,主要是发送自定义事件以及输入框的参数到后台,后台打印传过来的参数;
这里首先自定义了一个事件类,如下:
package fz.event
{
import flash.events.Event; /**
* user defined event;
* used to listen the CHANGE_FLAG attribute
*/
public class MyEvent extends Event
{
static public var CHANGE_FLAG :String ="change_flag"; static public var CHANGE_FLAG2: String ="change_flag2"; public var info:String; // info from flex public function MyEvent(type:String,info:String ,bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type, bubbles, cancelable);
this.info=info;
}
}
}
这个事件类有两个static属性(change_flag2可以暂时不管)和一个一般属性;看第一个button如何加监听:
public function addListen_click():void{
// add listener in the father panel
var btpopmenu:BtPopMenu=BtPopMenu(PopUpManager.createPopUp(this,BtPopMenu,true));
//Alert.show("after new BtPopMenu");
btpopmenu.addEventListener(MyEvent.CHANGE_FLAG,saveInfo);
PopUpManager.centerPopUp(btpopmenu);
}
上面是第一个button的click属性函数,其中BtPopMenu就是自定义的一个弹出式窗口,如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" showCloseButton="true"
layout="absolute" width="400" height="300" close="this.close()">
<mx:Metadata>
[Event(name="CHANGE_FLAG",type="fz.event.MyEvent")]
</mx:Metadata>
<mx:Script>
<![CDATA[
import fz.event.MyEvent;
import mx.managers.PopUpManager; public function pop_click():void{
var info:String =input.text;
// 新建事件
var myEvent:MyEvent =new MyEvent(MyEvent.CHANGE_FLAG,info);
// 发送事件
dispatchEvent(myEvent);
} private function close() : void {
PopUpManager.removePopUp(this);
}
]]>
</mx:Script> <mx:VBox height="100%">
<mx:HBox>
<mx:Label text="输入后台要打印的数据:" />
<mx:TextInput id="input" />
</mx:HBox>
<mx:Button id="popBt" label="后台打印吧" click="pop_click()"/>
</mx:VBox> </mx:TitleWindow>
btpopmenu.addEventListener(MyEvent.CHANGE_FLAG,saveInfo);
上面一句就是加监听的了,这里是把MyEvent的CHANGE_FLAG属性作为监听的对象,然后如果检测到有事件的话,就调用saveInfo方法,这个再说。
看弹出的窗口中的button的click函数:
public function pop_click():void{
var info:String =input.text;
// 新建事件
var myEvent:MyEvent =new MyEvent(MyEvent.CHANGE_FLAG,info);
// 发送事件
dispatchEvent(myEvent);
}
click函数创建了一个MyEvent的CHANGE_FLAG事件,然后发送这个事件,所以在第一个button中的事件监听就会收到这个事件,就会调用saveInfo方法:
/**
* 注册监听事件,当有事件发送时,后台打印
*/
public function saveInfo(e:MyEvent):void{ var info:String =e.info;
// Alert.show("info:"+info);
save_info.printInfo(info);
}
这里的save_info是RemoteObject,在remoting-config.xml中配置。
看下前台展示效果吧:
分享,成长,快乐
转载请注明blog地址:http://blog.csdn.net/fansy1990
flex dispatchEvent 实例的更多相关文章
- Flex 布局实例
如图: 代码如下: <!DOCTYPE HTML> <html> <meta charset="utf-8"> <head> < ...
- flex布局实例demo全解
上篇文章介绍了Flex布局的语法,今天介绍常见布局的Flex写法. 你会看到,不管是什么布局,Flex往往都可以几行命令搞定. 我只列出代码,详细的语法解释请查阅<Flex布局教程:语法篇> ...
- [css flex布局]实例一,本来还想挺简单的,弄了挺久呢,先写一部分
全是代码,直接拷走吧,看是不怎么好看的 参考:http://www.ruanyifeng.com/blog/search.html?cx=016304377626642577906%3Ab_e9ska ...
- flex应用实例
代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" c ...
- Flex:实例
目的: 代码: <!--pages/index/index.wxml--> <view class="container"> <view class= ...
- Flex Socket与Java通信实例说明(转)
Flex Socket与Java通信实例说明(转) 这两天一直在flex的Socket ,现在终于懂了很多.由浅到深一步一步深入.慢慢体会实例,虽然实例都是在网上找的,但也经过了我的测试.我比较喜欢注 ...
- Flex 布局教程实例
Flex 布局教程实例 一.Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为 F ...
- flex布局语法+实例
一.什么是flex布局 flex 是 flexible box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为 flex 布局.你可以将前端页 ...
- 在移动端中的flex布局
flex布局介绍: flex布局很灵活, 这种布局我们也可以称之为弹性布局, 弹性布局的主要优势就是元素的宽或者高会自动补全; flex布局实例: 比如有两个div,一个div的宽度为100px, ...
随机推荐
- ExtJS4.2学习(17)表单基本输入控件Ext.form.Field(转)
鸣谢:http://www.shuyangyang.com.cn/jishuliangongfang/qianduanjishu/2013-12-11/189.html --------------- ...
- [JavaScript] js判断是否在微信浏览器中打开
用JS来判断了,经过查找资料终于实现了效果, function is_weixn(){ var ua = navigator.userAgent.toLowerCase(); if(u ...
- WPS目录制作方法
学校安排我进行电子技术校本教材的后期制作,汇总完全部文字后,需要编辑一个全书目录,进过一番摸索,使用WPS2009圆满完成了此次任务,愿与诸君共享. 1.显示大纲工具栏 打开“视图”——“工具栏”—— ...
- codeforces 390C Inna and Candy Boxes
这个题目看似不是很好下手,不过很容易发现每次询问的时候总是会问到第r个盒子是否有糖果: 这样的话就很好办事了: 维护两个数组: 一个sum数组:累加和: 一个in数组:如果i位是1的话,in[i]=i ...
- No Pain No Game
hdu4630:http://acm.hdu.edu.cn/showproblem.php?pid=4630 题意:给定一个排序,求区间最大GCD. 题解:离散树状数组.首先把查询按左端点从大到小排序 ...
- 异常情况下的Activity生命周期分析
情况1:资源相关的系统配置发生改变 资源相关的系统配置发生改变,举个栗子.当前Activity处于竖屏状态的时候突然转成横屏,系统配置发生了改变,Activity就会销毁并且重建,其onPause, ...
- LINUX中的虚拟文件系统结构
我的博客:www.while0.com 以下以2.6.32版本的内核源码为例: 虚拟文件系统与具体文件系统之间是几组操作函数的对应,包括file_operations,dentry_operation ...
- FileSystemWatcher使用方法
FileSystemWatcher控件主要功能: 监控指定文件或目录的文件的创建.删除.改动.重命名等活动.可以动态地定义需要监控的文件类型及文件属性改动的类型. 1.常用的几个基本属性: (1) P ...
- Oracle系列之异常处理
涉及到表的处理请参看原表结构与数据 Oracle建表插数据等等 使用select into语句读取tb_Employee的一行,使用异常处理处理no_data_found和two_many_rows ...
- HTML本地测试成功后上传博客注意事项
需要注意不要跟博客已经存在的样式(CSS)或功能(JavaScript)起冲突 功能名一定不要一样 样式名尽量不一样 如果样式名一样,存在属性名的对应属性值尽量跟博客内相同