package com.wks.util
{
public class CheckCode
{
public function CheckCode()
{
}
/*获取验证码 传入空间参数id
*调用方法:
* <s:Label id="asd" width="80" height="20" color="#377CD0" text="{getcheckCode(asd)}"
fontFamily="Georgia" fontSize="20" digitWidth="tabular"/>
* <mx:LinkButton label="看不清楚?" click="{asd.text=getcheckCode(asd)}"/>
*/
public function getcheckCode(obj:Object):String
{
var ran:Number; //获取随机数
var number:Number; //得到单个数字
var code:String; //获得通过number转化的字符
var checkCode:String = ""; //得到的随机数
//生成四位随机数
for(var i:int=0;i<4;i++){
ran = Math.random();
number = Math.round(ran*10000);
if(number % 3 == 0)
{ //"A"--"Z"的ASCII码为65-90 "a"--"z" 97--122
// 二次判断是 取数字或是 大写字母
if(number % 2 == 0){
code = String.fromCharCode(48 + (number % 10));
}else {
code = String.fromCharCode(65 + (number % 26));
}
}else if(number % 3 == 1)
{
// 二次判断是 取数字或是 小写字母
if(number % 2 == 0){
code = String.fromCharCode(48 + (number % 10));
}else {
code = String.fromCharCode(97 + (number % 26));
}
}else {
//对3取余数为2时 进入
if(number % 2 == 0){
code = String.fromCharCode(48 + (number % 10));
}else {
code = String.fromCharCode(97 + (number % 26));
}
}
checkCode += code;
}
//绘制躁点
obj.graphics.clear();
var c:int = checkCode.length * 25;
for(var j:int=0; j<c;j++)
{
var x:int = Math.random() * obj.width;
var y:int = Math.random() * obj.height;
obj.graphics.lineStyle(1, 0x7C929D);
obj.graphics.drawRect(x, y, .5, .5);
}
return checkCode;
}
}
}
转载于:https://blog.51cto.com/jie4lin/786561