在as中监听自定义事件并处理事件的实例代码

2023-12-05 0 1,026

场景描述:点击一张图片,响应事件。必须在AS中,去监听事件,并处理事件。 1 自定义了一个事件,如下: 复制代码 代码如下: package bridge { import flash.events.Event; import mx.events.FlexEvent; public class MyEvent extends Event { public static const myclick:String=\”myclick\”; public function MyEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false) { super(type, bubbles, cancelable); } } } 2 监听事件处理的AS类,如下: 复制代码 代码如下: package handler { import bridge.MyEvent; import flash.events.Event; import mx.controls.Alert; import skin.ImgHanderSkin; import spark.components.BorderContainer; import spark.components.Image; public class ImgHander extends BorderContainer { [SkinPart(required=\”true\”)] public var img:Image;// 打开按钮 public function ImgHander() { super(); this.setStyle(\”skinClass\”,ImgHanderSkin); this.percentHeight=100; this.percentWidth=100; } //初始化监听 override public function initialize():void{ super.initialize(); img.addEventListener(MyEvent.myclick,SetImgShouZhanUrl); } private function SetImgShouZhanUrl(event:Event):void { Alert.show(\”Preview\”); } } } 3 新建MXML外观,皮肤类,在这里发送自定义事件。(在assert文件夹下有一张图片哦:柯南.jpg)如下: 复制代码 代码如下: <?xml version=\”1.0\” encoding=\”utf-8\”?> <!– ADOBE SYSTEMS INCORPORATED Copyright 2008 Adobe Systems Incorporated All Rights Reserved. NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms of the license agreement accompanying it. –> <!— The default skin class for a Spark SkinnableContainer container. @see spark.components.SkinnableContainer @langversion 3.0 @playerversion Flash 10 @playerversion AIR 1.5 @productversion Flex 4 –> <s:Skin xmlns:fx=\”http://ns.adobe.com/mxml/2009\” xmlns:s=\”library://ns.adobe.com/flex/spark\” xmlns:fb=\”http://ns.adobe.com/flashbuilder/2009\” alpha.disabled=\”0.5\”> <fx:Metadata>[HostComponent(\”spark.components.BorderContainer\”)]</fx:Metadata> <fx:Script fb:purpose=\”styling\”> <![CDATA[ import bridge.MyEvent; /** * @private */ override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number) : void { // Push backgroundColor and backgroundAlpha directly. // Handle undefined backgroundColor by hiding the background object. if (isNaN(getStyle(\”backgroundColor\”))) { background.visible = false; } else { background.visible = true; bgFill.color = getStyle(\”backgroundColor\”); bgFill.alpha = getStyle(\”backgroundAlpha\”); } super.updateDisplayList(unscaledWidth, unscaledHeight); } private function img_mouseOutHandler(event:MouseEvent):void{ // TODO Auto-generated method stub var e:MyEvent= new MyEvent(MyEvent.myclick); img.dispatchEvent(e); } ]]> </fx:Script> <s:states> <s:State name=\”normal\” /> <s:State name=\”disabled\” /> </s:states> <!— Defines the appearance of the SkinnableContainer class\’s background. –> <s:Rect id=\”background\” left=\”0\” right=\”0\” top=\”0\” bottom=\”0\”> <s:fill> <!— @private –> <s:SolidColor id=\”bgFill\” color=\”#FFFFFF\”/> </s:fill> </s:Rect> <!– Note: setting the minimum size to 0 here so that changes to the host component\’s size will not be thwarted by this skin part\’s minimum size. This is a compromise, more about it here: http://bugs.adobe.com/jira/browse/SDK-21143 –> <!— @copy spark.components.SkinnableContainer#contentGroup –> <s:Group id=\”contentGroup\” left=\”0\” right=\”0\” top=\”0\” bottom=\”0\” minWidth=\”0\” minHeight=\”0\”> <s:layout> <s:BasicLayout/> </s:layout> <s:Image id=\”img\” click=\”img_mouseOutHandler(event)\” source=\”assert/柯南.jpg\”> </s:Image> </s:Group> </s:Skin> 4 最后,创建一个MXML应用程序里面,去调用,AS类。直接运行。 复制代码 代码如下: <?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:handler=\”handler.*\”> <handler:ImgHander> </handler:ImgHander> </s:Application> 结束! 注意: 1 发送自定义事件: 复制代码 代码如下: var e:MyEvent= new MyEvent(MyEvent.myclick); img.dispatchEvent(e); 2 接收并处理事件: img.addEventListener(MyEvent.myclick,SetImgShouZhanUrl);

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 Flex 在as中监听自定义事件并处理事件的实例代码 https://www.u-9.cn/biancheng/flex/96618.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务