Preloading reste bloqué sous IE et FF3

way2web Messages postés 65 Date d'inscription jeudi 17 mars 2011 Statut Membre Dernière intervention 17 mars 2011 - 8 juil. 2008 à 17:23
Zambee Messages postés 2 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 3 septembre 2008 - 3 sept. 2008 à 14:13
Bonjour,

J'ai un problème avec le chargement d'un swf, sous Firefox 2 aucun problème mais sous IE7 lorsqu'on passe de page en page, il arrive que le preloader se bloque à 100% et refuse de continuer à lire l'animation.

En gros je charge l'animation en frame1, à 100% l'animation commence à se lire, en frame2 je teste si un paramètre a été envoyé via l'url et je navigue dans l'animation en fonction de ce paramètre ou de son absence...

Est-ce que ça vient de mon script ou bien du swfobject dans ma page html, ce que je comprends pas c'est que sous FF2 ça fonctionne nickel  :?

Je vous montre mon code actionscript

Frame1

[as]
stop();
var p:String;
var flashvars:Object = this.loaderInfo.parameters;

var preloader_mc:Preloader= new Preloader();
preloader_mc.x=(stage.stageWidth-preloader_mc.width)/2;
preloader_mc.y=(stage.stageHeight-preloader_mc.height)/2;
addChild(preloader_mc);
//add the listener for load progress, hooked into the LoaderInfo object of the main swf.
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS,checkLoadProgress);

//Load progress handler
function checkLoadProgress(event:ProgressEvent):void
{
    var progressPercentComplete:int=(event.bytesLoaded / event.bytesTotal)*100;
    //output a percentage text...
    preloader_mc.loadDynamicText.text= String(progressPercentComplete+ " %");
    trace(progressPercentComplete);
    //loadPercent.text = "LOADING... "+String(Math.floor(progressPercentComplete)) + " %";
    if (progressPercentComplete ==100)
    {
        //do what needs to be done when your file has loaded
        //remove the progress listener
        this.loaderInfo.removeEventListener(ProgressEvent.PROGRESS,checkLoadProgress);
        removeChild(preloader_mc);
        play();
    }
}
/as

Frame 2

[as]
var navData:XML;
var arrayLinks:Array = new Array();
var loader:URLLoader = new URLLoader();
var myRequest:URLRequest;
var formatLink:TextFormat = new TextFormat();
//

//
loader.addEventListener(Event.COMPLETE, onComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
loader.load(new URLRequest("links.xml"));
function onComplete(evt:Event):void
{
    try
    {
        navData=new XML(evt.target.data);
        //trace(navData);
        loader.removeEventListener(Event.COMPLETE, onComplete);
        loader.removeEventListener(IOErrorEvent.IO_ERROR, onIOError);
        var listLinks:XMLList =navData.link.url;
        //trace("the XML file contains "+listLinks.length()+" links");
        for (var i:int=0; i<listLinks.length(); i++)
        {
            //trace(listLinks[i]);
            arrayLinks.push(listLinks[i]);
        }
    }
    catch (err:Error)
    {
        trace("Could not parse loaded content as XML:\n"+err.message);
    }
}

function onIOError(evt:IOErrorEvent):void
{
    trace("An error occured when attempting to load the XML.\n" + evt.text);
}

function urlHandler(evt:MouseEvent):void
{
    trace(evt.target.name);
    trace(evt.target.name.length+" evt.target.name.length");
    var index:int;
    if (evt.target.name.length<=5)
    {
        index=evt.target.name.substring(evt.target.name.length-1,evt.target.name.length);
    }
    else
    {
        index=evt.target.name.substring(evt.target.name.length-2,evt.target.name.length);
    }
    trace("index is : "+index);
    trace(arrayLinks[index]);
    myRequest= new URLRequest(arrayLinks[index]);
    trace("myRequest is : "+myRequest);
    navigateToURL(myRequest,"_blank");
}

for(p in flashvars)
{
   trace(p+"->"+flashvars[p]+"\n");
}
if(flashvars[p]!= null)
{
    gotoAndPlay(flashvars[p]);
}
else
{
        gotoAndPlay("page2back");

}
/as

Je vous donne l'URL du site afin que vous puissiez voir le problème en direct...
http://62.213.240.136/miele/accessoires/nl/index.html

Merci d'avance pour votre aide !!

2 réponses

way2web Messages postés 65 Date d'inscription jeudi 17 mars 2011 Statut Membre Dernière intervention 17 mars 2011
9 juil. 2008 à 20:25
J'ai finalement trouvé la source du problème; il s'agissait du script de preloading qui buggait sous IE, en fait la condition si ma variable de progression du téléchargement == 100 n'était pas correctement interprétée sous IE et donc le play() ne se lançait pas, j'ai adapté le script en conséquence et désormais plus aucun bug !

Merci pour votre aide
0
Zambee Messages postés 2 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 3 septembre 2008
3 sept. 2008 à 14:13
Salut,

Peux tu détaillé le "j'ai adapté le script en conséquence" stp ?
Qu'est ce qui était mal interprété et par quoi l'as tu remplacé ?

Merci d'avance

Zambee
0
Rejoignez-nous