Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 31.07.2009, 12:58
flashowl вне форума Посмотреть профиль Отправить личное сообщение для flashowl Найти все сообщения от flashowl
  № 1  
Ответить с цитированием
flashowl
 
Аватар для flashowl

Регистрация: Jun 2009
Адрес: Severodvinsk
Сообщений: 33
Smile Вероятность появления мувиклипа

Как сделать так, чтобы при нажатии на кнопку с определённой вероятностью появлялись 4 мувиклипа.
1 - 10%.
...
...
4-40%.
Спасибо за любую помощь
__________________
flash гном + Math.random (=сумасшедший дом)!!!;

Старый 31.07.2009, 13:23
incorp вне форума Посмотреть профиль Отправить личное сообщение для incorp Найти все сообщения от incorp
  № 2  
Ответить с цитированием
incorp

Регистрация: Nov 2008
Адрес: Москва
Сообщений: 92
если речь конечно идет о создании N кнопок, каждая из которых с вероятностью пропорциональной своему номеру создает 4 мувика, тогда можно попробовать так:
Код AS1/AS2:
for(var i=1;i<10;i++)
this["button_"+i].onPress = function()
{
var rand = Math.random();
if(rand<i*0.1) create_four_mc();
}
в первом преближении. не проверял.

Старый 31.07.2009, 13:45
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 3  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код AS1/AS2:
var r:Number = Math.random();
if (r >= .6)
	trace("40%");
else if (r >= .3)
	trace("30%");
else if (r >= .1)
	trace("20%");
else
	trace("10%");
 
// или так
var array:Array = [ 1, 2, 2, 3, 3, 3, 4, 4, 4, 4 ];
var n:Number = array[Math.floor(10 * Math.random())];
trace(n + "0%");
 
// еще идея
var array:Array = [ .1, .3, .6, 1 ];
var length:Number = array.length;
var r:Number = Math.random();
for (var i:Number = 0; i < length; i++)
{
	if (r < array[i])
	{
		var n:Number = i + 1;
		break;
	}
}
trace(n + "0%");
Последний вариант для решения задачи в общем случае больше подходит чем другие, наверное. Какие еще варианты есть для решения в общем случае?? Т.е. есть N событий, и за раз может наступить одно из них с определенной вероятностью.

Старый 31.07.2009, 14:56
flashowl вне форума Посмотреть профиль Отправить личное сообщение для flashowl Найти все сообщения от flashowl
  № 4  
Ответить с цитированием
flashowl
 
Аватар для flashowl

Регистрация: Jun 2009
Адрес: Severodvinsk
Сообщений: 33
Что означает точка перед цифрой?
__________________
flash гном + Math.random (=сумасшедший дом)!!!;

Старый 31.07.2009, 15:13
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 5  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
.1 -- это сокращенная запись 0.1

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:28.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.