flex checkCode驗證碼

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;
  }
 }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章