Bonjour,
Voilà je vous explique mon problème, j'ai crée une
animation débutant par une barre de chargement. En plus de ce qui se trouve à
la racine, je charge des images externes (5 en tout), je les stocke dans un
objet BitmapData pour les réutiliser ensuite de manière aléatoire dans l'animation.
Mon gros problème est que ma barre de chargement fonctionne sous Firefox mais sous
I.E. Le pourcentage de chargement m'affiche NaN (et pour débuguer, merci bien.).
Voici mon code à l'image1 (peut être pas très clair pour tous,
désolé
) :
stop();
for (j=1; j<=5; j++) {
_level0["imgBytesLoaded"+j] = 0;
_level0["poidsTemp"+j] = 0;
}
var imgTotalBytes:Number = 0;
var imgTotalCurrentLoad:Number = 0;
var totalImgOk = false;
var testStart = 0;
var testInit = 0;
// Chargement des images et attribution aux clips concernés
import flash.display.BitmapData;
//Création des clips temporaires recevants les images
_level0.createEmptyMovieClip("tempMC1", 1, {_alpha:0});
_level0.createEmptyMovieClip("tempMC2", 2, {_alpha:0});
_level0.createEmptyMovieClip("tempMC3", 3, {_alpha:0});
_level0.createEmptyMovieClip("tempMC4", 4, {_alpha:0});
_level0.createEmptyMovieClip("tempMC5", 5, {_alpha:0});
// Création des loaders d'images et des écouteurs associés
var theLoader1:MovieClipLoader = new MovieClipLoader();
var theListener1:Object = new Object();
var theLoader2:MovieClipLoader = new MovieClipLoader();
var theListener2:Object = new Object();
var theLoader3:MovieClipLoader = new MovieClipLoader();
var theListener3:Object = new Object();
var theLoader4:MovieClipLoader = new MovieClipLoader();
var theListener4:Object = new Object();
var theLoader5:MovieClipLoader = new MovieClipLoader();
var theListener5:Object = new Object();
theLoader1.addListener(theListener1);
theLoader2.addListener(theListener2);
theLoader3.addListener(theListener3);
theLoader4.addListener(theListener4);
theLoader5.addListener(theListener5);
theListener1.onLoadInit = function(mc1:MovieClip) {
bitmapPic1 = new BitmapData(_level0.tempMC1._width, _level0.tempMC1._height, true, 0xffffff);
bitmapPic1.draw(mc1);
_level0.tempMC1.removeMovieClip();
trace("suppression du clip Temp1");
_level0.testInit++;
};
theListener2.onLoadInit = function(mc2:MovieClip) {
bitmapPic2 = new BitmapData(_level0.tempMC2._width, _level0.tempMC2._height, true, 0xffffff);
bitmapPic2.draw(mc2);
_level0.tempMC2.removeMovieClip();
_level0.fond.attachBitmap(bitmapPic2, 1);
trace("suppression du clip Temp2");
_level0.testInit++;
};
theListener3.onLoadInit = function(mc3:MovieClip) {
bitmapPic3 = new BitmapData(_level0.tempMC3._width, _level0.tempMC3._height, true, 0xffffff);
bitmapPic3.draw(mc3);
_level0.tempMC3.removeMovieClip();
trace("suppression du clip Temp3");
_level0.testInit++;
};
theListener4.onLoadInit = function(mc4:MovieClip) {
bitmapPic4 = new BitmapData(_level0.tempMC4._width, _level0.tempMC4._height, true, 0xffffff);
bitmapPic4.draw(mc4);
_level0.tempMC4.removeMovieClip();
trace("suppression du clip Temp4");
_level0.testInit++;
};
theListener5.onLoadInit = function(mc5:MovieClip) {
bitmapPic5 = new BitmapData(_level0.tempMC5._width, _level0.tempMC5._height, true, 0xffffff);
bitmapPic5.draw(mc5);
_level0.tempMC5.removeMovieClip();
trace("suppression du clip Temp5");
_level0.testInit++;
};
// fonction pour détecter le poids des images et l'ajouter à la barre de chargement
theListener1.onLoadStart = function(mc1:MovieClip) {
_level0.testStart++;
};
theListener2.onLoadStart = function(mc2:MovieClip) {
_level0.testStart++;
};
theListener3.onLoadStart = function(mc3:MovieClip) {
_level0.testStart++;
};
theListener4.onLoadStart = function(mc4:MovieClip) {
_level0.testStart++;
};
theListener5.onLoadStart = function(mc5:MovieClip) {
_level0.testStart++;
};
// fonction à appeller à partir lorsque l'image doit être chargée
mC1load = function (mc1:MovieClip) {
if(_level0._currentframe < 10) {
_level0.crochet1.attachBitmap(bitmapPic1, 103);
_level0.crochet2.attachBitmap(bitmapPic1, 104);
}
else {
_level0.section.crochet1.attachBitmap(bitmapPic1, 103);
_level0.section.crochet2.attachBitmap(bitmapPic1, 104);
}
};
mC2load = function (mc2:MovieClip) {
_level0.fond.attachBitmap(bitmapPic2, 1);
};
mC3load = function (mc3:MovieClip) {
_level0.section.crochet1.attachBitmap(bitmapPic3, 105);
_level0.section.crochet2.attachBitmap(bitmapPic3, 106);
};
mC4load = function (mc4:MovieClip) {
_level0.section.crochet_gauche.crochet_textes.attachBitmap(bitmapPic4, 107);
};
mC5load = function (mc5:MovieClip) {
_level0.section.crochet_bas.crochet_navigation.attachBitmap(bitmapPic5, 108);
};
theLoader1.loadClip("pictures/image1.png", _level0.tempMC1);
theLoader2.loadClip("pictures/fond.png", _level0.tempMC2);
theLoader3.loadClip("pictures/image2.png", _level0.tempMC3);
theLoader4.loadClip("pictures/image3.png", _level0.tempMC4);
theLoader5.loadClip("pictures/image4.png", _level0.tempMC5);
//////////////////////////
// Barre de chargement //
/////////////////////////
var barWidth:Number = 200;
var barHeight:Number = 6;
this.createEmptyMovieClip("pBar_mc", 9999);
var bar:MovieClip = pBar_mc.createEmptyMovieClip("bar_mc", 10);
bar.beginFill(0xcccccc, 100);
bar.moveTo(0, 0);
bar.lineTo(barWidth, 0);
bar.lineTo(barWidth, barHeight);
bar.lineTo(0, barHeight);
bar.lineTo(0, 0);
bar.endFill();
bar._xscale = 0;
var stroke:MovieClip = pBar_mc.createEmptyMovieClip("stroke_mc", 20);
stroke.lineStyle(0, 0x000000);
stroke.moveTo(0, 0);
stroke.lineTo(barWidth, 0);
stroke.lineTo(barWidth, barHeight);
stroke.lineTo(0, barHeight);
stroke.lineTo(0, 0);
pBar_mc.createTextField("label_txt", 30, 0, barHeight, 100, 21);
pBar_mc.label_txt.autoSize = "left";
pBar_mc.label_txt.selectable = false;
pBar_mc.label_txt.font = "Arial";
pBar_mc.label_txt.textColor = 0x666666;
pBar_mc.label_txt._x = stroke_mc._x+(stroke_mc._width/2)-(pBar_mc.label_txt._width/2);
pBar_mc._x = (Stage.width-pBar_mc._width)/2;
pBar_mc._y = (Stage.height-pBar_mc._height)/2;
var xmlContent:XML = new XML();
xmlContent.ignoreWhite = true;
xmlContent.load("xml/easy_text.xml");
// Progression de la barre de chargement.
onEnterFrame = function () {
if (_level0.testStart == 5) {
for (i=1; i<=5; i++) {
_level0["progress"+i] = _level0["theLoader"+i].getProgress(_level0["tempMC"+i]);
_level0["imgBytesLoaded"+i] = _level0["progress"+i].bytesLoaded;
if (_level0["imgBytesLoaded"+i] != undefined) {
_level0.imgTotalCurrentLoad = _level0.imgTotalCurrentLoad+(_level0["imgBytesLoaded"+i]-_level0["poidsTemp"+i]);
trace("soit "+(_level0["imgBytesLoaded"+i]-_level0["poidsTemp"+i])+" bytes de + qu'au tour d'avant");
}
else {
_level0["imgBytesLoaded"+i] = 0;
}
_level0["poidsTemp"+i] = _level0["imgBytesLoaded"+i];
if (_level0.totalImgOk == false) {
_level0.imgTotalBytes = _level0.imgTotalBytes+_level0["progress"+i].bytesTotal;
if (i == 5) {
_level0.totalImgOk = true;
}
}
}
_level0.alLoaded = _level0.imgTotalCurrentLoad+_root.getBytesLoaded();
_level0.totalToLoad = _level0.imgTotalBytes+_root.getBytesTotal();
_level0.pourcent = Math.floor(((_level0.alLoaded/_level0.totalToLoad)*100));
pBar_mc.label_txt.text = "Loading "+_level0.pourcent+" %";
_level0.barre = Math.floor(pourcent);
_level0.barre_chargement.gotoAndStop(Math.floor(pourcent));
bar._xscale = pourcent;
if (_level0.pourcent>=100) {
delete this.onEnterFrame;
bar._xscale = _level0.pourcent;
trace("fichier xml chargé : "+_level0.xmlContent.loaded);
_level0.gotoAndPlay(2);
}
}
};
Merci de m'aider car là je patauge.