Flex的自定义事件(组件)的那些事儿

Demo:Login

1.创建一个UserLogin类。


package com
{
[Bindable]
public class UserLogin
{
public var logUserNam:String=""; //用户名
public var logUserPass:String=""; //用户密码
public var logCompanyNam:String=""; //公司名称
public function UserLogin(userNam:String, userPass:String, companyNam:String)
{
this.logUserNam=userNam;
this.logUserPass=userPass;
this.logCompanyNam=companyNam;
}
}
}

2.自定义事件MyEvent。


package com
{
import flash.events.Event;
public class MyCustomEvent extends Event
{
public static const TESTMYEVENT:String="testMyEvent"; //使用常量定义事件的触发方式名称
[Bindable]
public var userLog:UserLogin;
public function MyCustomEvent(userLogin:UserLogin,type:String)
{
super(type);
this.userLog=userLogin;
}
}
}

3.自定义组件Component。


<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300"
>
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Metadata>
[Event(name="testMyEvent",type="com.MyCustomEvent")]
</fx:Metadata>
<fx:Script>
<![CDATA[
import com.MyCustomEvent;
import com.UserLogin;
protected function login(event:MouseEvent):void
{
var userLog:UserLogin;
var myEvent:MyCustomEvent;
if(logName.text!="" && password.text!="")
{
userLog = new UserLogin(logName.text,password.text,company.text);
myEvent = new MyCustomEvent(userLog,"testMyEvent");
this.dispatchEvent(myEvent);
}
}
]]>
</fx:Script>

<s:Panel width="100%" height="100%">
<s:Form>
<s:FormItem label="LogName:">
<s:TextInput id="logName"/>
</s:FormItem>
<s:FormItem label="password">
<s:TextInput id="password"/>
</s:FormItem>
<s:FormItem label="company">
<s:TextInput id="company"/>
</s:FormItem>
<s:FormItem>
<s:Button id="btn" label="login" click="login(event)"/>
</s:FormItem>
</s:Form>
</s:Panel>
</s:Group>

4.创建Login.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"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:com="*"
minWidth="955" minHeight="600"
>
<fx:Script>
<![CDATA[
import com.MyCustomEvent;
import com.UserLogin;
import mx.controls.Alert;
protected function component_testMyEventHandler(event:MyCustomEvent):void
{
var userLog:UserLogin = event.userLog;
text.appendText(userLog.logUserNam+","+userLog.logCompanyNam);
}

]]>
</fx:Script>
<fx:Metadata>
[Event(name="testMyEvent",type="com.MyCustomEvent")]
</fx:Metadata>
<s:TextArea id="text" text="abc" width="500" height="100"/>
<com:Component id="component" width="500" height="300" x="500" y="100"
testMyEvent="component_testMyEventHandler(event)">
</com:Component>
</s:Application>

------完成。

时间: 2024-11-07 06:50:44

Flex的自定义事件(组件)的那些事儿的相关文章

【教程】【FLEX】#003 自定义事件、模块间通讯

本篇笔记,主要阐明 事件是如何创建 和 如何使用自定义事件达到模块之间通讯 的效果. 句子解释: 什么叫做模块之间的通讯呢?? 简单点说,就是两个模块之间可以互相传数据. A模块 可以接收到 B模块的数据,这个就叫做通讯. 所以A模块注册了一个事件, B模块触发了这个事件,A接收到. 那么 这个就是A.B模块进行通讯了. 一.自定义事件的创建(代码例子在文章底部) 1.创建一个ActionScript类,继承Event 2.声明属性 2.1  保存数据的属性(事件保存数据的对象,可多个) 2.2

Flex 自定义 Zlert 组件!

说明: 原生的 Alert.show 参数,要显示的按钮你只能 Alert.OK | Alert.Cancel 这样; 自定义 Zlert 参数跟原生的 差不多,按钮写法是这样写的: {"btnId":"确定", "btnId2":"其他按钮名称"} ZlertWindow.mxml: com/components <?xml version="1.0" encoding="utf-8&qu

Vue组件绑定自定义事件

Vue组件使用v-on绑定自定义事件: 可以分为3步理解: 1.在组件模板中按照正常事件机制绑定事件: template: '<button v-on:click="increment">{{ counter }}</button>', 如上,v-on:click就是用来给子组件绑定点击事件的,这就是原生的自带的事件,容易理解. 2.子组件的事件发生时,在事件函数中向父组件"报告"这一事件(使用$emit): methods: { incre

vue自定义事件将组件内的数据传输到实例中去使用

vue自定义事件将组件内的数据传输到实例中去使用 <body> <div id="app"> <h1 style="color:deeppink">{{ outer_title }}</h1> //③给实例绑定一个方法 <hello :reader="new_msg"  v-on:chang_event="chang_tit"></hello> </

vue自定义事件 子组件把数据传出去

每个 Vue 实例都实现了事件接口(Events interface),即: 使用 $on(eventName) 监听事件 使用 $emit(eventName) 触发事件 1.使用v-on绑定自定义事件 1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title></title> 6 <s

vue组件-子组件向父组件传递数据-自定义事件

自定义事件 我们知道,父组件是使用 props 传递数据给子组件,但如果子组件要把数据传递回去,应该怎样做?那就是自定义事件!

Flex事件机制学习-自定义事件实现类间通信 .

今天,学习Flex自定义事件,可以使两个类通信,定义一个Main类. public class Main extends Sprite     {            public function Main()            { //演示ChildSprite类是与Main类通信,ChildSprite类稍后说明: var child:ChildSprite=new ChildSprite(); //指示该实例的属性值            child.flag="01";

flex中dispatchEvent的用法(自定义事件) .

Evevt和EventDispatcher类在as3的事件机制中是很重要的角色,dispatchEvent()是EventDispatcher类的一个事件发送方法,它可以发送出Event类或其子类的实例,在as3中所有的显示对象都可以发送事件,因为as3中所有的显示对象都是EventDispatcher子类DisplayObject的实例. 发送事件有三种方式:继承EventDispatcher,如sprite等显示对象.复合EventDispatcher或其子类.实现IEventDispatc

自定义事件拖拽组件

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>自定义事件拖拽组件</title> <style> #div1{ width:100px; height:100px; background:red; position:abs