Ваш аккаунт: пройдите авторизацию

Авторизация

Пароль есть, но Вы его забыли?
Впервые на сайте? Зарегистрируйтесь!

Вы попали в мир графики и дизайна


Изюминка нашего сайта в том, что все файлы хранятся на наших серверах, поэтому Вы получаете круглосуточный доступ ко всем файлам по прямым ссылкам без регистрации! С нашим сайтом Вы забудете про файлообменники!


Генератор паролей


Этот урок позволит прокачать основы AS3 в части применения компонентов, использования массивов, циклов и обработки событий.
Flash CS3: новый Flash файл (AS3).

Начинаем с того, что набросаем в рабочее поле необходимые компоненты из встоенной библиотеки компонентов (для вызова Ctrl+F7). Нужны: 3 CheckBox, 2 NumericStepper, 2 Label, Button, TextArea. Все их надо поаккуратней разложить на листе и раздать имена в поле <Instance Name>

checkBox1 для выбора пользователем цифр в качестве исходных символов для пароля
alt
Label (подпись чекбокса), параметр selected равен true (по умолчанию чекбокс выбран).

checkBox2 для выбора пользователем прописных букв
alt
checkBox3 для выбора строчных букв
alt
lengthPassword для выбора длины пароля (в символах)
alt
Длину пароля нельзя выбрать больше 25 символов и меньше 3 (от балды, можно поставить любые целые положительные числа). stepSize – шаг изменения значения. value это значение проставленное по умолчанию.

numberSteps число получаемых паролей
alt
Два компонента «Label» в коде не участвуют и служат лишь для подписи двух предыдущих компонентов. Меняем только параметр text.

Компонент для кнопки имеет имя generateButton и подпись «Сгенерировать» (параметр label).

Оставшийся компонент TextArea назван passwordTextBox и не имеет в нашем случае никаких настроек (все по умолчанию).

В итоге все компоненты выглядят примерно так:
Генератор паролей
Затем выделяем первый кадр сцены и жмем F9 (окно редактировани кода AS для фрейма).
Вставляем следующий код и читаем комментарии:

CODE

var numberOfRows:int = numberSteps.value;//число паролей
var numberOfSimbols:int = lengthPassword.value;//число символов пароля
var array1:Array = new Array();//хранилище исходных символов
var array2:Array = new Array();//окончательный массив, из которого берутся символы
var arrayEnd:Array = new Array();//результат
var resultN:String = null;

//пользователь вносит изменения в 6 компонентах
checkBox1.addEventListener(Event.CHANGE, changecheckBox1);
checkBox2.addEventListener(Event.CHANGE, changecheckBox2);
checkBox3.addEventListener(Event.CHANGE, changecheckBox3);
lengthPassword.addEventListener(Event.CHANGE, changeLengthPassword);
numberSteps.addEventListener(Event.CHANGE, changeNumberSteps);
generateButton.addEventListener(MouseEvent.CLICK, clickgenerateButton);

//чекбокс 1 (Цифры от 0 до 9)
function changecheckBox1(event:Event):void {
}

//чекбокс 2 (Заглавные буквы от A до Z)
function changecheckBox2(event:Event):void {
}

//чекбокс 3 (Строчные буквы от a до z)
function changecheckBox3(event:Event):void {
}

//пользователь меняет число выводимых символов в одном пароле
//(по умолчанию в компоненте проставлено 7)
function changeLengthPassword(event:Event):void {
numberOfSimbols = lengthPassword.value;
}

//пользователь меняет число выводимых строк или вариантов паролей
//(по умолчанию в компоненте проставлено 10)
function changeNumberSteps(event:Event):void {
numberOfRows = numberSteps.value;
}

//кнопка "Сгенерировать"
function clickgenerateButton(event:MouseEvent):void {
//очищаем массивы от предыдущих результатов
array1.splice(0);
array2.splice(0);
arrayEnd.splice(0);

//проверяем чекбоксы
//если оно включены, то добавляем соответствующий массив в array1
if (checkBox1.selected) {
 array1.push("0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
}
if (checkBox2.selected) {
 array1.push("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");
}
if (checkBox3.selected) {
 array1.push("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");
}
//перемешивание упорядоченного массива array1
//результат - array2 с рандомным расположением всех элементов
while (array1.length) {
 var m:int = Math.round(Math.random() * (array1.length - 1));
 //вырезаем случайный элемент из array1 и вставляем его в конец array2
 array2.push(array1.splice(m, 1));
}
//для каждой выводимой строки запускаем функцию-генератор одного пароля
for (var i:int = 0; i < numberOfRows; i ++) {
 generatorLine();
 //очищается прошлый результат
 arrayEnd.splice(0);
 //в массив-хранилище готовых паролей добавляется новый пароль (в соответствии с выбранным числом)
 //и помещается на новуюстроку при помощи "n"
 arrayEnd.push(resultN + "n");
}
//массив с паролями выводим в текстовое поле в строковом представлении
//убрав из массива символы ,
passwordTextBox.text = arrayEnd.join("");
}

//генерация строки
function generatorLine():void {
//обнуляем предыдущее значение
resultN = null;
for (var j:int = 0; j < numberOfSimbols; j ++) {
 var n:int = Math.round(Math.random() * (array2.length - 1));
 //из исходного массива array2 рандомно выбирается символ
 //и помещается в итоговый массив arrayEnd
 arrayEnd.push(array2[n]);
}
//результат - строка с паролем
resultN = arrayEnd.join("");
}
Исходник, как всегда, берём здесь:
Нажмите для скачивания genpass.rar!
Название: genpass.rar
Размер: 411.97 Kb


Внимание! Вы находитесь на сайте как гость! Зарегистрируйтесь или авторизируйтесь...

Нет времени на регистрацию? Можете войти на сайт через ВКонтакте! Это просто, быстро и удобно!

Похожие материалы

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.