当前位置: 首页 > 图文教程 > Flash动画 > ActionScript > AS3教程:密码强度验证

ActionScript
FLASH 3D相册之利用BitmapData类制作
Flash 脚本游戏开发教程 第一课
Flash 脚本游戏开发教程第二课
Flash 脚本游戏开发教程第三课
Flash 脚本游戏开发教程第四课
Flash 脚本游戏开发教程第五课
Flash 脚本游戏开发教程第六课
Flash 脚本游戏开发教程第七课
Flash 脚本游戏开发教程第八课
Flash AS实现的蝌蚪摆尾动画的教程
从基础开始深入学Flash AS3教程(4)(译文)
从基础开始深入学Flash AS3教程(5)(译文)
从基础开始深入Flash AS3教程(2)(译文)
从基础开始深入学Flash AS3教程(3)(译文)
Flash AS3对单个图片进行角色动作化处理
从基础开始深入Flash AS3教程(1)(译文)
Flash教程:if条件语句的用法
Flash AS教程:_visible属性的详细讲解
Flash AS教程:图片环绕旋转效
Flash教程:trace()的使用

ActionScript 中的 AS3教程:密码强度验证


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 47 ::
收藏到网摘: n/a

public static function evaluatePwd(sPW:String):int
{
if (sPW.length <= 4)
return 0;
var Modes:int = 0;
for (var i:int = 0; i < sPW.length; i++)
{
Modes |= CharMode(sPW.charCodeAt(i));
}

return bitTotal(Modes);

function CharMode(iN:int):int
{
if (iN>=48 && iN <=57)
return 1;
if (iN>=65 && iN <=90)
return 2;
if (iN>=97 && iN <=122)
return 4;
else
return 8;
}

function bitTotal(num:int):*
{
var modes:int = 0;
for (var i:int = 0; i < 4; i++)
{
if (num & 1) modes ++;
num >>>= 1;
}
return modes;
}
}

public static function evaluatePwd(sPW:String):int
  {
   if (sPW.length <= 4)
    return 0;
   var Modes:int = 0;
   for (var i:int = 0; i < sPW.length; i++)
   {
    Modes |= CharMode(sPW.charCodeAt(i));
   }

   return bitTotal(Modes);

   function CharMode(iN:int):int
   {
    if (iN>=48 && iN <=57)
     return 1;
    if (iN>=65 && iN <=90)
     return 2;
    if (iN>=97 && iN <=122)
     return 4;
    else
     return 8;
   }

   function bitTotal(num:int):*
   {
    var modes:int = 0;
    for (var i:int = 0; i < 4; i++)
    {
     if (num & 1) modes ++;
     num >>>= 1;
    }
    return modes;
   }
  }另外还有一个十分简单的算法

public static function evaluatePwd2(sPW:String):int
{
return sPW.replace(/^(?:([a-z])|([A-Z])|([0-9])|(.)){5,}|(.)+$/g, “$1$2$3$4$5″).length;
}
public static function evaluatePwd2(sPW:String):int
  {
   return sPW.replace(/^(?:([a-z])|([A-Z])|([0-9])|(.)){5,}|(.)+$/g, "$1$2$3$4$5").length;
  }

我们可以用多种图形化的界面甚至动画去展现密码的强度,举个简单的例子,例如我希望用户在输入密码后1秒内没有任何输入动作,则验证密码的强度,并且已进度条的形式展示

首先注册一个监听

pwdInputView.password.addEventListener(KeyboardEvent.KEY_UP, onKey);
pwdInputView.password.addEventListener(KeyboardEvent.KEY_UP, onKey);然后看看监听函数

private var oldText:String;
private function onKey(e:KeyboardEvent):void
{
if (oldText != pwdInputView.password.text && pwdInputView.password.text.length > 5)
{
oldText = pwdInputView.password.text;
TweenLite.killTweensOf(updateStrengthView, false);
TweenLite.delayedCall(1, updateStrengthView);
}
}
private var oldText:String;

  private function onKey(e:KeyboardEvent):void
  {
   if (oldText != pwdInputView.password.text && pwdInputView.password.text.length > 5)
   {
    oldText = pwdInputView.password.text;
    TweenLite.killTweensOf(updateStrengthView, false);
    TweenLite.delayedCall(1, updateStrengthView);
   }
  }

首先定义一个oldText成员,用于记录上次输入的密码,如果当前密码和上次密码不相同并且长度大于5,开始执行操作。我这里用了TweenLite作为计时器,1秒后将执行强度判断,如果发现用户在1秒内再次有输入操作,则销毁当前TweenLite。

再看看如何用视图来展示密码强度,这里不多作解释了,只是一个简单的动画效果。

private function updateStrengthView():void
{
var toWidth:Number = pwdInputView.strengthCanvas.width * CheckStrong.evaluatePwd(pwdInputView.password.text) * .25;
TweenLite.to(pwdInputView.maskCanvas, 1.5, {width:toWidth, ease:Bounce.easeOut, overwrite:false});
}
private function updateStrengthView():void
  {
   var toWidth:Number = pwdInputView.strengthCanvas.width * CheckStrong.evaluatePwd(pwdInputView.password.text) * .25;
   TweenLite.to(pwdInputView.maskCanvas, 1.5, {width:toWidth, ease:Bounce.easeOut, overwrite:false});
  }