Preload d'une séquence

Résolu
Twist02 Messages postés 7 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 22 janvier 2007 - 18 janv. 2007 à 12:53
Twist02 Messages postés 7 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 22 janvier 2007 - 22 janv. 2007 à 17:10
Bonjour,

je vais poser une question de super débutant... mais je n'arrive à rien avec les tuto sur le net.

Je fait un site avec divers séquences (pages de mon site)

j'ai un loading de départ (première séquence) qui à ce code :

if (_level0.getBytesLoaded()>=_level0.getBytesTotal()) {
 gotoAndPlay("accueil", 1);
}
pourcent = Math.round((_level0.getBytesLoaded()/_level0.getBytesTotal())*100);
barre._xscale = pourcent;
pourcent += " %";

ce loading va précharger le site complet !

ce que je voudrai c'est avoir un loading pour chaque nouvelle séquence et ne pas avoir ce gros loading super lourd dès le départ.
Est-ce possible ? ou faut-il passer par des swf annexes et des loadmovie ?

merci pour l'info.

10 réponses

cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
19 janv. 2007 à 08:32
Bonjour,

tu donnes la réponse à ta question dans ton post :

Il faut passer par des swf externes et utiliser des loadMovie() ou des movieClipLoader()

Perso ma préférence va à la seconde possibilité, movieClipLoader() donnant directement des information sur l'avancement du chargement et permet de déclencher des événements lorsque le chargement est terminé.

@+
3
cs_Burnside Messages postés 1132 Date d'inscription mercredi 28 août 2002 Statut Membre Dernière intervention 6 mars 2020
19 janv. 2007 à 09:37
Slt,

Je suis pour le moviecliploader également, car cela permet aussi de mettre plus facilement ton site à jour.

Bon dev...
Burnside.

..:: Enjoy living in hell ::..
http://www.art-line.be
3
Twist02 Messages postés 7 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 22 janvier 2007
19 janv. 2007 à 12:13
Super merci !! j'avance à grand pas dans le code !!

//on crée le clip vide dans lequel on va loader notre image

var conteneur:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());


//on loade notre image (ou notre swf) dans le clip vide
conteneur.loadMovie("image.jpg");


//à chaque fps, un événement enterFrame est déclenché par flash, on définit un écouteur sur cet événement : à chaque fps, le code entre { } va être exécuté (ce qui va nous permettre de tester à chaque passage si le chargement est fini ou pas).

this.onEnterFrame = function():Void

{

//on définit une variable "charge" dans laquelle on met le nombre de bytes qui ont déjà été chargés par le loadMovie (dans le clip conteneur)   

var total:Number = conteneur.getBytesTotal();    

//on définit une variable "total" dans laquelle on stocke le nombre de bytes total de notre image (ou swf)   

var charge:Number = conteneur.getBytesLoaded();    

//on calcule le pourcentage chargé (arrondi avec le Math.round) et on le stocke dans la variable "pourcent"   

var pourcent:Number = Math.round(charge/total*100);


//on teste si le pourcentage = 100 pour savoir si le chargement est terminé   

if (pourcent == 100) {       

//si oui, le chargement est fini, on supprime l'écouteur pour ne plus exécuter tout ça       
delete this.onEnterFrame;        

//ici on est sûr que notre image (ou swf) est bien chargée, on peut la redimensionner ou accéder aux éléments de notre swf       

conteneur._x = 100;

//je place mon image (ou swf) à 100pixels du bord gauche.   
}
else
{       

//ici le chargement n'est pas terminé, on peut par exemple faire progresser une progressbar (en fonction de la valeur de "pourcent" pour montrer l'avancement du chargement.
                   
}

Je ne sais pas comment  m'y prendre pour la barre de load ... pouvez vous m'aider ?
J'ai un calque pour ma barre, un autre avec un texte dynamique pour afficher le %.
comment je peux transformer mon code :

pourcent = Math.round((_level0.getBytesLoaded()/_level0.getBytesTotal())*100);
barre._xscale = pourcent;
pourcent += " %";

pour que ça marche ...

merci encore.
0
Twist02 Messages postés 7 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 22 janvier 2007
19 janv. 2007 à 12:23
Et surtout ou mettre ma barre et mon % pour qu'ils apparaissent que lors de l'appel de mon clip ?

Dans le clip externe ?
0

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

Posez votre question
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
20 janv. 2007 à 13:13
Salut,

non, tu mets ta barre dans le clip pricipale et lorsque le chargement est terminé, soit tu éfface ta barre (si elle ne doit plus servir), soit tu lui donne un _alpha de 0 et du coup elle est invisible
donc, dans le if (pourcent == 100){
....
barre._alpha=0
// idem pour le texte dynamique
texteDynamique.text=""
}

@+
0
Twist02 Messages postés 7 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 22 janvier 2007
22 janv. 2007 à 11:13
ok merci je vais utiliser l'alpha à 0

Par contre pour la fin de mon code je suis un peu perdu.
 
Après le else comment faire pour que mon loading fonctionne ?
mon code :

else
{   
pourcent = Math.round((_level0.getBytesLoaded()/_level0.getBytesTotal())*100);
barre._xscale = pourcent;
pourcent += " %";

il me dit : Incompatibilité de types dans l'instruction d'affectation : String détecté au lieu de Number.
     pourcent += " %";

je suis vraiment une quiche en code désolé, si un de vous pouvait m'aider ce serait sympa.
0
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
22 janv. 2007 à 11:31
Salut,

c'est logique, pourcent est effectivement de type Number.
Utilise une autre variable pour l'affichage du pourcentage :

var pourcentage:String=pourcent+" %"

@+
0
Twist02 Messages postés 7 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 22 janvier 2007
22 janv. 2007 à 16:03
Voici la dernière version de mon code, qui bug...
Ma barre, mon pourcentage et mon texte chargement en cours restent affichés
rien de surprenent car je ne sais pas comment les effacer !!!

Pour mon loading, j'ai un calque avec un clip pour ma barre (avec comme nom barre)
un autre calque avec un clip "chargement en cours" (qui n'a pas de nom) + mon texte dynamique pour le % (qui n'a pas de nom)

Si un de vous à 5min pour faire le petit bout de code qui me manque pour que mon loading fontionne, ce serait super, merci !
 

stop();


//on crée le clip vide dans lequel on va loader notre image (on le nomme container et on lui donne la première profondeur libre)
var conteneur:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
//on loade notre image (ou notre swf) dans le clip vide
conteneur.loadMovie("22Jousselin-pavillon-radn.swf");
//à chaque fps, un événement enterFrame est déclenché par flash, on définit un écouteur sur cet événement : à chaque fps, le code entre { } va être exécuté (ce qui va nous permettre de tester à chaque passage si le chargement est fini ou pas).
this.onEnterFrame = function():Void
{
//on définit une variable "charge" dans laquelle on met le nombre de bytes qui ont déjà été chargés par le loadMovie (dans le clip conteneur)   
var total:Number = conteneur.getBytesTotal();    
//on définit une variable "total" dans laquelle on stocke le nombre de bytes total de notre image (ou swf)   
var charge:Number = conteneur.getBytesLoaded();    
//on calcule le pourcentage chargé (arrondi avec le Math.round) et on le stocke dans la variable �18;pourcent�19;   
var pourcent:Number = Math.round(charge/total*100);
//on définit une variable "pourcent"




//on teste si le pourcentage = 100 pour savoir si le chargement est terminé   
if (pourcent == 100) {       
//si oui, le chargement est fini, on supprime l"écouteur pour ne plus exécuter tout ça       
delete this.onEnterFrame;        
//pas de chargement donc la barre n'est pas visible
}
else
{
pourcent = Math.round((_level0.getBytesLoaded()/_level0.getBytesTotal())*100);
barre._xscale = pourcent;
var pourcentage:String=pourcent +" %"
}                    
}
0
Twist02 Messages postés 7 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 22 janvier 2007
22 janv. 2007 à 16:54
Bon je viens de refaire le code ça marchera mieux comme ça,
sauf que là je ne sais pas trop comment effacer mon texte chargement en cours et mon %

Pour mon loading, j'ai un calque avec un clip pour ma barre (avec comme nom barre)
un autre calque avec un clip "chargement en cours" (qui n'a pas de nom) + mon texte dynamique pour le % (qui n'a pas de nom)

merci pour votre aide, ça avance !!! ça avance !!

stop();


barre._xscale=0;
var conteneur:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
var mcl:MovieClipLoader=new MovieClipLoader();
var _o:Object={}; _o.onLoadProgress function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void{ barre._xscale Math.round(bytesLoaded/bytesTotal*100);
}
_o.onLoadInit=function(target:MovieClip):Void
{
 barre._visible=false;
}
mcl.addListener(_o);
mcl.loadClip("mapagedephotos.swf",conteneur);
0
Twist02 Messages postés 7 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 22 janvier 2007
22 janv. 2007 à 17:10
c'est bon ça macher finalement ;)

merci encore
0
Rejoignez-nous