myValidators.as
package myCompenent { import mx.validators.ValidationResult; import mx.validators.Validator; 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); if(results.length>0) return results; if(s.length>6) { results.push(new ValidationResult(true,"text","StringTooLong","字符长度超过6了")); } return results; } } }
main.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/halo" minWidth="1024" minHeight="768" xmlns:myCompenent="myCompenent.*"> <fx:Declarations> <myCompenent:myValidators id="mycom" source="{textinput}" property="text"/> </fx:Declarations> <s:Panel x="131" y="54" width="405" height="200" title="自定义验证组件"> <s:TextInput x="133" y="25" id="textinput"/> <s:Label x="133" y="55" width="128" height="29" text="{textinput.errorString}" /> <s:Button x="133" y="92" label="验证" id="btn" click="mycom.validate();"/> </s:Panel> </s:Application>