Barre de chargement problème sour I.E. pas sous fireFox

Résolu
cs_embalmer Messages postés 120 Date d'inscription mercredi 14 décembre 2005 Statut Membre Dernière intervention 10 décembre 2007 - 17 avril 2007 à 10:46
cs_monsieurD Messages postés 1 Date d'inscription dimanche 7 janvier 2007 Statut Membre Dernière intervention 28 juillet 2009 - 28 juil. 2009 à 12:36
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é
[Javascript:Insert_Emoticon('/imgs2/smile_blush.gif');

]
) :



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.

2 réponses

cs_embalmer Messages postés 120 Date d'inscription mercredi 14 décembre 2005 Statut Membre Dernière intervention 10 décembre 2007
4 mai 2007 à 10:27
Bon j'ai résolu mon (mes) problème(s), la différences entre les navigateurs provenait de la gestion du cache un peu différente. Quoi qu'il en soit si quelqu'un est interessé par un preloader incluant le chargement d'éléments BitmapData, qu'il me mail (embalmer@free.fr) pour avoir la source (même si le code est  désormais plus  léger que le gros pavé ci-dessus [Javascript:Insert_Emoticon('/imgs2/smile_approve.gif'); ]) .

++
3
cs_monsieurD Messages postés 1 Date d'inscription dimanche 7 janvier 2007 Statut Membre Dernière intervention 28 juillet 2009
28 juil. 2009 à 12:36
Bonjour Embalmer,

le sujet date, mais le problème reste d'actualité :
http://www.flashkod.com/forum/sujet-BARRE-CHARGEMENT-PROBLEME-SOUR-PAS-SOUS-FIREFOX_923512.aspx

Je me suis rendu compte d'un problème similaire récemment sur un de mes developements AS2.
Ce n'est pas pour un preloader, mais pour les metadonnées que l'on peut récupérer au onLoadInit.

En effet, je charge une image avec un loader , et un ecouteur, et au onLoadInit je récupère ses dimensions pour la placer.
ça fait des années que je fais ça. ça a toujours fonctionné, mais sur IE6, quand le cache n'est pas vidé, ces métadonnées sont fausses.
Il me donne systématiquement une largeur de 0 quand je recharge la page.

et comme tu dis avoir trouvé la raison de ton bug et que c'est lié à la gestion du cache des navigateurs, je me dis, que le problème doit être similaire, non?

Qu'a tu trouvé comme solution pour contourner ce soucis ?

D'avance merci pour ton aide.
0
Rejoignez-nous