Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скрипт music jukebox, с цитатами, Как переделать? 
:(
    Опции темы
Клявас®
Дата 25.12.2004, 04:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 1.9.2004
Где: Литва, Вильнюс

Репутация: нет
Всего: нет



стоял раньше у меня виндоус 98 секонд идишн.
скрипт работал изумительно.
поставил виндоус ХР, скрипт стал временами барахлить.
Может один из пяти загрузок он сработает, но чаще "еррор он пэйдж".
Кто может увидет в нём ошибку - помогите исправить.
Буду благодарен. Писали с друзьями.

Код


//<!--
var midi = ""
var txt = ""
var nummidis = 62
day = new Date()
seed = day.getTime()
ran = parseInt(((seed - (parseInt(seed/1000,10) * 1000))/10)/100*nummidis
+ 1,10)



if (ran == (1))
{midi=("http://www.klyavas.nm.ru/midi/vl.mid");
quote0="Римский папа, разбил все иконы и сам взорвал Ватикан...";
quote1="О! Вечная любовь! Слепое знамя дураков...";
quote2="Но где она живёт!? Вечная любовь?!";
today2=new Date();
len=3;
today=today2.getTime()/10;
rnd=today%len;
document.writeln(eval("quote"+rnd));}

if (ran == (2))
{midi=("http://www.klyavas.nm.ru/midi/vervolf.mid");
quote0="Сяду я к жаркому огню, мясо съем, чаю попью...";
quote1="Пустите бедного домой...";
quote2="Всё обо что волки точат зубы...";
today2=new Date();
len=3;
today=today2.getTime()/10;
rnd=today%len;
document.writeln(eval("quote"+rnd));}

.........................

document.write('<center><bgsound src="' + midi + '" AUTOSTART=true loop=1></bgsound></center>')
//-->

М
 
Если скрипт однотипный то не нужно постить его целиком, первые два if'а достаточно;-)
Подредактировал

PM MAIL WWW ICQ   Вверх
MeLeK
Дата 25.12.2004, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 24.12.2004

Репутация: нет
Всего: нет



Гы Клявас®, и ты тут.
Вообще, имхо, если рассмотреть кусок кода, например:
Код

len=3;
today=today2.getTime()/10;
rnd=today%len;
document.writeln(eval("quote"+rnd));}


То как мы видим rnd будет дробным числом, поэтому нужно что-то вроде:
Код

document.writeln(eval("quote"+parseInt(rnd)));


Кста, вот более удобный код, как мне кажется:
Код

<!--
var midi = ""
var nummidis = 62
day = new Date()
seed = day.getTime()
ran = parseInt(((seed - (parseInt(seed/1000,10) * 1000))/10)/100*nummidis + 1,10)

function doIt(midi,quote0, quote1, quote2){
today2=new Date();
len=3;
today=today2.getTime()/10;
rnd=today%len;
document.writeln(eval("quote"+parseInt(rnd)));
document.write('<center><bgsound src="' + midi + '" AUTOSTART=true loop=1></bgsound></center>');
}


if (ran == (1))
{midi=("http://www.klyavas.nm.ru/midi/vl.mid");
quote0="Римский папа, разбил все иконы и сам взорвал Ватикан...";
quote1="О! Вечная любовь! Слепое знамя дураков...";
quote2="Но где она живёт!? Вечная любовь?!";
doIt(midi,quote0, quote1, quote2);
}

if (ran == (2))
{midi=("http://www.klyavas.nm.ru/midi/vervolf.mid");
quote0="Сяду я к жаркому огню, мясо съем, чаю попью...";
quote1="Пустите бедного домой...";
quote2="Всё обо что волки точат зубы...";
doIt(midi,quote0, quote1, quote2);
}

//Модератор: и таким так далее...;-)

//-->


З.Ы. Агата Кристи - ФОРЕВаААААААА

М
 
Урезал листинг, принцип ясен


Это сообщение отредактировал(а) Sardar - 25.12.2004, 16:58
PM MAIL   Вверх
Sardar
Дата 25.12.2004, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Привыкайте писать хорошо и маштабируемо smile
Чуть чуть логики и:
HTML
<!-- сюда вставляется цитата, задай любой стиль -->
<div id="message"></div>
<!-- учтём что тег bgsound существует только в ИЕ -->
<bgsound id="snd" AUTOSTART="true" loop="1" src="<span style='color:orange'></span>">

Код

//BD, массив массивов, где [адрес_до_файла, описание1, описание2, ....., описаниеN]
var music=[
 [ "http://www.klyavas.nm.ru/midi/vl.mid",
   "Римский папа, разбил все иконы и сам взорвал Ватикан...",
   "О! Вечная любовь! Слепое знамя дураков...",
   "Но где она живёт!? Вечная любовь?!"
 ],
 [ "http://www.klyavas.nm.ru/midi/vervolf.mid",
   "Сяду я к жаркому огню, мясо съем, чаю попью...",
   "Пустите бедного домой...",
   "Всё обо что волки точат зубы..."
 ]
];

/**
* Найти запись, запустить её и установить текст, html код выше.
*/
function nextMusic(m) {
 if(typeof(music[m])=="undefined") return;
 document.getElementById("snd").src=music[m][0];
 if(music[m].length>1) { //цитат может быть сколь угодно
   var q=(new Date()).getTime()%(music[m].length-1);
   document.getElementById("message").innerHTML=music[m][q+1];
 }
}

var m=Math.round(Math.random()*(music.length-1)); //выбираем музыку
nextMusic(m); //устанавливаем, цитата выбирается рандомно.


Ничего сложного, но теперь добавлять новые записи легко в массив. Также количество цитат для записи не ограниченно.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Aliance
Дата 26.12.2004, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



«Дети, не используйте Вы функцию eval()» ©
PM MAIL WWW ICQ Skype   Вверх
Клявас®
Дата 27.12.2004, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 1.9.2004
Где: Литва, Вильнюс

Репутация: нет
Всего: нет



Sardar
что-то я не понял, как установить, чтобы цитата тоже была рандом, а не первая?!

MeLeK
с твоим кодом разобрался. Спасибо. За Агату тоже smile
Пока, вроде, сбоев не даёт smile
Добавлено @ 11:24
но как говорит альянс, что "Eval" лучше не использовать, поэтому хочу код и Сардар'a попробывать поставить!
PM MAIL WWW ICQ   Вверх
Sardar
Дата 27.12.2004, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Клявас® всё просто. Во первых ты использовал document.write, т.е. вставлял цитату при загрузке, я же вставляют текст в уже созданный заранее элемент, таким образом музыку и цитату можно менять и после загрузки. Если хочешь именно через document.write, то лучеше этот код:
Код
//выбираем рандомно запись
var m=Math.round(Math.random()*(music.length-1)); //выбираем музыку
//пишем в поток документа
document.write('<bgsound src="' + music[m][0] + '" AUTOSTART=true loop=1></bgsound>');

if(music[m].length>1) { //цитат может быть сколь угодно
//здесь выбирается цитата по твоему алгоритму. я бы лучше использовал Math.random как для музыки
 var q=Math.round((new Date()).getTime()/10)%(music[m].length-1);
 document.write(music[m][q+1]); //за место innerHTML пишем в поток документа
}

Тогда HTML код выше не нужен.

Сама БД имеет вид: массив записей[]{
запись[] {пусть до музыки, опционально цитата 1, цитата 2 и так далее},
запись[] {пусть до музыки, опционально цитата 1, цитата 2 и так далее}
}

Принцип: выбирается рандомно запись, берётся первый элемент как путь до муз. файла. Затем смотрим сколько цитат и выбираем согласно твоему методу с датой одну из цитат. Всё это дело пишем в поток документа. Подключаем скрипт в том месте где хотим иметь цитату:
HTML
<script language="Javascript" type="text/javascript" src="скрипт.js"></script>



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Клявас®
Дата 27.12.2004, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 1.9.2004
Где: Литва, Вильнюс

Репутация: нет
Всего: нет



Sardar
После первого прочтения ничего не понял, видно мозг перегужен, но всё же...буду разбираться!! Как-то визуально твой код больше понравился ;)

Спасибо Вам за помощь!!!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1209 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.