![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2010
Сообщений: 6
|
Есть слайдшоу, которое нормально работает на локальном компе, но упорно не хочет запускаться c первого раза на сайте, открываешь страницу - оно не запускается, если обновить (F5) все работает
Путь к картинкам берется из XML-файла, последовательность картинок случайная, только всегда в начале должна запускаться первая картинка Прошу Вашей помощи Архив с исходником прилагается (CS4, Actionscript 1.0/2.0) |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 81
|
проверял на хостинге, все работает, какой браузер, как вставляете?
|
|
|||||
|
Регистрация: Feb 2008
Сообщений: 560
|
Открыть не смог, в самом файле увидел только код загрузки XML, кода показа картинок не увидел. Быть может код показа запускается раньше чем срабатывает onLoad, когда массив еще пуст. По крайней мере симптомы очень похожи на это.
|
|
|||||
|
Регистрация: May 2010
Сообщений: 6
|
IE, Firefox, Opera
вставка с помощью SwfObject Цитата:
var intervalId:Number;
var showTime:Number = 5000; //Время показа слайда
var speed:Number = 5; //Скорость показа
container._alpha = 0;
var mcLoader:MovieClipLoader = new MovieClipLoader();
var loadListener:Object = new Object();
var i:Number = 0; //Счетчик
function slideShow() {
mcLoader.loadClip(images[i].path,container);//Загружаем фото
loadListener.onLoadInit = function() {
fade(container);//Плавный показ
i = random(photoCount);
if (i == 0) {
i = 1;
}
};
}
intervalId = setInterval(this, "slideShow", showTime);//Запускаем непрерывный показ
mcLoader.addListener(loadListener);
slideShow(i);//Первый запуск
function fade(mc) {
container._alpha = 0;
title_mc._alpha = 0;
mc.onEnterFrame = function() {
this._alpha += speed;
title_mc._alpha += speed;
if (this._alpha>=100) {
delete this.onEnterFrame;
}
};
}
stop();
Последний раз редактировалось se7h; 23.05.2010 в 02:46. |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 560
|
Если я правильно понял у вас происходит следующее:
1) запрос на сервер для получения XML файла 2) запуск слайдшоу, не дожидаясь события xml onLoad, i = 0 3) как результат в первый раз (когда xml не в кеше браузера) запуск пустого слайдшоу slideShow(i) нужно делать после того как обработали xml в событии onLoad |
|
|||||
|
Регистрация: May 2010
Сообщений: 6
|
Цитата:
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Загрузка не моментальна.
|
|
|||||
|
Регистрация: Feb 2008
Сообщений: 560
|
В этом и проблема - без stop() в предыдущих кадрах пятый кадр может начать воспроизводиться до того как загрузятся XML данные. Сделайте stop() в первом кадре, где грузите XML, а в обработчике onLoad в конце процедуры сделайте gotoAndStop(5), либо совместите все в одном кадре, и в конце процедуры onLoad сделайте slideShow(i).
Последний раз редактировалось rainbowrussia; 24.05.2010 в 03:24. |
|
|||||
|
Регистрация: May 2010
Сообщений: 6
|
Цитата:
trace проверил нормально ли отрабатывает xml - здесь все ок, массив заполняется как надо думаю здесь дело в картинках, которые напросто не успевают загрузиться как можно реализовать предварительную подгрузку изображений? Последний раз редактировалось se7h; 24.05.2010 в 14:14. |
|
|||||
|
Регистрация: Feb 2008
Сообщений: 560
|
У вас и так очередное изображение предварительно загружается, думаю дело не в этом. Выложите пожалуйста весь код в каждом кадре, который получился после применения совета "Сделайте stop() в первом кадре, где грузите XML, а в обработчике onLoad в конце процедуры сделайте gotoAndStop(5)". И дайте ссылку в инете, по которой у вас со второго раза только все срабатывает.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 12:20. |
|
|
« Предыдущая тема | Следующая тема » |
|
|