Просмотр полной версии : slide show => как?
solo19770701
14.10.2007, 19:21
Всем доброго времени суток. Есть вопрос. Решил я замутить что то типа слайд шоу на моей страничке, но как это полностью реализовать не моку понять. Направьте на путь истиный. Вообщем как я это вижу
startSlideShow_btn.on Press = function(){
viewer_mc.loadMovie("pic01")// это можно и через массив задать, но как это первый вопрос.
delay 4sec// вот здесь второй вопрос, как организовать задержку перед загруской второй и последующих какринок?
viewer_mc.loadMovie("pic02") // и так далее пока не дойдет до последней картинки,
потом все начинается с начала.
loop back// здесь все должно начинаться с начала.
};
Если у кого то есть более красивое решение, помогите,покажите. Спасибо.:)
Mnilionic
14.10.2007, 19:57
1. напишите функцию, которая загружает и показывает одну картинку.
2. Напишите функцию, которая будет вызывть первую через определённый интервал времени.
1. setTimeout(function, delay, arguments);
2. если должно начинаться с начала, так начинай, делай массив(array), если его текущий элемент равен общему кол-ву элементов(Array.length-1), то начинай сначала.
screamge
14.10.2007, 22:09
on Press
Выдаст ошибку.
solo19770701
18.10.2007, 07:39
Всем доброго времени суток. Наконец то я смог добраться до компа, что бы сотворить что то свое. Пытаюсь наконец то домучать slide show, вот к чему я пришел
for (var i = 1; i<=16; i++) {
var id = "";
if (i<10) {
id = "0"+String(i);
} else {
id = String(i);
}
var viewer = ["pic"+id+".jpg"];
viewer.url = "../pic/2d/pic"+id+".jpg";
Button_btn.onPress = function() {
setInterval(function() {viewer_mc.loadMovie(viewer.url);}, 2000);
}
};
картинки начинаются с pic01 до pic16. Все работает, кроме одного маленького ню нюанса :umnik2: , все время показывается одна и таже картинка а именно последняя из списка. Похоже что цикл пролетает почему то на последнюю картинку где и зацикливается, о как сказал.
Помогите пожалюйста. Как заставить проигрывать все картинки? Направте на путь истиный.:eek:
var i = 1
loadMCclip() = function(){
var id = "";
if (i<10) {
id = "0"+String(i);
} else {
id = String(i);
}
var viewer = ["pic"+id+".jpg"];
viewer.url = "../pic/2d/pic"+id+".jpg";
viewer_mc.loadMovie(viewer.url);
i++;
}
Button_btn.onPress = function() {
setInterval(loadMCclip(), 2000);
}
setInterval уже предполагает цикл, только зависимый от времени, поэтому никакие другие циклы, типа for не нужны.
var i = 1
loadMCclip() = function(){
var id = "";
if (i<10) {
id = "0"+String(i);// тут можно без явного приведения типов обойтись
} else {
id = String(i);
}
var viewer = ["pic"+id+".jpg"];
viewer.url = "../pic/2d/pic"+id+".jpg";
viewer_mc.loadMovie("../pic/2d/pic"+id+".jpg");
i++;
}
Button_btn.onPress = function() {
setInterval(loadMCclip(), 2000);
}
Красным лишее выделено
ps: Если картинка не успеет загрузиться, на что это будет похоже?
Надо использовать класс MovieClipLoader, чтобы проконтролировать процесс загрузки. Успела загрузиться за 2 секунды -- грузим новую, нет -- ждем пока загрузиться, после загрузки новую начинаем грузить.
solo19770701
19.10.2007, 08:26
Всем доброго времени суток. Рано, как оказалось я радовался. Все что ребята мне помогли с setInterval() работает. Но тут я столкнулся с другой проблеммой. Как все это остановить? Я пытался через clearInterval(). Но дело в том, что после применения clearInterval(), слайд шоу больше не запускается, т.к. setInterval() просто удалена из флеша. У кого нить есть какие нибудь идеи? Как можно организовать запуск, остановку/паузу, продолжить. Здесь можно лицезреть к чему я пришел.
stop();
var i=1;
loadMCclip = function(){
var id = "";
if (i<10) {
id = "0"+String(i);
} else {
id = String(i);
}
movie_mc.loadMovie("../pic/fashion/pic"+id+".jpg");
i++;
if(i==16){
i=1;
};
}
var slideShow = setInterval(loadMCclip, 2000);
Button_btn.onPress = function() {
slideShow;
}
stop_btn.onPress = function(){
clearInterval(slideShow);
};
Но как видно, все насмарку. Може можно как то через setTimeout()?:wacko:
stop();
var i=1;
loadMCclip = function(){
var id = "";
if (i<10) {
id = "0"+String(i);
} else {
id = String(i);
}
movie_mc.loadMovie("../pic/fashion/pic"+id+".jpg");
i++;
if(i==16){
i=1;
};
}
function slideShow(stopper){
if(stopper == 0){
var slideS = setInterval(loadMCclip, 2000);
} else if(stopper == 1){
clearInterval(slideS);
}
}
Button_btn.onPress = function() {
slideShow(0);
}
stop_btn.onPress = function(){
slideShow(1);
};
button_btn.onPress = function() {
slideShow = setInterval(loadMCclip, 2000);
}
stop_btn.onPress = function() {
clearInterval(slideShow);
};
function slideShow(stopper){
if(stopper == 0){
var slideS = setInterval(loadMCclip, 2000); // без var
} else if(stopper == 1){
clearInterval(slideS);
}
}
.....
solo19770701
19.10.2007, 23:55
to Ostgur & udaaff: хай. Спасибо за помощь. Смотрю, я поднадоел вам уже :quiet: Да я и сам себе надоел. О чем это я. Ах да. То что вы написали выше ведет к тому же, о чем я писал топиком выше. Оператор clearInterval() удаляет из памяти оператор setInterval(). Что бы продолжить проигрывание, нужно перезагружать страницу, что неприемлимо. Ostgur, то что ты написал в своем последнем топике у меня не работает :rolleyes: , даже после исправления ошибок, может я что то недосмотрел.
А теперь к чему я пришел. Я решил создать внешний мувик с ftp = 4frame per second. со скоростью 4 кадра в секунду. В него каждые 4 секунды гружу video_mc.loadMovie("***.jpg"); на последнем кадре ставлю лооп. Две кнопки на стоп и плай. В основном мувике создаю пустой клип и кнопку которая вызывает внешний клип. Все бы хороше, но основной клип имеет скорость 12 кадров в секунду, т.е мои 4 кадра в сек. во внешнем файле ни к чему не ведут. Опять как говорится "здрасте". Конечно не хотелось создавать всю эту внешнюю ерунду, но более удобного решения я пока не нашел. Если есть идеи, прошу как говрится к моему шалашу.:(
fps = 4frame per second не надо, просто сделай расстояние между кадрами, где подгружаешь побольше
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.