Flex中的事件机制
发布时间:2020-12-15 01:04:37 所属栏目:百科 来源:网络整理
导读:? 一. 事件简介 ? 事件可以由外设触发,比如:键盘,鼠标,也可能是外部输入,比如:web service的返回. ? 事件还能由组件的外观和生命周期发生变化时触发,比如:组件的创建或者改变大小. ? 所有用户与应用交互都会产生事件.用户没有直接与应用交互也可能产生事件,
?
? ?? ? 在Flex中定义事件有两中情况,分别是ActionScript和MXML中定义。 ? ?? ? 在ActionScript中定义: ?
CODE:
[Event(name="myEnableEvent",type="flash.events.Event")]
public class MyComponent extends UIComponent { ? ?? ?? ???... } 在MXML中定义:
CODE:
<mx:Metadata>
? ? [Event(name="DataChange",type="DataChangeEvent")] </mx:Metadata> DataChangeEvent事件参数的定义:
CODE:
import flash.events.Event;
public class DataChangeEvent extends flash.events.Event { ? ?? ? public function DataChangeEvent() ? ?? ? { ? ?? ?? ?? ???super("DataChange"); ? ?? ? } ? ?? ? public var Data:Object; } ? 在自定义控件中定义和触发事件:
CODE:
<?xml version="1.0" encoding="utf-8"?>
<mx:Form xmlns:mx="http://www.adobe.com/2006/mxml" width="212" height="56"> <mx:Metadata> ? ?? ???[Event(name="DataChange",type="DataChangeEvent")] ? ? </mx:Metadata> <mx:Button label="Button" click="Change()"/> ? ?? ? <mx:Script> ? ?? ?? ?? ???<![CDATA[ ? ?? ?? ?? ?? ?? ?? ?function Change():void ? ?? ?? ?? ?? ?? ?? ?{ ? ?? ?? ?? ?? ?? ?? ?? ?? ? this.dispatchEvent(new DataChangeEvent()); ? ?? ?? ?? ?? ?? ?? ?} ? ?? ?? ?? ???]]> ? ?? ? </mx:Script> </mx:Form> 容器接收相关自定义控件事件:
CODE:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ns1="*">
? ?? ? ? ?? ? <ns1:EmployeeCombo x="146" y="132" DataChange="onChange(event)" > ? ?? ? </ns1:EmployeeCombo> ? ?? ? <mx:Script> ? ?? ?? ?? ???<![CDATA[ ? ?? ?? ?? ?? ?? ?? ?import mx.controls.Alert; ? ?? ?? ?? ?? ?? ?? ?function onChange(e:DataChangeEvent) ? ?? ?? ?? ?? ?? ?? ?{ ? ?? ?? ?? ?? ?? ?? ?? ?? ? ? ?? ?? ?? ?? ?? ?? ?} ? ?? ?? ?? ???]]> ? ?? ? </mx:Script> </mx:Application> 其实自定义事件的现实也很简单,但起着非常重要的作用;正是因为有了事件的机制,使得大部分重复的功能抽取到自定义控件中,从而达到一个很高的代码重用性。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |