私は、ユーザーが6〜10文字のパスワードを入力し、大文字、小文字、および1つの数字を含むフラッシュパスワード検証プロジェクトに取り組んでいます。Actionscript 3パスワードベリファイアがパスワードと一致しない
プログラムをテストしてパスワードを入力すると、「パスワードが一致しません。もう一度お試しください」というメッセージが表示されます。 feedback_txtフィールドに入力します。
私はSubmitボタンのイベントハンドラによって呼び出される2つの関数Same()とPasswordApproved()を持っています。同じ機能は、パスワードが両方の時刻に入力されたことを確認します。 PasswordApproved関数は、パスワードが指定された標準を満たしていることを確認します。
私はCharCodeAtを使用してPasswordApproved部分を助けるヒントを与えていましたが、その方法を理解できないようです。
ここではコードです:
submit_btn.addEventListener(MouseEvent.CLICK,Submit);
function Submit(e:MouseEvent):void {
var pass1:String = password1_txt.text;
var pass2:String = password2_txt.text;
if (Same(pass1,pass2) == true) {
if (PasswordApproved(pass1) == true) {
feedback_txt.text = "Your password was APPROVED."
feedback_txt.textColor = 0x00FF00;
} else {
feedback_txt.text = "DID NOT MEET QUALIFICATIONS. Try again."
feedback_txt.textColor = 0xFF0000;
}
} else {
feedback_txt.text = "Passwords DID NOT MATCH. Try again."
feedback_txt.textColor = 0xFF0000;
}
password1_txt.text = "";
password2_txt.text = "";
stage.focus = password1_txt;
}
これは私が機能するために持っているものである(私はそれを正しく書いていないよか、それだけで間違っている、これはそれが働いていない理由でもあると思いますか?。):
はfunction Same(pass1,pass2:String):void {
var pass1:String = password1_txt.text;
var pass2:String = password2_txt.text;
}
function PasswordApproved(pass1:String):String {
var pass1:String = "abchefghjkmnpqrstuvwxyzQWERTYUIOPLKJHGFDSAZXCVBNM";
var i:Number = 0;
var pass:String = "";
var nLength:Number = pass1.length;
var length:Number = 10
while(i<=length)
{
var num:Number = Math.round(Math.random() * nLength);
pass += pass1.charCodeAt(num);
i++;
}
return pass;
}
私はあなたが示唆したことを試しましたが、私はまだ "パスワードが一致しませんでした。もう一度お試しください。"私はコードの残りの部分を投稿しましたが、私は同じ機能が働いていない理由だと思います。両方のパスワードが一致するようにする方法はありますか? – Tams
@Tamsすでに言及したように、 'if'文を使用してテキストフィールドが同じであることを確認するので、' Same'関数は必要ありませんが、いつも使っているのが好きなら編集します私の答えはあなたのためにそれを修正する。 – akmozo
ありがとう、akmozo。私はテストし、すべてがうまくいきました。 – Tams