在as中监听自定义事件 (一)

2014-11-24 10:50:59 · 作者: · 浏览: 2

场景描述:点击一张图片,响应事件。必须在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]
< xml version="1.0" encoding="utf-8" >




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">
[HostComponent("spark.components.BorderContainer")]


import bridge.MyEvent;
/**
* @private
*/
override protected function