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

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

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

Регистрация: Oct 2005
Сообщений: 97
Cool setInterval + random

Доброго времнеи суток.Суть проблеммы такова, есть функция, которая должна вызываться setInterval'ом, т.е. с задержкой.Все было бы отлично, только эту фуекцию нужно вызывать не через определенное количество врмени, а вызываться случайно, допустим в промежутке от 1 до 10 секунд. =) Хелп, плз.

Старый 03.06.2007, 15:31
BigDan вне форума Посмотреть профиль Отправить личное сообщение для BigDan Найти все сообщения от BigDan
  № 2  
Ответить с цитированием
BigDan
 
Аватар для BigDan

Регистрация: Apr 2006
Адрес: Kiev
Сообщений: 1,675
Отправить сообщение для BigDan с помощью ICQ
Код:
var SI:Number;
SIF();
function SIF(){
 clearInterval(SI);
 .....
 .....
 .....
 SI = setInterval(SIF,10*Math.random());
}

Старый 03.06.2007, 16:37
Reon вне форума Посмотреть профиль Отправить личное сообщение для Reon Найти все сообщения от Reon
  № 3  
Ответить с цитированием
Reon
 
Аватар для Reon

Регистрация: Oct 2005
Сообщений: 97
Цитата:
Сообщение от BigDan
Код:
var SI:Number;
SIF();
function SIF(){
 clearInterval(SI);
 .....
 .....
 .....
 SI = setInterval(SIF,10*Math.random());
}
Чет не очень получаеться. Допустим есть объект "lol"-включающий простую анимацию, в первом кадре он стопаеться и запускаеться только тогда, когда интервал отсчитает нужно количество времени вот чего получаеться...
Код:
var SI:Number;
SIF();
function SIF(){
 clearInterval(SI);
 lol.play();
 trace(getTimer()+" "+"inetrval"+" "+SI);
 SI = setInterval(SIF,Math.floor(Math.random((5)+3)*1000));
}
чет невоткну никак, нужно чтоб он работал только с секундами, поэтому домнажаю на 1000, ранддом должен выпадать в пределах от 0 до 4, минимальное число=3, максимальное=8. Вродь все логично, но работать верно нехочет... =( проанализируйте плз...

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Код:
var SI:Number;
SIF();
function SIF(){
 clearInterval(SI);
 lol.play();
 trace(getTimer()+" "+"inetrval"+" "+SI);
 SI = setInterval(SIF, (Math.floor(Math.random()*5) +3 )*1000));
}
а чем вам setTimeout не нравится?


Последний раз редактировалось Kikasso; 03.06.2007 в 19:13.
Старый 03.06.2007, 16:57
Reon вне форума Посмотреть профиль Отправить личное сообщение для Reon Найти все сообщения от Reon
  № 5  
Ответить с цитированием
Reon
 
Аватар для Reon

Регистрация: Oct 2005
Сообщений: 97
Цитата:
Сообщение от Kikasso
а чем вам setTimeout не нравится?
Сорь, ничего по поводу setTimeout в хелпе немогу найти, можно поподробней?

Старый 03.06.2007, 17:00
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 6  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Как setInterval, но выполняется 1 раз. Недокументирован во Flash 8, но все использовали. В хелпе к CS3 уже заявлена официальная поддержка в Flash Player 8.
__________________
4am is time to rock

Старый 03.06.2007, 17:10
Reon вне форума Посмотреть профиль Отправить личное сообщение для Reon Найти все сообщения от Reon
  № 7  
Ответить с цитированием
Reon
 
Аватар для Reon

Регистрация: Oct 2005
Сообщений: 97
Цитата:
Сообщение от DarkLight
Как setInterval, но выполняется 1 раз. Недокументирован во Flash 8, но все использовали. В хелпе к CS3 уже заявлена официальная поддержка в Flash Player 8.
Спасиб, разобрался, работает =) Теперь траблы только с рандомом...
Код:
setTimeout(SIF,(Math.floor(Math.random(10))+8)*1000);
немогу понять почему рандом выдает всегда значение приближеное к 8 секундам... оч непонятно...может кто поможт разобраться?

Старый 03.06.2007, 17:15
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 8  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Math.random() возвращает значения от 0 до 1
не надо путать с random(10), использовать которое уже не рекомендуется - устарело
__________________
4am is time to rock

Старый 03.06.2007, 17:33
Reon вне форума Посмотреть профиль Отправить личное сообщение для Reon Найти все сообщения от Reon
  № 9  
Ответить с цитированием
Reon
 
Аватар для Reon

Регистрация: Oct 2005
Сообщений: 97
Ребят, всем огромное спасибо =) конечный код:
Код:
SIF();
function SIF(){
lol.play();
trace(getTimer());
setTimeout(SIF,(Math.random()+.3)*10000);
}
Выдает вполне приличный рандом

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

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

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


 


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


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