flex自定义无参数事件

原创 2012年03月21日 11:14:52

自定义事件必须注意几点:

(1)自定义事件通过继承Event类来实现。

(2)自定义事件不可以自己触发,只能有系统事件派发。

了解这两点后现在就可以开始自定义自己的事件了。

首先我们新建一个ActionScript Class,这个Class继承flash.events.Event。

package
{
	import flash.events.Event;
	
	public class MyEvent extends Event
	{
		public function MyEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
		{
			super(type, bubbles, cancelable);
		}
		
		override public function clone():Event
		{
			// TODO Auto Generated method stub
			return new MyEvent(type,bubbles,cancelable);
		}
		
	}
}

下面创建一个登录的组件(component),并添加和使用自定义事件

<?xml version="1.0" encoding="utf-8"?>
<s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" 
			   width="400" height="260" fontSize="22" fontWeight="bold" textAlign="center"
			   title="用户登录"
			   >
	<fx:Declarations>
		<!-- Place non-visual elements (e.g., services, value objects) here -->
	</fx:Declarations>
	
	<fx:Metadata>
		[Event(name="myevent", type="MyEvent")]
	</fx:Metadata>
	
	<s:Form id="loginForm">
		<s:FormItem label="用户名:">
			<s:TextInput id="username" textAlign="left"/>
		</s:FormItem>
		<s:FormItem label="密   码:">
			<s:TextInput id="passwd" textAlign="left" displayAsPassword="true"/>
		</s:FormItem>
	</s:Form>
	<s:Button id="registerBtn" x="56" y="160" label="重置"/>
	<s:Button id="loginBtn" x="274" y="160" label="登录" click="clickHandle(event)"/>
	
	<fx:Script>
		<![CDATA[
			private function clickHandle(event:MouseEvent):void {
				this.dispatchEvent(new MyEvent("myevent",true,false));
			}
		]]>
	</fx:Script>
</s:TitleWindow>
在主程序中引入刚才新建的component,并触发该
<?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:myLogin = "*"
			   >
	<fx:Declarations>
		<!-- Place non-visual elements (e.g., services, value objects) here -->
	</fx:Declarations>
	
	<myLogin:MyLogin id="myLogin" x="278" y="114" myevent="clickedHandle(event)">
		
	</myLogin:MyLogin>
	
	<fx:Script>
		<![CDATA[
			import mx.controls.Alert;
			private function clickedHandle(event:MyEvent):void {
				Alert.show("The type of this event is "+event.type+"\nThe currentTarget is "+event.currentTarget+  
					"\nThe target is "+event.target);  
			}
		]]>
	</fx:Script>
</s:Application>
效果如下:


相关文章推荐

flex有参数的自定义事件,数据验证测试

自定义带参数的事件应该明白:         (1)自定义事件继承Event时的构造函数里面带参数。         (2)同样需要触发系统事件,然后派发自定义事件。         新建一个A...

flex自定义组件事件DEMO

  • 2014年11月18日 21:49
  • 2.41MB
  • 下载

flex自定义事件(包括DispatchEvent与addEventListener)传参

在网上查了一会,用常用的自定义事件的方式,有时候进行传参、监听和发送貌似不成功。所自己找了一些资料,自己写了一个自定义 的事件,直接使用自身的DispatchEvent和监听addeventliste...
  • ttbat
  • ttbat
  • 2013年07月31日 11:23
  • 1395

Flex中自定义事件

      xmlns:s="library://ns.adobe.com/flex/spark"       xmlns:mx="library://ns.adobe.com/flex/mx" mi...
  • xyylchq
  • xyylchq
  • 2011年03月24日 15:58
  • 615

Flex4中的自定义事件(转)

1.方式一:通过继承Event类编写Flex4的自定义事件 下面我们来做一个例子,实现这样的功能:监控TextInput的输入,通过监控输入的内容,触发不同的自定义事件。 我们先来写这个自定义事件...

Flex4自定义事件类型Event的相关应用

基于松耦合的概念 自定义事件类型将取到很重要的作用   当您创建自己的自定义 Event 类时,必须覆盖继承的 Event.clone() 方法,以复制自定义类的属性。如果您未设置在事件子...

Flex自定义事件和组件的使用方法

在Flex中使用自定义事件和组件可以使代码变得简洁清晰,需要注意的两点是在自定义事件中要重写clone方法,返回自定义事件对象;在自定义组件中要在Metadata中,声明组件事件的名字和类型。 自定义...
  • abrahu
  • abrahu
  • 2011年06月11日 01:47
  • 2182

Flex4自定义事件

1、自定义事件 2、自定义带参数的事件         刚到公司上班没多久,事情不是太多。打酱油的成分占据大多时间。闲着没事学习下Flex。在这之前没有接触过Flex。在理解上面多有拙劣之处。重在...

Flex 自定义事件(一直不太明白有什么意义)

FLEX 系统提供的事件与DOM的事件基本上完全一致 但是和传统的WEB开发不同的是  可以为自定义的组件添加自定义的事件    比如我们做了一个组件是一个登录框   当点击登录按钮的时候触发我们自定...

关于flex自定义事件的理解

你可以这样理解事件类: 1.第一步,首先忘记你学到的任何关于事件类的知识,不知道有这么一回事,然后只知道FLASH有个内置类,名叫EVENT 2.第二步,来看这个类有什么——它有很多很多常数属性,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:flex自定义无参数事件
举报原因:
原因补充:

(最多只允许输入30个字)