clay111
Messages postés13Date d'inscriptionmardi 2 juin 2009StatutMembreDernière intervention18 juin 2009
-
2 juin 2009 à 16:33
webcrea92
Messages postés88Date d'inscriptionmardi 17 mai 2005StatutMembreDernière intervention 1 novembre 2009
-
8 juin 2009 à 17:07
Bonjours à tous!
Je vais essayer de vous exposer mon problème le plus clairement possible!
Je suis charger pour mon stage d'élaborer un site internet, j'ai choisi de le faire entièrement en flash (site vitrine), je code en as3!
J'ai un fichier fla (et donc swf) qui me sert de page d'accueil avec des boutons qui chargent chacun un autre fichier swf correspondant aux différentes rubriques de mon site.
J'ai déjà codé un Preloader pour mon fichier d'accueil jusque là pas de problème, seulement comment mettre en place un Preloader lorsque j'appel un autre fichier swf à partir de l'accueil?
J'ai réfléchi à plusieurs possibilité et en cherchant sur internet je n'ai pas trouver de réponse me concernant mais si quelqu'un pouvez m'éclairer ça serait gentil!
Faut-il utiliser le même que celui du début? (je ne pense pas)
Faut-il mettre en place le code à l'endroit où j'ai mis le code pour charger le fichier swf?
Ou bien faut-il mettre en place le Preloader dans le fichier swf qui est appelé? (j'ai essayé mais bizarement le Preloader mais autant de temps à apparaître que le fichier lui même, donc inutile ^^)
Voilà j'espère que quelqu'un sur ce forume sera capable de me répondre, merci d'avance!
Pour charger d'autre swf à partir d'un autre, il faut réutiliser, quand vous loader le swf les 2 écouteurs appelé par KillerScrollbar la première fois donc ce code :
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, chargement2);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, chargementTermine2);
Nommé les fonctions comme vous le voulez mais différamment à chaque fois et placez le code ci dessus juste après votre load qui doit ressembler à ça:
loader.load(url);
Si vous avez après un addchild de votre load, supprimez le, il faut le rajouter dans les 2 fonctions appelées qui doivent ressembler à ça:
//Cette fonction va afficher la barre de chargement
function chargement2(evt:ProgressEvent) {
if (btnHist == true ){
preLoad2.visible=true;
var charger:Number = evt.bytesLoaded / evt.bytesTotal;
var pourcentage:int = charger * 100;
preLoad2.txtLoad.text = pourcentage+" %";
preLoad2.barreLoad.scaleX = charger;
preLoad2.txtLoad.x = preLoad2.barreLoad.x + preLoad2.barreLoad.width + 10;
}
}
//Une fois le chargement fini, la barre de chargement disparaît et la page aparaît
function chargementTermine2(evt:Event) {
if ( btnHist == true ){
loaderInfo.removeEventListener(ProgressEvent.PROGRESS, chargement2);
loaderInfo.removeEventListener(Event.COMPLETE, chargementTermine2);
preLoad2.visible=false;
gotoAndPlay("menuHist");
btnHist=false;
addChild(loader);
}
}
Voilà normalement c'est tout, je précise que pour chaque appel d'un nouvel swf il faut recopier ce code y compris les fonctions mais en changeant leur nom à chaque fois pour éviter les erreurs, c'est un peu contraignant mais ça marche ^^!
Vous n’avez pas trouvé la réponse que vous recherchez ?
clay111
Messages postés13Date d'inscriptionmardi 2 juin 2009StatutMembreDernière intervention18 juin 2009 8 juin 2009 à 16:33
Merci pour le lien mais malheureusement les fonctions "chargementTermine" comprennent un gotoAndPlay différent à chaque fois alors je ne pense pas pouvoir faire une classe avec une fonction générale pour tout mes swf, la fonction est similaire mais reste différente à chaque fois!
Je vais tout de même consulter ce tuto ça peut pas me faire de mal ^^, merci à toi!
webcrea92
Messages postés88Date d'inscriptionmardi 17 mai 2005StatutMembreDernière intervention 1 novembre 2009 8 juin 2009 à 17:07
Tu vas être surpris des capacités d'AS3
Si tu as un comportement différent pour chaque swf chargé, tu peux récupérer l'event de chargement terminé avec dispatchEvent dans ton fla principal(le conteneur menu) et le traiter au cas par cas ...