Вход

Просмотр полной версии : XML галлерея, разница отображения в IE и Мозиле


flashF1
13.07.2008, 18:28
Уважаемые коллеги, у меня возникла такая неразрешимая для меня проблема, может кто с таким сталкивался и сможет мне помочь.

Есть XML галерея, которая корректно работает в IE и абсолютно не корректно в Мозиле, а именно: путает последовательность картинок, некоторые бывает вообще пропускает, из-за этого пауза перед появлением следующего изображения длитсяв 2 раза дольше.

Файл можно скачать по следующей ссылке.
http://www.rapidshare.ru/728976

Спасибо всем кто откликнется.

MrPoma
13.07.2008, 19:54
Выложите файл на нормальную файлопомойку.

iNils
13.07.2008, 20:07
Выложите файл на нормальную файлопомойку.Файлы надо выкладывать на форуме, если файл не проходит через ограничения, значит надо разбить его на части, у автора архив в раре, значит он вполне может это сделать.

MrPoma
13.07.2008, 20:16
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);

}

flashF1
14.07.2008, 00:54
MrPoma, огромное тебе спасибо.
Всё вроде заработало корректно. Если можно, то нельзя ли коротко сообщить в чём была моя ошибка.
Ещё раз спасибо.

Wolsh
14.07.2008, 02:39
Насколько я понимаю, разница между браузерами может быть только в слэшах в адресе))))) Мозилла (и Опера кажется тоже) не понимает "\" и требует стандартный слэш "/".

MrPoma
14.07.2008, 03:43
Проблема была в цикле. Грузить надо последовательно.

Wolsh
14.07.2008, 09:43
А разница в браузерах? Расскажи что там происходит?

flashF1
20.07.2008, 16:19
Спасибо за информацию