25.11.2009, 11:23
|
Новичок на форуме
|
|
Регистрация: 25.11.2009
Сообщений: 3
|
|
Скрипт меняющихся картинок из внешнего js-файла
Есть скрипт меняющихся картинок.
<script>
function RandomNumber(d) {
return Math.floor((d+1)*Math.random());
}
var images = new Array("img/01.jpg","img/02.jpg","img/03.jpg");
function RandomGraphics() {
document.write("<img src='"+images[RandomNumber(images.length-1)]+"' align=center hspace=10></a>");
}
RandomGraphics();
</script>
Это прописывание почему-то не даёт эффекта и ничего соответственно не подгружается:
<script type="text/javascript" src="script.js"></script>
Как заставить этот скрипт работать из внешнего js-файла?
|
|
26.11.2009, 14:15
|
Новичок на форуме
|
|
Регистрация: 25.11.2009
Сообщений: 3
|
|
Люди, ну отпишитесь кто-нибудь? Помогите.
|
|
26.11.2009, 15:00
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Теги script во внешних файлах не нужны.
|
|
26.11.2009, 15:45
|
Новичок на форуме
|
|
Регистрация: 25.11.2009
Сообщений: 3
|
|
Kolyaj, нереальное спасибо. Работает!
|
|
21.12.2009, 21:40
|
Новичок на форуме
|
|
Регистрация: 21.12.2009
Сообщений: 5
|
|
У меня похожая тема. Объясните пожалуйста, где баг.
Код:
|
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
var images=new Array(new image(), new image(), new image(), new image());
images[0].src="0.gif"
images[1].src="1.gif"
images[2].src="2.gif"
images[3].src="3.gif"
function getRandom(min, max)
{
return Math.floor(Math.random() * (max - min + 1)) + min;
}
function rotate(){
d0=getRandom(0,3);
document.i0.src=document.images[d0].src
do {
d1=getRandom(0,3);
document.i1.src=document.images[d1].src
}while (d0==d1)
do {
d2=getRandom(0,3);
document.i2.src=document.images[d2].src
}while ((d0==d2)||(d1==d2))
do {
d3=getRandom(0,3);
document.i3.src=document.images[d3].src
}while ((d0==d3)||(d1==d3)||(d2==d3))
alert(d0+" "+d1+" "+d2+" "+d3);
}
</script>
<p><img name=i0 onclick="rotate()" src="0.gif"><img name=i1 onclick="rotate()" src="1.gif"></p>
<p><img name=i2 onclick="rotate()" src="2.gif"><img name=i3 onclick="rotate()" src="3.gif"></p>
<input type="button" value="rotate" onClick="rotate()">
</HEAD>
</HTML> |
Генератор работает исправно, но картинки меняются совершенно непредсказуемо. Мне необходимо, чтобы они случайно тасовались, но не повторялись.
Последний раз редактировалось GhostWolf, 22.12.2009 в 08:37.
Причина: очепяточка)
|
|
21.12.2009, 22:44
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от GhostWolf
|
Мне необходимо, чтобы они случайно тасовались, но не повторялись.
|
была такая тема. Ссылка
|
|
22.12.2009, 08:26
|
Новичок на форуме
|
|
Регистрация: 21.12.2009
Сообщений: 5
|
|
Фишка не в реализации алгоритма. Генератор случайных исправно выдает результаты (о чем сообщает блок Alert) Фишка в том, что картинки назначаются по непонятным мне закономерностям, часто игнорируя результат рандома.
В этом можно убедится, если запустить страницу с 4я разными картинками.
Единственная закономерность, которую я обнаружил при работе лишь с одной картинкой: она меняется на любую, исключая ту, что была в начале. Замена имени, а так же ввод дополнительных картинок к результату не приводят, либо скрипт и вовсе отказывается работать.
Просьба: человек, разбирающийся в JS, найдите баг, пожалуйста. Мне еще туеву хучу лаб делать, а осталась неделя =)
|
|
22.12.2009, 19:31
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
просто ппц лентяи вы все аж помогать не хочется.
function rotate(){
var a=[],i;
for(i=0;i<4;i++) {
a.push(images.splice(Math.rand()*images.length,1));
document['i'+i].src=a[i].src;
}
images = a;
}
|
|
22.12.2009, 22:35
|
Новичок на форуме
|
|
Регистрация: 21.12.2009
Сообщений: 5
|
|
PeaceCoder, зря вы про лень. Я честно старался два вечера. Ну не знаю я JS (справочник смотрел, но во времени я ограничен и начинать с hello world и т.д. уже поздно) и отладчика к нему нема. В этом плане в ассемблере и то приятней писать.
Спасибо за строчку
document['i'+i].src=a[i].src;
Я так понял, по логике, частным ее случаем будет
document[i2].src="0.gif"
И этот случай должен работать по-любому. Просто у меня опять ничего не работает Может руки кривые. Вы не ругайтесь, я не волшебник, я только учусь. У нас препод на любой вопрос отвечает: там все написано. Вот и пляши как хочешь
|
|
22.12.2009, 22:45
|
|
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от GhostWolf
|
Я так понял, по логике, частным ее случаем будет
|
частным случаем будет document.i N.src = a[ N].src
Последний раз редактировалось PeaceCoder, 22.12.2009 в 22:50.
|
|
|
|