Главная ReadMe F.A.Q. Регистрация Форум




А вы подписаны на рассылку?
Да
Нет, но подпишусь
Нет и не собираюсь
А что это такое?
Система Orphus
Популярные новости!
» flash урок: Random Boxes Text Effect with Actionsc ...
» flash урок: Создание прокручиваемого текстового по ...
» Дорогие наши девушки! Примите искренние поздавлени ...
» flash журнал #6: Flash + XML
» Обучение к программе: Selteco Alligator Flash Desi ...
Случайные новости!
» flash игра: Thing - учавствуй в кровавом побоище!
» flash журнал #5: Слушатели событий, массивы, и про ...
» Flash открытка: Спасибо! Спасибо! Спасибо! Thank y ...
» flash игра: Steppenwolf. Эпизоды 21-24.
» flash журнал #4: Улучши свой flash фотоальбом - до ...
» flash креатив: Создай собственную боевую машину-тр ...
» Скачать программу: Adobe Flash Professional CS3. О ...
Архив
Март 2009 (6)
Февраль 2009 (23)
Январь 2009 (14)
Декабрь 2008 (12)
Ноябрь 2008 (8)
Октябрь 2008 (28)
Помощь проекту
Нравятся наши flash уроки? Хотите отблагодарить? Сделайте это небольшим денежным переводом.

Система Яndex.Деньги
41001294647528
Система WebMoney
Z107467581647
E243939578295
U315407063311
R241161536729
B419555053375

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

8 октября 2008
Ликбез про генератор
случайных чисел - 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)
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.

Другие новости по теме:

  • Flash журнал #2: Создание прелоадера при помощи Action Script. Уроки Actio ...
  • flash урок: Random Boxes Text Effect with Actionscript 3
  • Actionscript: Как работать со строками и выделением. Классы String и Select ...
  • Actionscript: Кодирование/задание цветa в Adobe Flash
  • flash журнал #1: "Создание 3D карусели с использованием Action Script". ...



  •  (голосов: 1)
    vitkuz | Просмотров:1825 | Напечатать
    #1 написал: Stribog (24 ноября 2008 19:39)


    Группа: Посетители
    Регистрация: 23.11.2008
    Комментариев: 4
    Публикаций: 0
    Россия, Берёзовский (Кемеровская область)
    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
    Если не прав то поясните.....
    ICQ: --
    #2 написал: vitkuz (24 ноября 2008 20:05)


    Группа: Администраторы
    Регистрация: 17.07.2008
    Комментариев: 44
    Публикаций: 72
    Республика Беларусь, Минск
    Stribog,
    да все верно, спасибо что поправили, в статье исправил
    ICQ: --
    #3 написал: Stribog (25 ноября 2008 13:37)


    Группа: Посетители
    Регистрация: 23.11.2008
    Комментариев: 4
    Публикаций: 0
    Россия, Берёзовский (Кемеровская область)
    Цитата: 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 выдает ошибку smile, она не понимает её fool
    я уже молчу про остальное.... Это просто ужасно...

    P.S. Я работаю в среде Macromedia Flash Professional 8
    Возможно в разных средах разработки есть небольшие отличия (хотя язык то один dontknow )... поправьте если не прав ...

    Да! похоже я неправ. исходник .Fla у меня не открывается smile .
    Все таки есть отличия... Извиняюсь за свои, возможно тупые комментарии.
    Не думал что среды программирования сильно отличаются...

    -------- Спустя некоторое время-----
    Да! похоже я неправ. исходник .Fla у меня не открывается smile .
    Все таки есть отличия... Извиняюсь за свои, возможно тупые комментарии.
    Не думал что среды программирования сильно отличаются...
    ICQ: --
    Информация
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
    Видео Журнал "Легко о Flash" - подписавшись на него вы будете один раз в месяц получать его выпуск на свой почтовый ящик, там вы найдете новые видео уроки по работе в программе Adobe Flash CS4.

    Ваш e-mail:

    Ваше имя на русском:
    политика антиспама
    подпишитесь сейчас и получите доступ ко всем выпущенным журналам
    Логин
    Пароль
     


    Rambler's Top100 Рейтинг@Mail.ru Rating All.BY Каталог SiteCreation rate your site
    links
    page counter
    http://wareznic.ru | купить ноутбук | Перспективная работа в Одессе ждет тебя на сайте Job.ukr.net | Advise. cd music: articles. | Writing services: buy research paper ,buy term paper