Удобная работа со случайными значениями в ActionScript 3.0

Я уже писал о генерации случайных чисел в ActionScript и сегодня продолжу эту тему. Итак, как мы помним, в ActionScript 3.0 имеется встроенный генератор случайных чисел Math.random(), который возвращает случайное значение в диапазоне от 0 до 1. Но на практике часто требуется случайное значение (и не только числовое!), которое имеет совсем другой интервал возможных значений. И тогда приходится писать собственную функцию...

Но, частично, данный недостаток стандартного Math.random() можно исправить с помощью небольшого вспомогательного класса Rnd от Grant-а Skinner-а. Фактически, класс Rnd расширяет возможности стандартного генератора случайных чисел в ActionScript 3.0 и предоставляет новые возможности для удобного формирования случайных значений. Эти новые возможности и будут рассмотрены далее.

Первым делом, нам надо подключить сам класс к нашему проекту (класс прилагается к исходнику - смотри конец статьи)...

Код ActionScript 3.0:

import Rnd;

В классе Rnd есть метод random(), который полностью дублирует работу стандартного Math.random().

Код ActionScript 3.0:

/* подключаем класс */ import Rnd; /* генерируем случайное число */ trace("Результат работы Rnd.random(): " + Rnd.random())

Метод float() класса Rnd возвращает число с плавающей точкой в заданном интервале значений. В качестве параметров данному методу передаются минимальное и максимальное значения или только максимальное значение (при этом за минимальное значение автоматически берётся ноль).

Код ActionScript 3.0:

/* подключаем класс */ import Rnd; /* генерируем случайное число */ trace("Результат работы Rnd.float(10): " + Rnd.float(10)) trace("Результат работы Rnd.float(10,20): " + Rnd.float(10,20))

Если нам надо, чтобы возвращалось не случайное число, а случайное булево значение (true или false), то мы можем воспользоваться методом boolean().

Код ActionScript 3.0:

/* подключаем класс */ import Rnd; /* генерируем случайное значение */ trace("Результат работы Rnd.boolean(): " + Rnd.boolean());

Мы также имеет возможность регулировать частоту выпадения булевых значений, передавая соответствующий параметр в метод boolean(). Например, если нам надо, чтобы true выпадало только в 10% случаев, то передаём в качестве параметра значение 0.1.

Код ActionScript 3.0:

/* подключаем класс */ import Rnd; /* генерируем случайное значение */ trace("Результат работы Rnd.boolean(0.1): " + Rnd.boolean(0.1));

Метод sign() случайным образом возвращает одно из двух значений: или «1», или «-1». Частота выпадения одного из значений регулируется точно также, как и у метода boolean().

Код ActionScript 3.0:

/* подключаем класс */ import Rnd; /* генерируем случайное значение */ trace("Результат работы Rnd.sign(): " + Rnd.sign()) trace("Результат работы Rnd.sign(0.9): " + Rnd.sign(0.9))

Следующий метод bit(), как можно догадаться из его названия, случайным образом возвращает одно из двух значений: или «0», или «1». Частота выпадения тоже является регулируемой.

Код ActionScript 3.0:

/* подключаем класс */ import Rnd; /* генерируем случайное значение */ trace("Результат работы Rnd.bit(): " + Rnd.bit()) trace("Результат работы Rnd.bit(0.1): " + Rnd.bit(0.1))

И, наконец, последний метод класса Rnd - это метод integer(), который возвращает случайное ЦЕЛОЕ число в заданном интервале. В качестве параметра ему надо передать минимальное и максимальное значение или только максимальное значение (при это за минимально допустимое значение будет взято «0»).

Код ActionScript 3.0:

/* подключаем класс */ import Rnd; /* генерируем случайное значение */ trace("Результат работы Rnd.integer(10): " + Rnd.integer(10)) trace("Результат работы Rnd.integer(10,90): " + Rnd.integer(10,90))

Исходник под Adobe Flash CS5.5 и класс Rnd скачиваем здесь.

Автор: admin

Дата добавления: 2011-11-04

Просмотров: 2739

Рейтинг поста: +2-

Правила перепечатки

Социальные закладки:
Комментарии:
К данной заметке комментариев пока нет. Ваш комментарий может стать первым.
Добавить комментарий:







[ + ] помощь по форматирование текста

Идиот-тест

Если все обязательные поля (отмечены * ) заполнены необходимой информацией, то нажимаем кнопку Добавить комментарий.

Меню
Подписка
Рубрики
Метки
Последние комментарии
Рейтинг постов
Реклама
Друзья
География гостей
Статистика
Яндекс.Метрика