Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash
Flash Forum d'entraide sur la technologie Flash (Cours, FAQs, Sources)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/07/2007, 18h50   #1
Invité de passage
 
Inscription : juillet 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 10
Points : 0
Points : 0
Par défaut [FLASH 8] Problème création Preloader

Bonjour,
je vient de créer un site en flash que j'ai décomposé en 2 scènes dans flash 8. La prémiere scéne est intitulée "loader", la seconde "main" (qui contient le contenu du site). Alors vous l'avez compris la première scène est celle qui charge la seconde : c'est un preloader.
Voici le code du preloader :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
stop();
 
myInterval = setInterval(preload,100);
 
function preload() {
	var current = _root.getBytesLoaded();
	var total = _root.getBytesTotal();
	var pctLoaded = Math.round(current/total*100);
	pct_txt.text = pctLoaded;
 
	if (current >= total)
	{
		gotoAndStop("main",1);
		clearInterval(myInterval);
	}
}
Explications :

- "var current" est la variable dans laquelle on stock le nombre de Bytes chargé en mémoire.

- "var total" est la variable dans laquelle est stocké le nombre total de bytes de l'animation à charger.

- "var pctLoaded" est la variable qui calcule le pourcentage de bytes chargés.

- "pct_txt.text = pctLoaded;" : Ceci sert à remplacer la valeur du texte "pct_txt" (en fait c'est un nombre) par le pourcentage de bytes chargés ("pctLoaded") pour afficher par exemple :
"10, 20, 50, 70, 82, 93, 100 chargé."

Donc aprés avoir mis ce code, j'ai tester mon animation (Ctrl+Enter) j'ai choisi "DSL" dans : Affichage > Paramétre de téléchargement, puis j'ai cliqué sur Simuler le téléchargement en ayant pris soin d'activer "le testeur de bande passante". Normalement cela devrais m'afficher ma scéne loader avec écrit :
10, 20, 22, 36, 48, 70, 100 effectué puis ensuite m'afficher ma seconde scène c'est à dire "main"

Au lieu de ça j'ai seulement ma couleur de fond de la scène loader qui s'affiche, puis vers les 90% de chargement (vu avec le testeur de bande passante) mon texte de chargement s'affiche, il arive à 100% puis il m'affiche la scène "main" ce qui est normal.

Donc je voudrais savoir pourquoi quand je teste ma scène "loader" il s'affiche que ma couleur de fond pendent 90% de téléchargement et que seulement à ces 90%, le texte de chargement s'affiche ???

Merci de votre aide,
Cordialement,
Makak_du_27.
Makak_du_27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2007, 04h08   #2
Membre éclairé
 
Inscription : novembre 2006
Messages : 336
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 336
Points : 323
Points : 323
C'est normal, ton clip doit être trop léger.

Sinon tu peux utiliser onEnterFrame, c'est plus propre que setInterval, ou encore mieux, utiliser le clip principal comme loader et ainsi appeler du contenu dedans, tu auras ainsi accès à onLoadProgress() qui est une méthode plus précise que toutes celles citées plus haut.
Shinuza est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2007, 11h09   #3
Invité de passage
 
Inscription : juillet 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 10
Points : 0
Points : 0
Bonjour,
Merci de ta réponse Shinuza, j'ai quelques questions à te poser :
Quel clip est trop léger ? (loader et main sont des séquences)
Donc si c'est ça la réponse il faut rendre ce clip plus lourd (de combien, comment) ?

Merci,
Cordialement,
Makak_du_27.
Makak_du_27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 15h07   #4
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 16
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : juin 2007
Messages : 16
Points : 14
Points : 14
En reprenant le nom de tes variables, moi je fais comme ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
onEnterFrame= function() {
var current = _root.getBytesLoaded();
var total = _root.getBytesTotal();
var pctLoaded = Math.round(current/total*100);
pct_txt.text = pctLoaded;
 
if (current >= total)
{
gotoAndStop("main",1);
delete onEnterFrame;
}
}
stop();
titifrim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 18h14   #5
Invité de passage
 
Inscription : juillet 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 10
Points : 0
Points : 0
Merci de ta réponse titifrim, mais cela n'a rien changé : Toujours rien au 95% de chargement puis après le texte s'affiche.
Décidement ce probléme est vraiment indestructible !

Merci,
Cordialement,
Makak_du_27
Makak_du_27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 23h05   #6
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 16
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : juin 2007
Messages : 16
Points : 14
Points : 14
Bah rien ne vaut un test en réel sur le web, si tu veux voir ce que ça rend avec différentes connexions utilise un soft du style NetLimiter pour régler la bande passante et effectuer des simulation. Sinon pour le problème des 90% tu n'as pas des éléments de bibliothèques liés pour actionscript car il faut savoir que dans ce cas ils se chargent sur la première image et peuvent fausser la prévisualisation quand tu la lances depuis Flash. Pour ma part je ne lance plus cette commande, je regarde directement dans le navigateur, on est moins déçu.
titifrim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 23h11   #7
Invité de passage
 
Inscription : juillet 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 10
Points : 0
Points : 0
ok je vais essayer je te tiens au courant.

Merci,
Makak_du_27
Makak_du_27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 00h03   #8
Invité de passage
 
Inscription : juillet 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 10
Points : 0
Points : 0
Re Titifrim,
le test en direct sur le net n'a rien donné de bien satisfaisant : toujours le même problème ! Et pour les éléments de la bibliothèques liés pour actionscript comment je fais ? Il faut que je les vérifie 1 par 1 ? Mais de toutes façon je ne crois pas je j'ai mis une quelquonque action sur un élément de la bibliothèque.

Merci,
Chao,
Makak_du_27
Makak_du_27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 09h30   #9
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 16
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : juin 2007
Messages : 16
Points : 14
Points : 14
Le truc à savoir c'est que lorsque des éléments de bibliothèques sont liés pour actionscript (pour le vérifier clic droit sur un clip de la bibliothèque et voir si l'option est cochée) ces derniers se chargent dans la première image de la scène, et bien souvent avant que le preloader lui-même ne se charge... c'est bien pour cela qu'un bon preload efficace de façon universel ne doit tenir que sur une seule image clé et la première de la scène 1. As-tu vérifé ces différents points ?
titifrim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 11h43   #10
Invité de passage
 
Inscription : juillet 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 10
Points : 0
Points : 0
Salut titifrim,
Voila j'ai trouvé un élément lié : une musique ("Sur le net"). Alors voila je l'ai délié et cela a résolu le problème mais maintenant, un second probléme survient : cette musique faisait parti d'un player : voici son code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var song_sound:Sound = new Sound();
Musique_text_mc.Sur_le_net_ecouter.onRelease = function  () {
song_sound.attachSound("Sur_le_net");
Aucun_titre._visible = false;
createTextField("my_txt", 1, 670, 72, 100, 30);
my_txt.multiline = true;
my_txt.wordWrap = true;
var my_fmt:TextFormat = new TextFormat();
my_txt.text = "Sur le net";
my_txt.setTextFormat(my_fmt);
 
}
Player_entier.Play_btn.onRelease = function() {
    song_sound.stop();
	song_sound.start();
};
Stop_btn.onRelease = function() {
    song_sound.stop();
};
Voila aurais-tu une solution pour délié cette musique tout en la laissant faire parti du player et qu'elle soit fonctionnelle ?

Merci beaucoup,
Cordialement,
Makak_du_27
Makak_du_27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 13h17   #11
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 16
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : juin 2007
Messages : 16
Points : 14
Points : 14
Pourquoi ne désolidariserais-tu pas (plus facile à ecrire qu'à dire ce truc ) le player avec la musique du reste de l'anim, tu pourrais ainsi la loader en externe avec un loadMovie(); ou loadMovieNum();
Avec ma technique de preload plus haut tu ne devrais en principe pas avoir de soucis si tu mets le code sur la premiere image clef, chez moi ça marche à tous les coups même avec des éléments liés. Avant de réaliser ce type de chargement je bidouillais en créant 3 scènes, la première contenait le preload; la seconde contenait les éléments liés que je disposais en vrac sur la scène en ayant pris soin de décocher "Exporter dans la premiere image" et la troisième scène contenait le reste. Le preload bien evidemment se rendait à la scène 3 sans passer par la 2 dès quand le téléchargement était complet... il te reste aussi cette soluce.
titifrim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 18h02   #12
Invité de passage
 
Inscription : juillet 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 10
Points : 0
Points : 0
Merci Titifrim,
mais que veux-tu dire par "désolidariserais" ?Aurais-tu un exemple ???

Merci à toi,
Makak_du_27
Makak_du_27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2007, 22h19   #13
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 16
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : juin 2007
Messages : 16
Points : 14
Points : 14
J'entendais juste par là : placer le player avec le son dans une nouvelle anim c'est tout. Comme ça ça ne perturbe pas ton anim principale et puis en supposant que tu fasse un loadMovieNum("tonplayer.swf",1); tu peux réaliser un preload dans ton flash principale dédié au niveau 1 ex :

var encharge=_level1.getBytesLoaded();
var total=_level1.getBytesTotal();

etc...
titifrim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 22h04   #14
Invité de passage
 
Inscription : juillet 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 10
Points : 0
Points : 0
Merci encore une fois Titifrim mais y a t'il une méthode qui remplace attachsound ? et qui ne li pas un élément ?? En fait pourrais-tu me donner plus d'informations sur le niveau 1 stp ?

Merci beaucoup,
cordialement,
Makak_du_27
Makak_du_27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2007, 11h03   #15
Invité de passage
 
Inscription : juillet 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 10
Points : 0
Points : 0
Up
Makak_du_27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2007, 00h59   #16
Invité de passage
 
Inscription : juillet 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 10
Points : 0
Points : 0
Double-UP
Makak_du_27 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h11.


 
 
 
 
Partenaires

Hébergement Web