PDA

Просмотр полной версии : Рандомно вызывать несколько функций


Ylik
10.06.2011, 22:09
Здравствуйте! Очень интересен такой вопрос: например, есть 2 функции, как их можно вызывать в случайном порядке (или по-очереди) при вхождении в кадр?
Спасибо большое тем, кто уделит внимание!

КорДум
10.06.2011, 22:54
if (Math.random() > .5) {
foo1();
} else {
foo2();
}

Ylik
10.06.2011, 22:55
О, спасибо большое за ответ! Попробую ваш вариант. :)

mooncar
10.06.2011, 22:57
Например:

var funcName:String = 'fn' + (Math.floor(Math.random() * 4) + 1);
this[funcName]();

function fn1 ()
{
trace(1);
}

function fn2 ()
{
trace(2);
}

function fn3 ()
{
trace(3);
}

function fn4 ()
{
trace(4);
}

Либо:
var fns:Array = [fn1, fn2, fn3, fn4];
fns[Math.floor(Math.random() * 4)]();

function fn1 ()
{
trace(1);
}

function fn2 ()
{
trace(2);
}

function fn3 ()
{
trace(3);
}

function fn4 ()
{
trace(4);
}

Упс, вам 2 надо было... Ну тут универсальные варианты, можно и две :)
Второй вариант - любые имена, можно и не схожие-нумерованные. Нужные ссылки на функции просто в массив загнать.

Ylik
10.06.2011, 22:58
Ух-ты, сколько вариантов! :)
Попробуем! Спасибо большое!!! :)

КорДум
10.06.2011, 22:58
Это если функции имеют схожие имена :)

Ylik
10.06.2011, 23:00
Ну да, старалась так и делать. :)

КорДум
10.06.2011, 23:02
mooncar, вы телепат. Или просто уже привыкли? ;)

mooncar
10.06.2011, 23:04
mooncar, вы телепат. Или просто уже привыкли? ;)
Тсс... :)

КорДум
10.06.2011, 23:07
Math.random() > .5 ? foo1() : foo2();
Я выиграл ;)

Ylik
11.06.2011, 00:18
Спасибо большое!!! Всё прекрасно работает!!! :yahoo: