Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2012, 01:51   #1
glazik
Пользователь
 
Аватар для glazik
 
Регистрация: 03.03.2011
Сообщений: 80
По умолчанию Анимация на JS

Имеется скрипт, меняющий картинки по порядку.
Код HTML:
<head>
<script language="JavaScript">
i=0;
img_a=new Array();   
img_a[0]=new Image();
img_a[1]=new Image();
img_a[2]=new Image();
img_a[3]=new Image();
img_a[4]=new Image();
img_a[5]=new Image();
img_a[6]=new Image();
img_a[0].src="1.png";   
img_a[1].src="2.png";  
img_a[2].src="3.png";  
img_a[3].src="4.png";
img_a[4].src="5.png";
img_a[5].src="6.png";
img_a[5].src="7.png";
function img_b()                          
{
document.images[1].src=img_a[i].src;
i++;
if(i>5) i=0;
setTimeout("img_b()", 1000);                             
}
</SCRIPT>
</head>
<body bgcolor="#ffffff" onLoad=img_b()>
<img src="12.png">
<img src="2.png">
</body>

Подскажите, плиз, как после прохода 1 круга сделать остановку на последней картинке?
glazik вне форума Ответить с цитированием
Старый 24.09.2012, 12:11   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

O_o
Со времен IE4 не видел подобного кода...
Закомментируйте обнуление итератора и сбросьте выполнение функции:
Код:
i=0;
img_a=new Array();   
img_a[0]=new Image();
img_a[1]=new Image();
img_a[2]=new Image();
img_a[3]=new Image();
img_a[4]=new Image();
img_a[5]=new Image();
img_a[6]=new Image();
img_a[0].src="1.png";   
img_a[1].src="2.png";  
img_a[2].src="3.png";  
img_a[3].src="4.png";
img_a[4].src="5.png";
img_a[5].src="6.png";
img_a[5].src="7.png";
function img_b()                          
{
document.images[1].src=img_a[i].src;
i++;
if(i>5) return false;//i=0;
setTimeout("img_b()", 1000);                             
}
Зы, какой код, такие и правки ( >_>)
Alar, верни репу!

Последний раз редактировалось Naive; 24.09.2012 в 12:13.
Naive вне форума Ответить с цитированием
Старый 24.09.2012, 22:55   #3
glazik
Пользователь
 
Аватар для glazik
 
Регистрация: 03.03.2011
Сообщений: 80
По умолчанию

Прошу прощения за каламбур, но я не понял(((( и появился второй вопрос: как сделать задержку после первого кадра? Если не сложно поясните плиз.
glazik вне форума Ответить с цитированием
Старый 25.09.2012, 01:21   #4
Free_den
Пользователь
 
Регистрация: 08.03.2012
Сообщений: 36
По умолчанию

Цитата:
как сделать задержку после первого кадра
для этого задаете переменную для интервала "с запасом", потом после смены первой картинки задаете ей новое значение:
Цитата:
i=0;
img_a=new Array();
img_a[0]=new Image();
img_a[1]=new Image();
img_a[2]=new Image();
img_a[3]=new Image();
img_a[4]=new Image();
img_a[5]=new Image();
img_a[6]=new Image();
img_a[0].src="1.png";
img_a[1].src="2.png";
img_a[2].src="3.png";
img_a[3].src="4.png";
img_a[4].src="5.png";
img_a[5].src="6.png";
img_a[6].src="7.png";

var interval = 2000;//здесь указать длинный интервал
function img_b()
{
document.images[1].src=img_a[i].src;
i++;
if (i>1) interval = 500;//здесь укоротить его
if(i>4) return false;//i=0;
setTimeout("img_b()", interval);
}
Все гениальное - просто...

Последний раз редактировалось Free_den; 25.09.2012 в 01:26. Причина: *
Free_den вне форума Ответить с цитированием
Старый 25.09.2012, 01:41   #5
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

А что мешало написать так:
document.images[1].src = (++i).toString() + ".png";
?
Arigato на форуме Ответить с цитированием
Старый 25.09.2012, 02:01   #6
glazik
Пользователь
 
Аватар для glazik
 
Регистрация: 03.03.2011
Сообщений: 80
По умолчанию

Free_den
Спасибо, отлично все работает)))) клААсс, а как запустить на повтор, а то он на последнем кадре останавливается?(
glazik вне форума Ответить с цитированием
Старый 25.09.2012, 02:09   #7
Free_den
Пользователь
 
Регистрация: 08.03.2012
Сообщений: 36
По умолчанию

Цитата:
А что мешало написать так:
document.images[1].src = (++i).toString() + ".png";
)))
Не, я бы лично массивы только массивы подправила:
Цитата:
img_a=new Array();
for (var j = 0; j < 7; j++) {
img_a[j] = new Image();
img_a[j].src = j+'.jpg';
}
И вот это:
Цитата:
document.images[1].src
на getElementById вывела, а остальное "на любителя " конечно, но в принципе пойдет.
Все гениальное - просто...
Free_den вне форума Ответить с цитированием
Старый 25.09.2012, 02:16   #8
Free_den
Пользователь
 
Регистрация: 08.03.2012
Сообщений: 36
По умолчанию

Цитата:
а то он на последнем кадре останавливается?(
А разве вы не этого хотели говоря
Цитата:
как после прохода 1 круга сделать остановку на последней картинке?
. Вместо строки if(i>5) return false;//i=0; делайте опять
Цитата:
if(i>5) i=0;
Все гениальное - просто...
Free_den вне форума Ответить с цитированием
Старый 25.09.2012, 10:31   #9
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Цитата:
Сообщение от glazik Посмотреть сообщение
Подскажите, плиз, как после прохода 1 круга сделать остановку на последней картинке?
Цитата:
Сообщение от glazik Посмотреть сообщение
а как запустить на повтор, а то он на последнем кадре останавливается?(
Arigato на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++: анимация stinger2012 Win Api 2 18.05.2012 17:07
анимация ualikhan Помощь студентам 0 06.06.2011 21:16
Анимация Ya luo si la fu Помощь студентам 1 27.03.2010 17:42
Анимация nimf Общие вопросы Delphi 6 07.08.2009 10:21