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, ...
随机推荐
- skip-grant-tables:非常有用的mysql启动参数
skip-grant-tables:非常有用的mysql启动参数 介绍一个非常有用的mysql启动参数—— --skip-grant-tables.顾名思义,就是在启动mysql时不启动grant ...
- .NET中的加密算法总结(自定义加密Helper类续)
1.1.1 摘要 相信许多人都使用过.NET提供的加密算法,而且在使用的过程我们必须了解每种加密算法的特点(对称或非对称,密钥长度和初始化向量等等).我也看到过很多人写过.NET中加密算法总结,但我发 ...
- sjtu1590 强迫症
Description BS96发布了一套有\(m\)个band柄绘的新badge,kuma先生想要拿到04的badge于是进行了抽抽抽. kuma先生一共抽了\(n\)个badge.他把所有的bad ...
- Ubuntu14.04下如何开启Mysql远程访问
近来开发项目的需要,需要开启服务器下的Mysql远程访问权限(方法有很多),学习了一下,这里只演示个人觉得比较简单的一种方法. 对用户授权方法: 1. 在目录/etc/mysql下找到my.cnf,用 ...
- C语言关键字 - 铁布衫:const 转载
const 描述:相传C世界中出现了一件极品装备const,它能的出现,让天下所有的刺客,黑客都失业了,在它的保护下,所有的变量都可以完好无损. 作用:const是constant的简写,表示海枯石栏 ...
- ThinkPHP3.2.3验证码显示、刷新、校验
显示验证码 首先在Home/Controller下创建一个公共控制器PublicController <?php namespace Home\Controller; use Think\Con ...
- 1uboot移植要点[原创☆☆]
----- 一:我们先来了解下实际内存: nand.nor.ram. 所以从CPU是从那部分启动的呢? 答:要看主控芯片的boot如何设置(正如分的启动方式和下载方式一样). uboot:sd卡→iR ...
- 先贴出代码C++ 中的单例模式
先贴出代码,代码后面是讲解 自己编写的单例模式: #include <iostream> #include <stdio.h> #include <string> ...
- BZOJ3530: [Sdoi2014]数数
3530: [Sdoi2014]数数 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 322 Solved: 188[Submit][Status] ...
- [swustoj 594] Maximum Tape Utilization Ratio
Maximum Tape Utilization Ratio(0594) Time limit(ms): 1000 Memory limit(kb): 65535 Submission: 467 Ac ...