Preload pour charger un swf depuis un autre

clay111 Messages postés 13 Date d'inscription mardi 2 juin 2009 Statut Membre Dernière intervention 18 juin 2009 - 2 juin 2009 à 16:33
webcrea92 Messages postés 88 Date d'inscription mardi 17 mai 2005 Statut Membre Derniè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!

7 réponses

clay111 Messages postés 13 Date d'inscription mardi 2 juin 2009 Statut Membre Dernière intervention 18 juin 2009
3 juin 2009 à 09:22
Personne ne peut me répondre?! J'ai réellement besoin d'aide ne serait-ce que pour savoir ou placer le préloader en question!
0
clay111 Messages postés 13 Date d'inscription mardi 2 juin 2009 Statut Membre Dernière intervention 18 juin 2009
3 juin 2009 à 10:56
ooook toujours personne n'as répondu ^^, bon c'est pas grave je me suis débrouillé tout seul, sur ceux topic clos!
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
3 juin 2009 à 13:42
Alors il faudrait que tu répondes toi-même à ta question, sachant que d'autres personnes risquent d'avoir le même problème que toi.

On pose des questions ici, mais on y réponds aussi.

Peg'
0
clay111 Messages postés 13 Date d'inscription mardi 2 juin 2009 Statut Membre Dernière intervention 18 juin 2009
8 juin 2009 à 10:58
Très juste, autant pour moi!
Et donc voici la solution,
Tout d'abord pour un preload au début j'ai utilisé le tuto dispo sur ce même site (très bon tuto) utilisant "KillerScrollbar"! Voivi le lien
http://www.flashkod.com/tutoriaux/CREER-SCROLLBAR-ACTIONSCRIPT_890.aspx

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 ^^!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
webcrea92 Messages postés 88 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 1 novembre 2009
8 juin 2009 à 15:57
Salut,

Peut-être qu'en mettant tout ça dans une classe bouton tu n'aurais pas tant de contraintes.

Tu as un excellent tutorial http://www.flashxpress.net/ressources-flash/pratique-de-lactionscript-3-chapitre-1-2-et-3/ qui pourrait t'aider je pense, chapître 14...

Christophe
Webcréa sarl
http://www.webcrea.fr
0
clay111 Messages postés 13 Date d'inscription mardi 2 juin 2009 Statut Membre Dernière intervention 18 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!
0
webcrea92 Messages postés 88 Date d'inscription mardi 17 mai 2005 Statut Membre Derniè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 ...

Christophe
Webcréa sarl
http://www.webcrea.fr
0
Rejoignez-nous