java 自定义事件 触发监听,在as中监听自定义事件

场景描述:点击一张图片,响应事件。必须在AS中,去监听事件,并处理事件。

1 自定义了一个事件,如下:

[java]

?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);

}

}

}

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类,如下:

[java]

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");

}

}

}

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)如下:

[html]

xmlns:fb="http://ns.adobe.com/flashbuilder/2009" alpha.disabled="0.5">

[HostComponent("spark.components.BorderContainer")]

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);

}

]]>

xmlns:fb="http://ns.adobe.com/flashbuilder/2009" alpha.disabled="0.5">

[HostComponent("spark.components.BorderContainer")]

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);

}

]]>

4  最后,创建一个MXML应用程序里面,去调用,AS类。直接运行。

[html]

xmlns:s="library://ns.adobe.com/flex/spark"

xmlns:mx="library://ns.adobe.com/flex/mx"

minWidth="955" minHeight="600"

xmlns:handler="handler.*">

xmlns:s="library://ns.adobe.com/flex/spark"

xmlns:mx="library://ns.adobe.com/flex/mx"

minWidth="955" minHeight="600"

xmlns:handler="handler.*">

结束!

注意:1 发送自定义事件:

[java]

?var e:MyEvent= new MyEvent(MyEvent.myclick);

img.dispatchEvent(e);

var e:MyEvent= new MyEvent(MyEvent.myclick);

img.dispatchEvent(e);            2  接收并处理事件:

img.addEventListener(MyEvent.myclick,SetImgShouZhanUrl);

http://www.dengb.com/Javabc/527006.htmlwww.dengb.comtruehttp://www.dengb.com/Javabc/527006.htmlTechArticle场景描述:点击一张图片,响应事件。必须在AS中,去监听事件,并处理事件。 1 自定义了一个事件,如下: [java] ?package bridge { import flas...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值