Comme je l'ai indiqué dans le titre du message, j'ai un souci avec le rechargement de la page flash de mon site sur certains ordis.
J'ai fort logiquement intégré mon swf dans une page html et, au lancement de la page, pas de problème, tout s'affiche correctement. Par contre, au rafraîchissement de la page, celle-ci se bloque sur la barre de chargement. Le seul moyen de contrer ça est de lui indiquer "lire" avec le clic droit.
Je suppose qu'il doit y avoir une solution miracle pour contrer ça, non ? Un écouteur "ENTER_FRAME" par exemple ?
J'ai eu ce problème avec :
ie 9 (comme d'hab) et firefox (moins habituel) sur
un xp et un os-x leopard
Pour le fichier il y a :
Frame 1 : barre de chargement
stop();
function progressListener(e:ProgressEvent):void {
var charger:Number = e.bytesLoaded / e.bytesTotal;
var pourcent:int = charger* 100;
loading_Bar.scaleX = charger;
}
function completeListener(e:Event):void {
loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progressListener);
loaderInfo.removeEventListener(Event.COMPLETE, completeListener);
gotoAndPlay("titre");
}
loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressListener);
loaderInfo.addEventListener(Event.COMPLETE, completeListener);
Frame 2: quelques infos + chargement d'une image externe
var aCharger:Loader;
aCharger= new Loader() ;
var laVignette:PhotoClp=new PhotoClp();
aCharger.load(new URLRequest("image1.JPG"));
laVignette.x = 0;
laVignette.y = 157;
laVignette.width = stage.width*0.06;
laVignette.height = stage.height*0.06;
laVignette.addChild(aCharger);
addChild(laVignette);
trace(laVignette.width, laVignette.height, laVignette.x, laVignette.y);
Frame 4 : Des liens externes précédé d'un stop(); par exemple :
facebook.addEventListener(MouseEvent.CLICK,goImage6);
function goImage6(event:MouseEvent){
getURLAS3("http://www.facebook.com/#!/group.php?gid=191448754530&ref=ts");
//etc et tout en bas
function getURLAS3(url, page="_self") {
navigateToURL(new URLRequest(url), '_self');
}
}
Rien de bien méchant a priori donc mais... ça bug !
à vrai dire je ne vois pas vraiment... J'ai eu le même genre de problème dans des pages (en HTML5) dans lesquelles j'avais intégré des swf en mode transparent -> une fois chargée les pages affichaient tout correctement, mais lorsque je rafraîchissais les pages mes swf devenaient invisibles. Ces problèmes survenaient exclusivement sur safari 4, en passant sur safari 5 ça a réglé le problème.
Donc je dirais que suivant l'intégration de ton swf -> mode window ou transparent, il faut regarder ce que ça donne.
Ensuite peut-être aussi mettre ta progressBar dans un autre swf -> tu charges le swf qui contient ta progressBar dans ta page HTML, et ensuite ce swf charge le swf qui contient ton animation.
Sinon si ce n'est pas le cas : intégrer ton swf dans ta page HTML avec SWFObject.
A plus ,
BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
ca viens de ton code, lorsque tu fais un F5 (refrech navigateur), selon le navigateur ou encore la version du player en jeu, l'evenement "complete" est mal propagé.
remplace dans ton code :
function completeListener(e:Event=null):void {
if (e) {
loaderInfo.removeEventListener(ProgressEvent.PROGRESS, progressListener);
loaderInfo.removeEventListener(Event.COMPLETE, completeListener);
}
gotoAndPlay("titre");
}
et tout en bas après l'ajout des écouteurs sur loaderInfo :
if (loaderInfo.bytesLoaded >= loaderInfo.bytesTotal) completeListener();
et ca devrait marcher ;)
++
Ben
Amalgam Production - Développement Web Flash PHP MySQL - Identité visuel et audiovisuel.
@BBFUNK01 : j'ai essayé les deux méthodes, rien à faire...
@_benjy : C'est une bonne idée de passer par là, le problème est que du coup j'ai une erreur "nombre d'arguments incorrect. 1 attendu". Il n'a pas l'air de comprendre ce sur quoi il faut qu'il travaille...
MDR, ben l'erreur "nb d'argument incorrect" vient du fait que tu n'as pas modifié la fonction "completeListener" comme je te l'ai indiqué
j'ai ajouté un "=null" à la suite de "e", l'argument d'entrée de ta fonction.
"param=value" en guise d'argument permet de donner une valeur par défaut à ton paramètre.
tu peux aisi appeler ta fonction par "maFonction(monArguement);" que par "maFonction();" vue que le paramètre est de venu facultatif, you see ;)
allé en le corrigeant tu verras que ca marche (ou sinon c'est une autre erreur ailleurs ...)
++
Ben
Amalgam Production - Développement Web Flash PHP MySQL - Identité visuel et audiovisuel.