Просмотр полной версии : XML галлерея, разница отображения в IE и Мозиле
Уважаемые коллеги, у меня возникла такая неразрешимая для меня проблема, может кто с таким сталкивался и сможет мне помочь.
Есть XML галерея, которая корректно работает в IE и абсолютно не корректно в Мозиле, а именно: путает последовательность картинок, некоторые бывает вообще пропускает, из-за этого пауза перед появлением следующего изображения длитсяв 2 раза дольше.
Файл можно скачать по следующей ссылке.
http://www.rapidshare.ru/728976
Спасибо всем кто откликнется.
Выложите файл на нормальную файлопомойку.
Выложите файл на нормальную файлопомойку.Файлы надо выкладывать на форуме, если файл не проходит через ограничения, значит надо разбить его на части, у автора архив в раре, значит он вполне может это сделать.
import mx.transitions.Tween;
import mx.transitions.easing.*;
var myShowXML = new XML();
myShowXML.ignoreWhite = true;
myShowXML.load("slideshow.xml");
var myWidth;
var myHeight;
var mySpeed;
var myImages;
var myImagesNo;
var myShowInt;
var currentImageLoad = 0;
var target_mc = 0;
var myMCL = new MovieClipLoader();
myMCL.addListener(this);
var myClipsArray = [];
myShowXML.onLoad = function() {
myWidth = Number(myShowXML.firstChild.attributes.width);
myHeight = Number(myShowXML.firstChild.attributes.height);
mySpeed = Number(myShowXML.firstChild.attributes.speed);
myImages = myShowXML.firstChild.childNodes;
myImagesNo = myImages.length;
createContainer();
callImages();
}
function createContainer(){
_root.createEmptyMovieClip("myContainer_mc",1);
myContainer_mc.lineStyle(0,0x000000,0);
myContainer_mc.lineTo(_root.myWidth,0);
myContainer_mc.lineTo(_root.myWidth,_root.myHeight);
myContainer_mc.lineTo(0,_root.myHeight);
myContainer_mc.lineTo(0,0);
myContainer_mc._x = (Stage.width-myContainer_mc._width)/2;
myContainer_mc._y = (Stage.height-myContainer_mc._height)/2;
}
function callImages(){
var temp_url = myImages[currentImageLoad].attributes.url;
var temp_mc = myContainer_mc.createEmptyMovieClip(currentImageLoad, myContainer_mc.getNextHighestDepth());
_root.myMCL.loadClip(temp_url,temp_mc);
}
/*onLoadStart = function(target){
_root.createTextField("myText_txt",_root.getNextHighestDepth(),0,0,100,20);
_root.myText_txt._x = (Stage.width-_root.myText_txt._width)/2;
_root.myText_txt._y = (Stage.height-_root.myText_txt._height)/2;
_root.myText_txt.autoSize = "center";
_root.myText_txt.text = "test";
}*/
/*onLoadProgress = function(target){
_root.myText_txt.text = "Loading.. "+_root.myClips_array.length+"/"+_root.myImagesNo+" Completed";
}*/
onLoadComplete = function(target){
myClipsArray.push(target);
target._alpha = 0;
currentImageLoad ++;
if (currentImageLoad == _root.myImagesNo){
_root.myText_txt._y = myContainer_mc._y + myContainer_mc._height;
_root.target_mc = -1;
moeSlide();
myShowInt = setInterval(moveSlide, (_root.mySpeed * 1000) + 1000);
}else{
callImages();
}
}
function moveSlide() {
var current_mc = myClipsArray[target_mc];
new Tween(current_mc, "_alpha", Strong.easeOut, 100, 0, 1, true);
target_mc++;
if (target_mc >= myImagesNo) {
target_mc = 0;
}
//_root.myText_txt.text = _root.myImages[target_mc].attributes.title;
var next_mc = myClipsArray[target_mc];
new Tween(next_mc, "_alpha", Strong.easeOut, 0, 100, 1, true);
}
MrPoma, огромное тебе спасибо.
Всё вроде заработало корректно. Если можно, то нельзя ли коротко сообщить в чём была моя ошибка.
Ещё раз спасибо.
Насколько я понимаю, разница между браузерами может быть только в слэшах в адресе))))) Мозилла (и Опера кажется тоже) не понимает "\" и требует стандартный слэш "/".
Проблема была в цикле. Грузить надо последовательно.
А разница в браузерах? Расскажи что там происходит?
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.