Flex 自定义事件

Flex开发过程中很多情况下都要用到自定义的事件

 

关于事件 大概有这么几个概念

 

触发事件的操作.

事件对象.

事件侦听器(个人感觉事件侦听器和事件侦听函数是同等的)

事件类型

 

自定义事件中包括一下元素

 

事件类型.

事件调度程序

 

 事件调度程序描述的是在什么情况下广播事件

触发事件的操作 告诉事件调度程序将事件广播出去,事件广播出去后,侦听器如果已经注册了这个事件,那么这个时候就会监听到被广播出去的事件,进而执行特定的操作!

 

下面给出一个简单的例子

 

Person类 这个类来广播事件

 

package myevent
{
	import flash.events.Event;
	import flash.events.EventDispatcher;
	import flash.events.IEventDispatcher;

	public class Person extends EventDispatcher
	{
		private static var nowHeight:Number;
		//事件类型
		public static const HEIGHT_CHANGE:String = "height_change";
		public function Person(target:IEventDispatcher=null)
		{
			super(target);
		}
		
		//设定存储器
		public function set hei(height:Number):void
		{
			nowHeight = height;
			dispatchEvent(new Event(Person.HEIGHT_CHANGE));
		}
		
		public function get hei():Number
		{
			return nowHeight;
		}
		
	}
}
 

 下面是主程序

<?xml version="1.0" encoding="utf-8"?>
<mx:Application creationComplete="this.init()" xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
	<mx:Script>
		<![CDATA[
			import myevent.Person;
			[Bindable]
			private var nowHei:Number;
			private var p:Person = new Person();
			
			public function init():void
			{
				p.addEventListener(Person.HEIGHT_CHANGE,changeHandler);
			}
			
			public function changeHandler(event:Event):void
			{
				var person:Person = Person(event.target);
				trace("[侦听到身高改变,当前身高]"+person.hei)
			} 
		]]>
	</mx:Script>
	<mx:ApplicationControlBar dock="true">
		<mx:NumericStepper value="{nowHei}" change="p.hei=event.value"/>
	</mx:ApplicationControlBar>
</mx:Application>

 当高度改变时 在控制台就会输出当时的身高

 

在事件中还包括事件捕获,也事件冒泡 这个概念也是比较好理解的

 

比如说在A容器中包括B,B容器中包括一个按钮 如果在时间侦听器注册时 设定捕获为true 那么事件首先传入A 然后传入B最后到C C执行完事件后 然后事件又像气泡一样回到最上层 往里走的过程叫做捕获,出来的过程叫冒泡

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值