这次实例,是在Action Script 类中.定义一个事件..然后也是通过点击按钮.触发事件..
并且.访问Action Script类中的变量值.
下面是具体代码实现:
第一步:
在Flex项目中,添加一个文件夹..然后添加一个Action Script类. 输入类名.然后继承至flash.events.Event;
点击确认.
package event
{
import flash.events.Event;
/*
*自定义Event事件类;
*
*/
public class EventAction extends Event
{
public static const EVENTTYPE:String = "event";
private var param:int;
public function EventAction(type:String,bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type, bubbles, cancelable);
}
//获取param变量的值;
public function getParamMethod():int{
return this.param;
}
//设置param变量的值;
public function setParamMethod(param:int):void{
this.param = param;
}
}
}
第二步:
在新建一个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" creationComplete="application1_creationCompleteHandler(event)"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<s:layout>
<s:HorizontalLayout verticalAlign="middle" horizontalAlign="center"/>
</s:layout>
<fx:Script>
<![CDATA[
import event.EventAction;
import mx.events.FlexEvent;
<!--按钮事件;-->
protected function btnID_clickHandler(event:MouseEvent):void
{
//实例化一个对象EventAction对象;
var eventAction:EventAction = new EventAction(EventAction.EVENTTYPE);
//设置值;
eventAction.setParamMethod(200);
//分发event;
this.dispatchEvent(eventAction);
}
//加载事件;
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
// TODO Auto-generated method stub
this.addEventListener(EventAction.EVENTTYPE,eventFunction);
}
//监听方法;
private function eventFunction(e:EventAction):void{
//获取eventAction类中的param变量值;
var param:int = e.getParamMethod();
//输出:
trace("输出param值:"+param);
}
]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<s:Button id="btnID" label="触发自定义事件" click="btnID_clickHandler(event)">
</s:Button>
</s:Application>
最后运行:
应用程序.则会在后台输出:
输出param值:200