PDA

Просмотр полной версии : random по времени.


warlock_black
09.03.2006, 14:21
Оказывается не в том разделе спрашивал:)

Еще раз:

Есть 2 кадра с stop() в первом.
Нужно, чтобы иногда проигрывался второй кадр. Но проигрывался произвольно. То есть, иногда через 3 секунды после того как мувик будет загружен, а иногда и через 5 минут.
Как такое можно сделать, может подскажет кто?

Juice_Green
09.03.2006, 15:00
что именно непонятно?! алгоритм или написание кода?

warlock_black
09.03.2006, 15:22
Если честно, то и то и другое:)
Не знаю даже с какого конца заходить...

Futs
09.03.2006, 15:36
Читай setInterval и Math.random, там все понятно

warlock_black
09.03.2006, 15:49
Так рекомендовали уже прописать следующее:
setInterval(gotoAndPlay,(random(3)+3)*1000,2);

Так ведь не работает...

Futs
09.03.2006, 15:56
вместо gotoAndPlay напиши play()

Futs
09.03.2006, 16:04
протупил пиши так:stop();
function myPlay (par) {
_root.gotoAndPlay(par);
trace("переход")

}
setInterval(myPlay,Math.random()*10000,2);

warlock_black
09.03.2006, 16:36
ага, работает. Правда с очень странным эффектом...:)
У меня в первом мувик с нормальным текстом, а во-втором, с эффектом блюр.
Так вот, твой random работает почему-то по нарастающей:) То есть, при компиляции мувика надо подождать некоторое, время для того, чтобы увидеть результат. Зато потом, рандомайзить начинает с уклоном и даже с задержкой на втором кадре. Причем чем больше времени проходит, тем больлее на сцене преобладет второй кадр. В результате, вместо текста, который иногда"глючит" (типа эффект), я получаю практически нечитабельный текст:)

Futs
09.03.2006, 16:38
естественно, надо не забывать про clearInterval во втором кадре, подумай!

warlock_black
09.03.2006, 17:03
Подумал... видать тупой...:(
Не понимаю главного, отчего это происходит, т.е. откуда берется перекос в сторону 2-ого кадра...

Вставлял я во 2-ой кадре clearInterval; - не помогает. Понятное дело, что не правильно... не улавливаю какой-то элементарной вещи...

Futs
09.03.2006, 17:12
Нужно не думать, а читать хелп 1 кард var inID = setInterval(myPlay,Math.random()*10000,2);
2 кадр clearInterval( inID );И попробуй в первом кадре trace(inID) и поймешь почему происходит ускорение процесса

warlock_black
09.03.2006, 17:16
А случайно не так это пишется:

в 1-ом кадре в конце: intervalId = setInterval(myPlay, Math.random()*10000, 2);
во 2-ом кадре: clearInterval(intervalId);

Правильно?

warlock_black
09.03.2006, 17:18
его и читаю:)

клево, я все-таки правильно додумался:)
Спасибо огромное:)

Futs
09.03.2006, 17:46
Я очень рад

warlock_black
09.03.2006, 19:11
Я тоже:)

А почему при записи: _root.gotoAndPlay(par); - работает и трасировка и объекты в кадрах, при gotoAndPlay(par); (если мувик находится не в руте) тоже все работает, а если пишу this.gotoAndPlay(par); , то работает только трасировка. А с объектами в кадрах ничего не происходит? То есть загружается первый кадр и не сменяется на второй? Таже непонятка, если this заменить на имя клипа...

Futs
09.03.2006, 19:48
Помню столкнулся с этим, что бы долго не возиться передал функции еще один параметр setInterval(myPlay, Math.random()*10000, 2, this); и получал соответственно:
function myPlay (par,put) {
put.gotoAndPlay(par);

warlock_black
09.03.2006, 20:06
хитро:)
век живи - век учись:)
А то получалось, что мувик грузится в родителя, а тот воспринимает функцию, как глобольную и тут такое с родителем начаналось:)

Еще раз спасибо:)