|
|
|||||
Регистрация: Feb 2008
Сообщений: 47
|
Slideshow with timer
Добрый день!
Есть набор картинок. Задача: сделать slideshow. Через определённый промежуток времени картинки сменяют друг друга, появляясь из непрозрачности. Пытаюсь реализовать это без использования timeline. Исходник явно не совершенен, и явно можно было сделать куда грамотнее, но у меня получилось так. проблема в том, что он не реагирует на строчки:... c = 4; //количество картинок count = 0; //счётчик для таймера A = 1; //переменные для объектов B = 2; // прячем лишние картинки (все кроме первой) for (i = 2; i < c; i++){ curClip = this["obj"+i]; curClip._alpha = 0; trace (curClip); } pause = function () { if (count == 200){ curClip1 = this["obj"+A]; //в этом месте не происходит ассоциация с нужной картинкой curClip2 = this["obj"+B]; //ну и здесь, естественно тоже самое... count = 0; curClip1._alpha = 0; curClip1.swapDepths(curClip2); trace (curClip1); if (A < c){ A ++; } else { A = 1; } if (B < c){ B ++; } else { B = 1; } } count ++; curClip1._alpha ++; //clearInterval(pausei); } pauseSwap = setInterval(pause, 5); Или может есть куда более правильный способ? Заранее спасибо! |
|
|||||
Модрон-ветеринар
|
Вот здесь вставьте трейс:
И посмотрите, что он выведет. Увидите, что this в данном случае не ссылается на нужный объект, в котором расположены картинки. Замените this на _root, если у вас все ваши ["obj"+A] и ["obj"+B] находятся прямо на нем. Либо замените на тот контейнер, где они находятся. Либо вот такое решение, более корректное и универсальное: pause = function (cont:Object) { if (count == 200){ curClip1 = cont["obj"+A]; curClip2 = cont["obj"+B]; .... } pauseSwap = setInterval(pause, 5, this); И замените имя функции, pause - служебное слово.
__________________
Идите первым! Последний раз редактировалось mooncar; 06.06.2011 в 13:49. |
|
|||||
Регистрация: Feb 2008
Сообщений: 47
|
Огромное спасибо! Именно так как надо.
Но тетерь стало очевидно, что .swapDepths работает не так как ожидалось. Слегка изменил код, вот что в итоге получилось: c = 3; count = 0; A = 1; B = 0; for (i = 1; i < c; i++){ curClip = this["obj"+i]; curClip._alpha = 0; //trace (this); } mPause = function (cont:Object) { if (count == 200){ //trace (this); curClipA = cont["obj"+A]; curClipB = cont["obj"+B]; count = 0; curClipA.swapDepths(curClipB); curClipA._alpha = 0; trace (curClipA); trace (curClipB); trace ("----------") if (A < c-1){ A ++; } else { A = 0; } if (B < c-1){ B ++; } else { B = 0; } } count ++; curClipA._alpha ++; //clearInterval(pausei); } pauseSwap = setInterval(mPause, 5, this); |
|
|||||
Модрон-ветеринар
|
Глубина - это дискретное состояние. Она принимает конкретное значение, определяющее расположение объекта по виртуальной Z-координате.
Честно говоря, сейчас подробно смотреть, как у вас и что меняется, не могу, вот вам инструмент, им воспользуйтесь для того, чтобы смотреть, где что находится в какой момент: чтобы посмотреть, на какую глубину у вас что встает.
__________________
Идите первым! Последний раз редактировалось mooncar; 06.06.2011 в 14:49. |
|
|||||
Регистрация: Feb 2008
Сообщений: 47
|
Спасибо за наводку.
В итоге сделал через |
Часовой пояс GMT +4, время: 15:59. |
|
« Предыдущая тема | Следующая тема » |
Теги |
slideshow , timer |
Опции темы | |
Опции просмотра | |
|
|