自定义flex的数据验证组件!
2010-06-06 09:59
579 查看
package myCompenent
{
import mx.validators.Validator; //引用Validator类
import mx.validators.ValidationResult; //引用ValidationResult类
public class myValidators extends Validator
{
public function myValidators() //构造函数
{
super();
}
private var results:Array; //定义一个数组,用以存储错误
//重写验证函数
override protected function doValidation(value:Object):Array
{
var s:String = value as String;
results = []; //清空数组
results = super.doValidation(value); //先用继承类中的doValida tion方法验证
if (results.length > 0) //如果验证时有错,返回错误信息
return results;
if(s.length>6) //自定义验证,字符长度不超过6
{
//记录出错信息
results.push(new ValidationResult(true,"text","StringTooLong", "字符长度超过6了"));
}
return results;
}
}
}
(5) extends关键字表示继承。
(6) super关键字表示继承子类中的方法,所以“super.doValidation(value)”语句表示继承子类中的doValidator方法。
(7) override关键字表示重写函数。
(8) ValidationResult类是验证结果类,包含于“mx.validators.*”中。ValidationResult类的构造函数有四个参数。第一个参数表示是否为错误类型,第二个参数表示指向某特定属性,第三个参数表示错误类型,第四个参数表示错误提示。
(9) 本程序中自定义了“StringTooLong”错误类型,提示“字符长度超过6了”。此错误在数据组件的长度超过6位时发生。
(4)调用自定义验证类。
调用自定义组件时必须指明名称空间。Flex 3.0提供的组件都在“mx”名称空间下,所以在新建MXML后都自动生成xmlns:mx="http://www.adobe.com/2006/mxml"语句。
引用自定义组件的语法如下所示。
<最外层组件 … xmlns:空间名称="类所属的包">
…
<空间名称:自定义组件/>
空间名称可任意取名。类所属的包必须与类定义时的package关键字相同。
以下代码引用自定义组件myValidators。
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:MyComp="myCompenent.*">
…
<MyComp:myValidator … />
以下代码调用myValidator组件验证输入框中的数据。
<?xml version="1.0" ?>
<mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"xmlns:MyComp="myCompenent.*" fontSize="13">
<!--自定义组件myValidators,用于验证字符串数据-->
<MyComp:myValidators id="myVal"
source="{txtString}" property="text"
/>
<mx:Paneltitle="自定义验证组件" width="300" height="200" horizontalAlign= "center" verticalAlign="middle">
<mx:TextInput id="txtString"/> <!--输入框组件-->
<mx:Label text="{txtString.errorString}"/> <!--Label组件,用于显示验证结果-->
<mx:Button label="验证" click="myVal.validate();"/> <!--按钮组件,用以触发验证-->
</mx:Panel>
</mx:Application>
{
import mx.validators.Validator; //引用Validator类
import mx.validators.ValidationResult; //引用ValidationResult类
public class myValidators extends Validator
{
public function myValidators() //构造函数
{
super();
}
private var results:Array; //定义一个数组,用以存储错误
//重写验证函数
override protected function doValidation(value:Object):Array
{
var s:String = value as String;
results = []; //清空数组
results = super.doValidation(value); //先用继承类中的doValida tion方法验证
if (results.length > 0) //如果验证时有错,返回错误信息
return results;
if(s.length>6) //自定义验证,字符长度不超过6
{
//记录出错信息
results.push(new ValidationResult(true,"text","StringTooLong", "字符长度超过6了"));
}
return results;
}
}
}
(5) extends关键字表示继承。
(6) super关键字表示继承子类中的方法,所以“super.doValidation(value)”语句表示继承子类中的doValidator方法。
(7) override关键字表示重写函数。
(8) ValidationResult类是验证结果类,包含于“mx.validators.*”中。ValidationResult类的构造函数有四个参数。第一个参数表示是否为错误类型,第二个参数表示指向某特定属性,第三个参数表示错误类型,第四个参数表示错误提示。
(9) 本程序中自定义了“StringTooLong”错误类型,提示“字符长度超过6了”。此错误在数据组件的长度超过6位时发生。
(4)调用自定义验证类。
调用自定义组件时必须指明名称空间。Flex 3.0提供的组件都在“mx”名称空间下,所以在新建MXML后都自动生成xmlns:mx="http://www.adobe.com/2006/mxml"语句。
引用自定义组件的语法如下所示。
<最外层组件 … xmlns:空间名称="类所属的包">
…
<空间名称:自定义组件/>
空间名称可任意取名。类所属的包必须与类定义时的package关键字相同。
以下代码引用自定义组件myValidators。
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:MyComp="myCompenent.*">
…
<MyComp:myValidator … />
以下代码调用myValidator组件验证输入框中的数据。
<?xml version="1.0" ?>
<mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"xmlns:MyComp="myCompenent.*" fontSize="13">
<!--自定义组件myValidators,用于验证字符串数据-->
<MyComp:myValidators id="myVal"
source="{txtString}" property="text"
/>
<mx:Paneltitle="自定义验证组件" width="300" height="200" horizontalAlign= "center" verticalAlign="middle">
<mx:TextInput id="txtString"/> <!--输入框组件-->
<mx:Label text="{txtString.errorString}"/> <!--Label组件,用于显示验证结果-->
<mx:Button label="验证" click="myVal.validate();"/> <!--按钮组件,用以触发验证-->
</mx:Panel>
</mx:Application>
相关文章推荐
- 自定义flex的数据验证组件!
- flex---->自定义验证组件
- flex---->自定义验证组件
- Windows Forms中通过自定义组件实现统一的数据验证 一
- Windows Forms中通过自定义组件实现统一的数据验证(二)(转)
- Windows Forms中通过自定义组件实现统一的数据验证 二
- js中自定义react数据验证组件实例详解
- Windows Forms中通过自定义组件实现统一的数据验证(二)
- Flex中自定义组件ItemRenderer,数据绑定dataprovider,刷新问题。
- Windows Forms中通过自定义组件实现统一的数据验证(一)
- Windows Forms中通过自定义组件实现统一的数据验证(一)
- WinForm中通过自定义组件实现统一的数据验证
- 浅析JS中什么是自定义react数据验证组件
- javascript数据验证组件
- 用flash制作SWC文件,生成flex自定义组件【站优教程】
- 给flex的自定义组件分类,使自定义组件放到组件面板的不同文件夹下!
- SpringMVC杂记(五) JSR303数据验证 自定义验证规则
- EXTJS4自学手册——EXT数据结构组件(Model数据验证,数据交互)
- 为speedphp最新版添加 仿Yii 的简易版 数据验证 支持不同场景,自定义回调
- flex外部自定义组件TitleWindow对话框与主程序之间的通信