Bonjour,
Je fais un site pour une photographe et j'utilise le loadMovie pour charger différents clips, mais je n'arrive pas bien à contrôler et à distinguer mes différents conteneurs. Je m'arrache un peu les cheveux... o_O
HELP ! :o
Le principe du site est qu'il y a différentes rubriques et que chaque passage (de l'accueil au menu, du menu au différentes galeries) se fait avec un fondu au blanc, grâce à TweenLite de Greensock.
J'ai donc fait une première clip, le principal, avec une image et un clip_chargement qui est visible tant qu'on charge ce qu'on a à charger. Je commence avec ça :
createEmptyMovieClip("conteneur_princ", 2);
conteneur_princ.loadMovie("accueil2.swf");
conteneur_princ._visible = false;
this.onEnterFrame = function() {
var total:Number = conteneur_princ.getBytesTotal();
var charge:Number = conteneur_princ.getBytesLoaded();
var rapport:Number = (charge / total)*100;
if (rapport == 100) {
gotoAndPlay(2)
delete onEnterFrame;
}
}
Mon accueil2 est en fait mon menu et le conteneur_princ._visible ne devient true que quand on clique sur le bouton "entrer" qui apparaît sur l'image 2.
Mon menu est donc chargé dans conteneur_princ . Là déjà j'ai un doute, le code qui suit, il vaut mieux le mettre dans mon clip "accueil2" (mon menu) ou tout laisser dans dans ce premier clip en précédant tout de "conteneur_princ." ?? J'ai choisi de tout mettre dans la première scène ...
Jusque là ça marche, :D ça commence à clocher quand, depuis le menu, je veux faire accéder aux différentes rubriques :( . J'arrive à "trouver" le clip et les boutons pour y accéder, mais le problème c'est qu'avec mon système de fondus, il faut que je teste chaque fois le taux de chargement : tant que le clip rubrique n'est pas chargé, son conteneur est invisible, et quand il est chargé, alors doit commencer le fondu. Mais je n'arrive pas à bien tester le chargement, alors que je fais ça :
chargement = function() { // fonction de test du taux de chargement
onEnterFrame = function() {
$total = _root.conteneur_princ.getBytesTotal();
$charge = _root.conteneur_princ.getBytesLoaded();
$rapport = ($charge / $total)*100; // je déclare mes variables
if($rapport < 100) {
_root.clip_charge._alpha = 100; // mon truc qui tourne est visible
_root.conteneur_princ._alpha = 0; // mon clip rubrique est invisible
};
if ($rapport == 100) {
_root.clip_charge._alpha = 0; // quand le clip est chargé, mon truc qui tourne disparaît
TweenLite.to(conteneur_princ, 0.7, {autoAlpha:100}); // et mon clip apparaît en fondu
delete onEnterFrame;
};
};
};
aiguillage = function() { // ma fonction qui dirige vers l'un ou l'autre clip, pour l'instant je ne l'ai fait que pour une rubrique : "cuba"
onEnterFrame = function() {
if($direction=='cuba' && _root.conteneur_princ.menu1._alpha == 0) { // si l'on veut aller dans la rubrique cuba et que le menu a disparu en fondu
_root.conteneur_princ.unloadMovie();
_root.conteneur_princ.loadMovie("cuba.swf");
_root.conteneur_princ._alpha = 0; // pour l'instant il est invisible, c'est la fonction chargement() qui le fera apparaître
delete onEnterFrame;
_root.chargement();
};
};
};
choixcuba = function() { // c'est la fonction appelée au moment où le fondu de disparition du menu s'est terminé
clip_charge._alpha = 100; // le truc qui tourne apparaît
$direction = 'cuba'; // une variable pour savoir où on va
aiguillage();
};
_root.conteneur_princ.menu1.clip_cuba.onRelease = function() {
TweenLite.to(_root.conteneur_princ.menu1, 1, {autoAlpha:0, onComplete:choixcuba});
};
Là donc dans ce cas j'ai décidé de charger la rubrique dans le même conteneur que le menu, j'avais essayé aussi de charger dans un autre conteneur, appartenant à conteneur_princ ou pas , mais ça ne marchait pas plus... :euh:
J'ai l'impression que quelque chose cloche avec le onEnterFrame , il n'est pas possible de nommer un onEnterFrame pour être sûr que le delete onEnterFrame supprime bien celui qu'on veut ? :o
Je suis preneur de tout commentaire ! Je ne sais pas si vous pourrez voir direct ce qui ne marche pas dans mon code, mais même un bon tuto sur l'embriquement des clips ou quelque chose comme ça me rendrait service.
Sans l'histoire des fondus je crois que tout fonctionnerait, mais là le fait d'avoir besoin du test de chargement me plombe un peu tout je crois... :-°