加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex Event标签

发布时间:2020-12-15 01:07:24 所属栏目:百科 来源:网络整理
导读:Using the Event metadata tag You use the [Event] metadata tag to define events dispatched by a component so that the Flex compiler can recognize them as MXML tag attributes in an MXML file. You add the [Event] metadata tag in one of the fo

Using the Event metadata tag
You use the [Event] metadata tag to define events dispatched by a component so that the Flex compiler can recognize
them as MXML tag attributes in an MXML file. You add the [Event] metadata tag in one of the following locations:
ActionScript components?? Above the class definition,but within the package definition,so that the events are bound
to the class and not a particular member of the class.
MXML components?? In the <mx:Metadata> tag of an MXML file.

?

Demo:

定义MyEvent extends Event

ActionScript 3语言:
package event
{
? import flash.events.Event;

? public class MyEvent extends Event
? {
??? public static const EVENT_TEST : String = "EventTest";

??? public function MyEvent( type : String , bubbles : Boolean = false , cancelable : Boolean = false)
??? {
????? super( type , bubbles , cancelable);
??? }
? }
}

?

定义MyButton extends Button

MXML语言:
<?xml version="1.0" encoding="utf-8"?>
<s:Button xmlns:fx= "http://ns.adobe.com/mxml/2009"
????? xmlns:s= "library://ns.adobe.com/flex/spark"
????? xmlns:mx= "library://ns.adobe.com/flex/halo"
????? click= "dispatchEvent(new MyEvent(MyEvent.EVENT_TEST));" >
? <fx:Script>
??? <![CDATA[
????? import event.MyEvent;
??? ]]>
? </fx:Script>
? <fx:Metadata>
????? <!--在Metadata标签下定义Event编译期间检查-->
??????? [Event(name ="EventTest",type ="event.MyEvent")]
? </fx:Metadata>
</s:Button>

?

Main App

MXML语言:
<?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/halo"
???????? xmlns:my= "button.*"
???????? minWidth= "1024"
???????? minHeight= "768" >
? <fx:Script>
??? <![CDATA[
????? import event.MyEvent;
????? /**
?????? * 定义Event的函数监听方式
?????? * 在my2 的 EventTest="handleEvent(event)" 相当于对于该Event注册了一个Listiner
?????? * 消息监听函数为handleEvent(event)
?????? */
????? private function handleEvent( e : MyEvent ): void { trace( e); }
??? ]]>
? </fx:Script>
? <!--可以直接定义EventTest="myTa.text='got Event';" 及在Event触发式执行myTa.text='got Event';-->
? <my:MyButton id= "my1" EventTest= "myTa.text='got Event';" x= "208" y= "213" ></my:MyButton>
? <my:MyButton id= "my2" EventTest= "handleEvent(event)" x= "209" y= "258" ></my:MyButton>
? <s:TextArea id= "myTa" x= "141" y= "55" />
</s:Application>

?

解释:

?

1· 在MyButton中将[Event]标签放入Metadata标签中,则告诉编译器该空间会产生该种Event,

?? 如果此时dispatchEvent出去的Event不是该种类型 则在编译期间及会报错

2· 在主类中<my:MyButton id="my1" EventTest="myTa.text='got Event';" x="208" y="213"></my:MyButton>

?? 由于EventTest已经在Metadata做了标记,即可使用代码提示功能找到相应的Event

?? EventTest="myTa.text='got Event';"? 表示为EventTest 这个Event注册一个监听者,监听到信息后处理方式为

?? myTa.text='got Event' , same as the EventTest="handleEvent(event)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读