Flex之自定义事件

时间:2022-01-18 14:11:01

1、通过dispatchEvent委托事件模式完成自定义事件:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
creationComplete="application1_creationCompleteHandler()"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.FlexEvent;
import mx.messaging.events.MessageEvent; protected function application1_creationCompleteHandler():void
{
this.addEventListener("Clicked",clickedHandler);
Alert.show(" creationComplete ","提示");
} private function clickedHandler(e:Event):void{
Alert.show("事件响应","提示");
} protected function button1_clickHandler():void
{
dispatchEvent(new Event("Clicked"));
Alert.show(" click ","提示");
} ]]>
</fx:Script>
<fx:Metadata>
[Event(name="Clicked",type="flash.events.Event")]
</fx:Metadata>
<s:Button x="102" y="29" label="按钮" enabled="true" width="85" height="35" click="button1_clickHandler()" />
</s:Application>

2、通过继承Event类是实现自定义事件:

<?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" creationComplete="application1_creationCompleteHandler(event)"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Script>
<![CDATA[
import com.flex.event.MyEvent; import mx.controls.Alert;
import mx.events.FlexEvent; protected function application1_creationCompleteHandler(event:FlexEvent):void
{
this.addEventListener(MyEvent.MYEVENT,eventHindler);
}
//自定义函数
private function eventHindler(e:MyEvent):void{
Alert.show("事件响应结果:"+e.getEventObj(),"提示");
} protected function button1_clickHandler(event:MouseEvent):void
{
var evt:MyEvent = new MyEvent(MyEvent.MYEVENT,122);
dispatchEvent(evt); //将事件发送出去
} ]]>
</fx:Script>
<fx:Declarations> </fx:Declarations>
<s:Button x="93" y="59" label="click me" click="button1_clickHandler(event)"/>
</s:Application>

  MyEvent类定义:

  

package com.flex.event
{
import flash.events.Event; public class MyEvent extends Event
{
public static const MYEVENT:String="myevent";
private var eventObj:int;
public function MyEvent(type:String, i:int,bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type, bubbles, cancelable);
this.eventObj=i;
}
public function getEventObj():int{
return this.eventObj;
}
}
}

Flex之自定义事件的更多相关文章

  1. 【教程】【FLEX】&num;003 自定义事件、模块间通讯

    本篇笔记,主要阐明 事件是如何创建 和 如何使用自定义事件达到模块之间通讯 的效果. 句子解释: 什么叫做模块之间的通讯呢?? 简单点说,就是两个模块之间可以互相传数据. A模块 可以接收到 B模块的 ...

  2. Flex 自定义事件

    一.分派自定义事件类型 任何实现flash.event.IEventDispatcher接口的对象都可以分派事件,这包括所有显示对象和一些非显示对象类.通常,对于 自定义的非显示类,可以通过扩展fla ...

  3. Flex事件机制学习-自定义事件实现类间通信 &period;

    今天,学习Flex自定义事件,可以使两个类通信,定义一个Main类. public class Main extends Sprite     {            public function ...

  4. FLEX自定义事件

    有时候我们需要让两个组件之间实现联动,并且在其中传递数据,自定义事件机制可以帮助我们比较优雅的实现这种需要. 下面的例子,是打算实现一个列表和一个编辑框的联动. 编辑框代码 <?xml vers ...

  5. flex中dispatchEvent的用法&lpar;自定义事件&rpar; &period;

    Evevt和EventDispatcher类在as3的事件机制中是很重要的角色,dispatchEvent()是EventDispatcher类的一个事件发送方法,它可以发送出Event类或其子类的实 ...

  6. &lbrack;置顶&rsqb; flex4事件监听与自定义事件分发&lpar;三&rpar;

    1.我们来说一下自定义事件子类.什么时候创建新的事件类以及怎么创建. (1)说一下,我们什么时候需要自定义事件类.举例说明,在flex中事件的基类是Event,而当我们点击某个按钮或者是单击某个组件的 ...

  7. ExtJS自定义事件

    1.开发ExtJS组件UI的时候,基本上对于一些操作,就是与后台交互之类的多数都是用户进行点击触发一个事件,在事件的处理器handler里面调具体的业务方法,完成业务数据的处理以及业务流程的流转机制, ...

  8. 谈谈JS的观察者模式(自定义事件)

    呼呼...前不久参加了一个笔试,里面有一到JS编程题,当时看着题目就蒙圈...后来研究了一下,原来就是所谓的观察者模式.就记下来...^_^ 题目 [附加题] 请实现下面的自定义事件 Event 对象 ...

  9. Javascript之自定义事件

    Javascript自定义事件,其本质就是观察者模式(又称订阅/发布模式),它的好处就是将绑定事件和触发事件相互隔离开,并且可以动态的添加.删除事件. 下面通过实例,一步一步构建一个具体的Javasc ...

随机推荐

  1. 1&period;Two Sum&lpar;c&plus;&plus;&rpar;&lpar;附6ms O&lpar;n&rpar; accepted 思路和代码&rpar;

    问题描述: Given an array of integers, return indices of the two numbers such that they add up to a speci ...

  2. dedecms最新版本修改任意管理员漏洞&plus;getshell&plus;exp

    此漏洞无视gpc转义,过80sec注入防御. 补充下,不用担心后台找不到.这只是一个demo,都能修改任意数据库了,还怕拿不到SHELL? 起因是全局变量$GLOBALS可以被任意修改,随便看了下,漏 ...

  3. Android&lowbar;安装GooglePlay

    百度搜索:“google play 安装” http://jingyan.baidu.com/article/cbf0e500f4645b2eab28935a.html http://samsungb ...

  4. Eclipse下建立geoserver源码工程

    摘要:本文详细阐述,如何基于geoserver源码构建eclipse工程文件,操作过程中除用到jdk.eclipse以外,还有git和maven,操作系统为windows8. 1安装Git 从(htt ...

  5. Swift学习笔记十三

    初始化 初始化是一个在类.结构体或枚举的实例对象创建之前,对它进行预处理的过程,包括给那个对象的每一个存储式属性设定初始值,以及进行一些其他的准备操作. 通过定义初始化器(initializer)来实 ...

  6. 性能更好的js动画实现方式——requestAnimationFrame

    本文转载,原文地址:http://www.cnblogs.com/2050/p/3871517.html 用js来实现动画,我们一般是借助setTimeout或setInterval这两个函数,css ...

  7. BZOJ 2754&lpar;&lbrack;SCOI2012&rsqb;喵喵叫的星球-统计序列的后缀阵列中子序列出现次数&rpar;

    2754: [SCOI2012]喵喵叫的星球 Time Limit: 20 Sec  Memory Limit: 128 MB Submit: 805  Solved: 380 [id=2754&qu ...

  8. 在线词典php

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. Request对象实现请求转发区别

    servlet请求转发与重定向的区别: request.setAttribute("test","hello"); request.getRequestDisp ...

  10. Java集合框架面试题目

    1.为什么Map接口不继承Collection 接口? Set是无序集合,并且不允许重复的元素 List是有序的集合,并且允许重复的元素 而Map是键值对 它被视为是键的set和值的set的组合 Ma ...