这里演示一个完整的例子,
示例说明:一个简单的用户登录,在登录的时候做一些常见的判断,然后提示用户当前登录情况
1、新建工程
2、新建类,自定义事件,并且在类中声明变量用于存放用户名密码
package com.anmo
{
import flash.events.Event;
/**
* 此类用于存放用户名和密码
*/
public class LoginFormEvent extends Event
{
public var name:String = "";
public var password:String = "";
public function LoginFormEvent(type:String)
{
super(type, false, false);
}
}
}
3、新建组件,就是将类库中已经有的控件组合成一个新的组件,比如组合成一个登陆的表单
new -> MXML Component -> 输入名称(LoginForm),并且选择从panel继承 -> finish
然后向组件中拖入label、文本框和按钮,取好名字,保存后会再components中的custom下面就会多了一个LoginForm控件,然后将空间拖到页面中
用MXML标签向LoginForm中添加事件:事件的名称是什么,类型是什么
<mx:Metadata>
[EVENT(name="loginEvent",type="com.anmo.LoginFormEvent")]
</mx:Metadata>
在LoginForm中为点击按钮时注册事件流
<mx:Script>
<![CDATA[
import com.anmo.LoginFormEvent;
//定义鼠标单击事件,将用户名、密码带着发送了出去
internal function onClick(evt:MouseEvent):void{
var e:LoginFormEvent = new LoginFormEvent("loginEvent");
e.name = txt_username.text;
e.password = txt_password.text;
dispatchEvent(e);
}
]]>
</mx:Script>
然后将事件添加到按钮中,和HTML添加方式一样click="onClick(event)"
4、现在当点击按钮时会发送事件,并且带上用户名、密码,但是没有地方接收,所以要在主页面中接收
<ns1:LoginForm x="256" y="87" id="loginForm" loginEvent="login(event)">
</ns1:LoginForm>
//loginEvent="login(event)"等同于loginForm.addEventListerner("loginEvent",login)
login方法的代码:
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import com.anmo.LoginFormEvent;
//响应事件,在方法中接收发送的用户名、密码
internal function login(evt:LoginFormEvent):void{
if(evt.name == "anmo" && evt.password == "admin"){
Alert.show("你已经成功登陆","提示");
}else{
Alert.show("对不起,输入的信息有误","提示");
}
}
]]>
</mx:Script>
———————————————————————————————————————————————————————————
下面是全代码:
主页面:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ns1="*">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import com.anmo.LoginFormEvent;
//响应事件,在方法中接收发送的用户名、密码
internal function login(evt:LoginFormEvent):void{
if(evt.name == "anmo" && evt.password == "admin"){
Alert.show("你已经成功登陆","提示");
}else{
Alert.show("对不起,输入的信息有误","提示");
}
}
]]>
</mx:Script>
<ns1:LoginForm x="256" y="87" id="loginForm" loginEvent="login(event)">
</ns1:LoginForm>
</mx:Application>
LoginForm组件:
<?xml version="1.0" encoding="utf-8"?>
<mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="200" borderColor="#5DD8F2" title="用户登录" fontSize="12">
<mx:Metadata>
[Event(name="loginEvent",type="com.anmo.LoginFormEvent")]
</mx:Metadata>
<mx:Script>
<![CDATA[
import com.anmo.LoginFormEvent;
//定义鼠标单击事件,将用户名、密码带着发送了出去
internal function onClick(evt:MouseEvent):void{
var e:LoginFormEvent = new LoginFormEvent("loginEvent");
e.name = txt_username.text;
e.password = txt_password.text;
dispatchEvent(e);
}
]]>
</mx:Script>
<mx:Label x="72" y="36" text="用户名:" fontSize="12" fontWeight="bold"/>
<mx:Label x="72" y="82" text="密 码:" fontWeight="bold" fontSize="12"/>
<mx:TextInput x="146" y="34" id="txt_username"/>
<mx:TextInput x="146" y="80" id="txt_password" displayAsPassword="true"/>
<mx:Button x="158" y="126" label="登 录" id="btn_submit" fontWeight="bold"
fontSize="12" click="onClick(event)"/>
</mx:Panel>
自定义事件类:LoginFormEvent
package com.anmo
{
import flash.events.Event;
/**
* 此类用于存放用户名和密码
*/
public class LoginFormEvent extends Event
{
public var name:String = "";
public var password:String = "";
public function LoginFormEvent(type:String)
{
super(type, false, false);
}
}
}
分享到:
相关推荐
大多数MXML标签相当于ActionScript 3.0的类或者类属性。Flex解析MXML标签,并将其编译成一个包含对应ActionScript对象的SWF文件。
flex使用容器和MXML样式.pdf格式的 英文的哦
Flex中利用HTTPService MXML标签(tag)将XML转化为对象(objects)
mxml 源码
MXML语法.MXML flexview actionscript
mxml 解析器, vc6.0平台, 在一些需求不大的场合可以使用!
mxml-2.12.tar.gz
xml、mxml总结。xml是可扩展标记语言,标准通用标记语言的子集。此处总结基于w3cSchool上关于xml所属api进行总结。
pdf格式的flex的mxml语法,适合想学习flex的新手
mxml开源项目
Demo
一个上课用的ppt文档,更容易让你对mxml更为的了解。。
Flex4视频教程_02-02用mxml自定义事件.rar
mxml 适合用于嵌入式 xml 解析的轻量级的工具,在下载包的 mipsel 有编译好的.a 文件
如果你的flex插件出现mxml无法打开的问题,请下载此文件,同时参考:http://www.tekool.net/blog/2008/06/28/flex-builder-3-plugin-dont-work-with-eclipse-34/或者:...
flex -MXML语法,介绍flex 的 mxml的基本语法构成,适合一般学习者使用
使用mxml 库指定一个标准的接口,使用putInt、getInt、putString、getString、putStringArray、getStringArray等。mxml的详解可以参考https://blog.csdn.net/shift_wwx/article/details/99677421
minixml2.5最新的版本。 嵌入式xml 解析、查找、生成、遍历 功能,全部实现是标准c,移植很容易。 最新的2.5,修改了很多bug。 这个压缩包,里下载完了,直接就可以在liunx下编译安装。 如果是在windows下的话,只需要...
Mini-XML是一个小型的开源的XML解析器,采用 C 语言开发。该解析器最大的特点就是小型、无须依赖其他类库,只需要 GCC 编译器 和 make 程序即可编译,支持 UTF-8/UTF-16 编码。
Classes Class Description OLAPAttribute The OLAPAttribute class represents a single attribute of an OLAPDimension. OLAPAxisPosition The OLAPAxisPosition class represents a position along the axis ...