PDA

Просмотр полной версии : Продолжение слайдшоу и снова Непонятки :((


slavijan
31.05.2006, 14:18
На сцене есть контейнер мувиков container_mc, в нем есть мувики clip1, clip2, clip3 и т.д. у всех у них прозрачность = 0. Теперь хотим запустить цикл в котором они будут по очереди показываться с определенным интервалом, вот примерный код но он не так работает :((.

var loader = new LoadVars();
loader.load("images.txt");

var container_mc = this.createEmptyMovieClip("container",0);

var pathArray = new Array();
loader.onData = function(str)
{
pathArray = str.split("|");
num = pathArray.length;
delete loader;
for(i = 0; i < num; i++)
{
container_mc.createEmptyMovieClip("clip"+i,i);
container_mc["clip"+i].loadMovie(pathArray[i]);
container_mc["clip"+i]._alpha = 0;
container_mc["clip"+i]._x += 95*i;
}

for(i = 0; i < num; i++)
{
setInterval(showImage, 1000, i);
}
}

//Show Image
function showImage(i)
{
container_mc["clip"+i]._alpha = 100;
}

Но этот код ждет 1 секунду и показывает сразу все картинки на сцене

slavijan
31.05.2006, 15:06
Посмотрите в чем дело, часа 2 уже убил ничего не пойму :((

Bkmz
31.05.2006, 16:11
попробуй заменить второй счетчик i на что-то другое - неплохое шаманство с бубном+)
картинки должны показываться по очереди, или появляться одна за другой? если показваться - то кроме прозрачности клипа, в функции надо изменять прозрачность предыдущего(скрывать)

slavijan
31.05.2006, 16:34
да картинки должны показываться по очереди (ну и потом снова по кругу). Шаманство со вторым циклом(заменил на j) не помогает.

Bkmz
31.05.2006, 16:44
хм, а может показ изображений сделать в другом событии, отдельно от загрузки картинок? имхо логическое деление, будет удобнее.
//на правах смутной идеи

slavijan
31.05.2006, 16:51
если делать вне загрузки картинок, тогда массив с путями до картинок undefined :(( как этот массив можно вынести за пределы этой функции?

Bkmz
31.05.2006, 16:57
по идее - глобальные переменные в помощь
поделись исходником, попробую поковыряться там, а то наговорю щас всякого+)

slavijan
31.05.2006, 17:00
вот исходник:

Homo Sapiens
31.05.2006, 22:31
а чему ты удивляешься? Ты для каждой картинки поставил появление через 1 секунду. Секунда прошла и все сразу появились. Умножай интервал на i, кроме того сохраняй в массив id интервала и в функции очищай соответствующий интервал, чтобы не держать память.

slavijan
01.06.2006, 13:23
спасибо Homo Sapiens, теперь меняется с заданным промежутком, осталось все это дело зациклить :(( Но в такой постановке кода это по-моему не удастся :(( или все таки удастся?

Homo Sapiens
01.06.2006, 13:34
Попробуй в функции задать новый интервал продолжительностью количество картинок + 1 + номер картинки * 1 сек