100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > [Flex] Flex 控件类 的自定义事件添加

[Flex] Flex 控件类 的自定义事件添加

时间:2024-01-31 01:56:29

相关推荐

[Flex] Flex 控件类 的自定义事件添加

NewClass源码摘要:本文记录了Flex中给控件和类加入自定义事件的步骤。

正文:虽然网上已经有很多类似的资料了, 不过还是想自己写一篇,作为存档。

(一)给类A加入自定义事件FavPathDelEvt,Appliaction调用A,并响应A的事件

(1)写一个自定义事件as类,类中附带参数Index。

packageNewClass

{

importflash.events.Event;

publicclassFavPathDelEvtextendsflash.events.Event

{

privatevar_index:int;

publicfunctionsetIndex(index:int):void

{

_index=index;

}

publicfunctiongetIndex():int

{

return_index;

}

publicfunctionFavPathDelEvt(type:String,index:int)

{

Index=index;

super(type);

}

}

}

(2)在需要触发这个事件的类(也就是A类)中加上[Event...]的申明,并且写上触发函数。

packageNewClass

{

importNewClass.FavPathDelEvt;

importmx.core.Container;

importflash.utils.setTimeout;

[Event(name="onDelPath",type="NewClass.FavPathDelEvt")]

publicclassAextendsContainer

{

publicfunctionA()

{

flash.utils.setTimeout(function():void{//这里设置了一个延时函数,类初始化2000ms后触发事件

DispatchEventofA();

},2000,null);

}

privatefunctionDispatchEventofA():void

{

this.dispatchEvent(newNewClass.FavPathDelEvt("onDelPath",1));

}

}

}

(3) 最后,在Application所在的mxml中,加上事件处理函数,并将该函数和A的事件绑定。

<?xmlversion="1.0"encoding="utf-8"?>

<mx:Applicationxmlns:mx="//mxml"layout="absolute"minWidth="500"minHeight="350"creationComplete="Init()">

<mx:Script>

<![CDATA[

importNewClass.A;

importmx.controls.Alert;

privatefunctionInit():void

{

vara:A=newA();

a.addEventListener("onDelPath",FavPathDelEvt_Handler);//将A的事件和Application中的函数绑定

}

privatefunctionFavPathDelEvt_Handler(evt:FavPathDelEvt):void

{

Alert.show("FavPathDelEvtofAiscalled,Indexis"+evt.Index);

}

]]>

</mx:Script>

</mx:Application>

运行程序后,2秒后会出现调用事件的提示对话框。

(二)给自定义组件mxml加入自定义事件

给组件加入自定义事件基本和(一)一致。区别在于,mxml中可以通过加入

<mx:Metadata>

[Event(name="onDelPath",type="NewClass.FavPathDelEvt")]

</mx:Metadata>

来完成和A中[Event((name="onDelPath",type="NewClass.FavPathDelEvt")] 相同的功能

--------------------------------

源码下载链接:NewClass.rar

---------------------------------

转载请注明出处,au revoir!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。