• Пн. Мар 8th, 2021

Уроки Flash

Все о Flash | Флеш — Скачать Обучение Flash, Скачать Уроки Flash, Статьи о Flash, Скачать Игры Flash, Скачать Книги

Action Script: Генератор случайных чисел Math.random. Уроки Action Script 2.0. Adobe Flash CS3.

Автор:admin

Июн 21, 2020

Ликбез про генератор

случайных чисел — Math.random()

в Adobe Flash

Очень часто в программе Adobe Flash требуется создать какой-нибудь случайный (хаотический) эффект. Основным средство для создания таких вот случайных (хаотических) эффектов в actionscript является генератор случайных чисел – Math.random(). В этой статье я подробно расскажу вам, что это такое и с чем его едят…
Начнем с простого и плавно будем наращивать сложность.

1
Итак, допустим мы хотим присвоить некой переменной X некое случайное число в пределах от 0 до 1 (0;1).
Для этого в Adobe Flash откроем панель Действий (Action) и введем:

X = Math.random();
trace(X);

При выполнении этого простого action скрипта, метод Math.Random() сгенерирует нам случайное число в пределах от 0 до 1 (0;1), присвоит его переменной X и затем выведет переменную X в окне вывода.

ВАЖНОЕ ПРИМЕЧАНИЕ!

Math.Random() сгенерирует нам случайное число в пределах от 0 до 1 (0;1). Причем чистого 0(нуля) и чистой 1(единицы) никогда не получиться! С течением времени случайные числа будут все ближе и ближе к 0(нулю) и 1(единице), но никогда не будут равны им.
Чтобы убедиться в этом воочию смотрите динамическую flash модель!!!

2
Но что если нам нужно расширить область генерации случайных чисел?
Допустим, нам нужны два случайных числа от 0 до 100 (0;100) и от -100 до 0 (-100;0).
Что бы сгенерировать их снова воспользуемся методом Math.random только с некоторыми доработками.
Для этого откроем панель Действий(Action) и введем:

X = Math.random()*100;
trace(X);
Y = Math.random()*(-100);
trace(Y);

Этот action скрипт сгенерирует нам два числа: одно будет в диапазоне — (0;100); другое соответственно — (-100;0)
Таким образом, умножая, мы расширяем границы генерации до нужного нам значения.
3
Но что если нам нужно захватить и отрицательные числа и положительные?
Например, нам нужно сгенерировать случайное число в пределах от -100 до 100 (-100;100).
Для этого откроем панель Действий(Action) и введем:

X = Math.random()*200 – 100;
trace(X);

В данном случае сначала Math.random()*200 генерируем случайное число от 0 до 200 (0;200), а затем, отнимая 100, мы сдвигаем полученные весь диапазон влево на 100, тем самым получая диапазон не от 0 до 200 (0;200), а от -100 до 100 (-100;100).
Заметьте что (-100;100) — это симметричный относительно нуля диапазон.
4
Теперь давайте разберем важный и практический вопрос, как сгенерировать случайное число в заданном (не симметричных относительно нуля!) диапазоне.
Например, нам нужно сгенерировать случайное число исключительно в диапазоне от -207 до 1004 (-207;1004).
Для этого:

X = Math.random()*(207+1004) – 207;
trace(X);

Заделаем эту формулу универсальной:

X = Math.random()*(|a|+b) –| a|, где
a – левая граница по модулю, b – правая граница

Запомните эту формулу! Честно, она вам еще пригодиться не один раз! К тому же она очень простая.
5
Ну и последнее…
Как сделать так, чтобы генератор случайных чисел Math.random() генерировал целые числа, например, от 0 до 7?
Все просто, достаточно в панели Действий(Action) написать:

X = Math.random(8)
trace(X);

В этом случае Math.random сгенерирует целое число из значений 0, 1, 2, 3, 4, 5, 6, 7.
Заключение
Ну, вот и все о генераторе случайных чисел Math.random smile Штука эта очень полезная и знать о ней, а тем более применять должен каждый начинающий флешер!
Для вас писал и старался Виталий К. под музыку Red Hot Chili Peppers
Flash примеры
Вот вам маленький и креативный пример по использованию генератора случайных чисел в Adobe Flash — «Креативное Рисование»

Скачать
Скачать pdf версию обучабщей статьи:
random_gen.rar [496.51 Kb] (cкачиваний: 132)
Скачать fla исходник примера:
creative_random_drawing.rar [4.42 Kb] (cкачиваний: 127)

3 комментария к «Action Script: Генератор случайных чисел Math.random. Уроки Action Script 2.0. Adobe Flash CS3.»
  1. X = Math.random(7); //даст дробное число (0;1)
    trace(X);
    Если же надо присвоить переменной X значение от 0 до 7(0;1;2;3;4;5;6;7), надо писать:
    X = random(8); //ну не как ни 7
    trace(X);
    по моему даст число в диапазоне [0;8)
    P.S. [ — Включительно ) — Исключительно
    Создаётся впечатление что автор не знаком с средой Flash, тем более с ActionScript 2
    Если не прав то поясните…..

  2. Stribog,
    да все верно, спасибо что поправили, в статье исправил

  3. Цитата: vitkuz
    Stribog,
    да все верно, спасибо что поправили, в статье исправил
    Толи я что то не понимаю, толи у нас разные среды программирования…
    Тем не менее
    X = Math.random(8);
    trace(X);
    Даст дробное число (0;1). После Math.random(8) должна быть точка с запятой ;
    Если надо число [0;7)
    Надо писать:
    X = random(8);
    trace(X);
    Без Math.
    С приставкой Math. в любом случае — Даст дробное число (0;1)
    Если уж на то пошло то статью надо всю переписать…
    Ну просто я не представляю, что бы было если бы я начал своё обучение с этой статьи, да я бы ни фига не понял…
    Автор ты хоть сам то попробуй то что ты написал на практике…
    Например:
    Цитата: vitkuz
    X = Math.random()*(207+1004) – 207;
    trace(X);
    После этой команды Flash выдает ошибку , она не понимает её
    я уже молчу про остальное…. Это просто ужасно…
    P.S. Я работаю в среде Macromedia Flash Professional 8
    Возможно в разных средах разработки есть небольшие отличия (хотя язык то один dontknow )… поправьте если не прав …
    Да! похоже я неправ. исходник .Fla у меня не открывается .
    Все таки есть отличия… Извиняюсь за свои, возможно тупые комментарии.
    Не думал что среды программирования сильно отличаются…
    ——— Спустя некоторое время——
    Да! похоже я неправ. исходник .Fla у меня не открывается .
    Все таки есть отличия… Извиняюсь за свои, возможно тупые комментарии.
    Не думал что среды программирования сильно отличаются…

Обсуждение закрыто.