Ralentissements & loadMovieNum ...

Résolu
cs_DrShiva Messages postés 41 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 16 février 2006 - 11 févr. 2006 à 01:38
cs_DrShiva Messages postés 41 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 16 février 2006 - 11 févr. 2006 à 03:38
Salut !

( Merci à SuperDevy ... et désolé pour le double post )

Là, je craque, en effet, il y a toujours un truc que je n'ai sûrement pas compris ...

Auriez-vous la patience de bien vouloir lire ce qui suit afin de m'apporter un peu d'aide ?

- J'ai un premier .SWF (A.swf) qui fait office de preloader, dans l'unique frame j'y ais le code suivant :

stop();
bar_mc._xscale = 0;
loadMovieNum("B.swf", 1);
_level1.stop();
onEnterFrame = function () {
percent = Math.ceil((_level1.getBytesLoaded()/_level1.getBytesTotal())*100);
bar_mc._xscale = percent;
taux = percent + "%";
if (percent>99) {
delete this.onEnterFrame;
_level1.gotoAndStop(2);
}
};

- Mon deuxième SWF (B.swf) , qui est appellé, présente un menu avec six choix possibles.
Chaque choix est un cercle que j'ai dessiné, qui est de type MovieClip et qui se trouve dans ma bibliothèque.
Quand je clique sur un de ces boutons je fais un :

loadMovieNum("C.swf", 0);

pour appeler mon troisième SWF (C.swf).


- Dans ce troisième SWF (C.swf) j'ai un bouton qui me permet de retourner au SWF précédent (B.SWF) grace à l'instruction :

this.loadMovie("B.swf",0);

Pour résumer :

A.swf (preloader) : loadMovieNum("B.swf", 1)
B.swf (menu) : loadMovieNum("C.swf", 0);
C.swf (le site) : this.loadMovie("B.swf",0);

A ===> B <===> C

Ce que j'obtiens : Tout s'enchaîne "à merveille" sauf que dans C.swf je ne peux pas savoir sur lequel des 6 menus de B.swf j'ai cliqué ...

Si j'essaye de charger le C au dessus du B ( avec loadMovieNum ), ça marche mais tout est ralenti
...

Ma question : Comment faire pour charger C.swf dans B.swf sans que ça rame ?

Merci de votre aide !

1 réponse

cs_DrShiva Messages postés 41 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 16 février 2006
11 févr. 2006 à 03:38
J'ai trouvé une solution qui me semble aceptable.

Il faut juste que j'utilise une variable globale !!!

Ainsi dans mon B.swf j'écris par exemple :

_global.my_var = 5 ;

et dans mon C.swf j'écris :

trace(_global.my_var);

Lorsque dans mon B.swf je clique sur un choix, C.swf est correctement chargé (au niveau 0) et la trace affiche 5 !

C'est génial !
3
Rejoignez-nous