Bài viết này hướng dẫn tạo 1 dãy số mật mã an toàn để người dùng nhập vào
Bước 1: Tạo class “RenderSecurityCode.as”
CODE:
package com.SecurityCode {
import flash.display.MovieClip;
import flash.events.Event;
import flash.display.GradientType;
import flash.display.SpreadMethod;
import flash.text.TextFormat;
import flash.text.TextField;
import flash.geom.Matrix;
/**
* @author yoko
*/
public class RenderSecurityCode extends MovieClip {
private var CLIP : MovieClip;
private var SCODE_ARRAY : Array;
private const SCODE_LENGTH : int = 8;
private var SCODE_STR : String = “”;
public function RenderSecurityCode() {
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(evt : Event) : void {
removeEventListener(Event.ADDED_TO_STAGE, init);
SCODE_ARRAY = new Array(“A”, “B”, “C”, “D”, “E”, “F”, “G”, “H”, “I”, “J”, “K”, “L”, “M”, “N”, “O”, “P”, “Q”, “R”, “S”, “T”, “U”, “V”, “W”, “X”, “Y”, “Z”, “a”, “b”, “c”, “d”, “e”, “f”, “g”, “h”, “i”, “j”, “k”, “l”, “m”, “n”, “o”, “p”, “q”, “r”, “s”, “t”, “u”, “v”, “w”, “x”, “y”, “z”, “0″, “1″, “2″, “3″, “4″, “5″, “6″, “7″, “8″, “9″);
createClip();
createBackground();
createSecurityCode();
createText();
}
private function createClip() : void {
CLIP = new MovieClip();
addChild(CLIP);
}
private function createBackground() : void {
var fillType : String = GradientType.LINEAR;
var colors : Array = [Math.random() * 0xFFFFFF,Math.random() * 0xFFFFFF];
var alphas : Array = [1,1];
var ratios : Array = [0x00,0xFF];
var matr : Matrix = new Matrix();
matr.createGradientBox(20, 20, 0, 0, 0);
var spreadMethod : String = SpreadMethod.REFLECT;
CLIP.graphics.beginGradientFill(fillType, colors, alphas, ratios, matr, spreadMethod);
CLIP.graphics.drawRect(0, 0, 140, 30);
}
private function createSecurityCode() : void {
for(var i : int = 0;i < SCODE_LENGTH;i++) {
var randomNumber : int = Math.floor(Math.random() * SCODE_ARRAY.length);
SCODE_STR += SCODE_ARRAY[randomNumber];
}
}
private function createText() : void {
var field_txt : TextField = new TextField();
field_txt.multiline = false;
field_txt.selectable = false;
field_txt.embedFonts = false;
field_txt.defaultTextFormat = getFormat();
field_txt.text = SCODE_STR;
field_txt.width = field_txt.textWidth + 5;
field_txt.height = field_txt.textHeight;
field_txt.x = (CLIP.width – field_txt.textWidth) / 2;
field_txt.y = 0;
//(CLIP.height – field_txt.textHeight) / 2;
CLIP.addChild(field_txt);
}
private function getFormat() : TextFormat {
var format : TextFormat = new TextFormat();
format.font = “Verdana”;
format.size = 20;
format.color = 0xFFFFFF;
return format;
}
public function checkSCODE(str : String) : Boolean {
if(str === SCODE_STR)
return true;
else
return false;
}
}
// end
}
Bước 2: Tạo class “ViewSecurityCode.as” để hiển thị trên FLA Document
CODE:
package com.SecurityCode {
import flash.display.MovieClip;
import flash.text.TextField;
import flash.events.Event;
import flash.events.MouseEvent;
/**
* @author yoko
*/
public class ViewSecurityCode {
private var ROOT : MovieClip;
private var SCODE : RenderSecurityCode;
private var INPUT : TextField;
private var RESULT : TextField;
private var BUTTON : MovieClip;
public function ViewSecurityCode(mainTimeline : MovieClip) {
ROOT = mainTimeline;
INPUT = ROOT.input_txt;
INPUT.maxChars = 8;
INPUT.restrict = “a-zA-Z0-9″;
RESULT = ROOT.result_txt;
BUTTON = ROOT.button_mc;
init();
BUTTON.addEventListener(MouseEvent.CLICK, manageMouseClick);
}
private function init() : void {
SCODE = new RenderSecurityCode();
SCODE.x = INPUT.width;
SCODE.y = INPUT.y;
ROOT.addChild(SCODE);
}
private function manageMouseClick(evt : Event) : void {
RESULT.text = String(SCODE.checkSCODE(INPUT.text));
}
}
// end
}
Bước 3: Tạo FLA Document “SecurityCode.fla”
_ Tạo 1 movieClip tên “button_mc”
_ Tạo 1 textField tên “input_txt”
_ Tạo 1 textField tên “result_txt”
_ Chọn Frame 1 code
CODE:
import com.SecurityCode.ViewSecurityCode;
new ViewSecurityCode(this);
_ Lưu lại và chạy thử xem kết quả bằng cách nhập số vào và nhấn OK








