Jblenderj
Messages postés15Date d'inscriptionsamedi 22 mai 2004StatutMembreDernière intervention25 mars 2010
-
3 oct. 2008 à 03:38
Jblenderj
Messages postés15Date d'inscriptionsamedi 22 mai 2004StatutMembreDernière intervention25 mars 2010
-
4 oct. 2008 à 14:14
Bonjour à tous :)
Une question certainement très bête mais turlupinante !
Voilà un exemple tout simple : en 1ere clé se trouve un preloader qui charge l'animation qui se trouve "elle" en 2eme clé.
Le code :
onClipEvent (load)
{
total = _root.getBytesTotal();
}
onClipEvent (enterFrame)
{
loaded = _root.getBytesLoaded();
percent = Math.round(loaded / total * 100);
text = "" + percent + "%";
gotoAndStop(percent);
if (loaded == total)
{
_root.gotoAndPlay(2);
}
}
Jusque là, NICKEL !!! Vive FLASH ! ...
A présent, je décide de procéder différemment :
<ol><li>J'ouvre un document vierge</li><li>Sur l'image clé je crée un symbole Clip</li><li>Dans ce symbole en 1ere clé je mets le preloader</li><li>Sur la seconde clé l'animation ... Je teste ...
</li></ol>
Eh bien il ne se passe rien ! Le preload indique "chargé à 100%" ... mais c'est tout ! L'animation ne se lit pas.
Je vous avez prévenu je suis novice et donc je me pose quelques questions peut être simplette.
Est-ce une histoire de_parent. ???
J'aimerais bien comprendre, merci de vos éventuelles réponses.
on_drag_on
Messages postés1236Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention 6 octobre 2010 3 oct. 2008 à 04:23
Salut,
Pourquoi _parent ? _parent sert à cibler le parent d'un objet. Par exemple si j'ai un clip rouge sur la scène et que je mets un clip bleu sur la timeline du clip rouge, et que je veux passer une instruction au clip rouge depuis le clip bleu, j'utiliserais:
Et ceci en codant sur depuis l'image 1 de la scène principale.
Pour ton preloader pareil, tu lui passe des instructions et tu gères les événements depuis la scène principale, dans la boite Action-Image:
this.tonClip.stop();
var total = this.getBytesTotal();
this.onEnterFrame = function() {
loaded = this .getBytesLoaded();
percent = Math.round(loaded / total * 100);
text = "" + percent + "%";
gotoAndStop(percent);
if (loaded == total)
{
delete this.onEnterFrame; // On vire la boucle
this.gotoAndPlay(2);
}
}
Dans la mesure du possible il est préférable d'éviter le _root pour une raison simple: Si tu charges une animation dans une autre, c'est le _root de l’animation mère qui sera ciblée et non
celui du swf loadé
J'ai donc essayé de comprendre avec ton aide. Aie,aie ... suis pas doué !
J'ai déjà essayé le codage de comportement bouton sur un clip avec function()
et instruction(), du genre :
this.monClip.onRelease = function()
{monClip2.gotoAndPlay(10);}.
Pas de soucis ça a marché.
Mais là, pour mon cas de preload + animation dans un clip, je rame vraiment...
on_drag_on
Messages postés1236Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention 6 octobre 2010 3 oct. 2008 à 20:10
Salut,
Non mais comme je te l'ai dis faut éviter de coder dans les clips ou boutons, enfin si tu veux une façon propre de faire les choses. Là tu te retrouves avec du code un peu partout. imagine que si ton appli devient conséquente tu vas plus t'y retrouver.
Ensuite tu oublies quelque-chose lorsque tu testes ton preload, c'est de simuler le téléchargement !!
Tester l'animation -> Affichage -> Paramètres de téléchargements // Là tu choisis un paramètre, par ex: 56K ou 28,8K ... et ensuite:
Affichage -> Simuler le téléchargement.
Et pour finir une source que j'avais mis sur mon ancien blog.
Jblenderj
Messages postés15Date d'inscriptionsamedi 22 mai 2004StatutMembreDernière intervention25 mars 2010 4 oct. 2008 à 01:58
Merci pour ton aide précieuse, mais franchement, je suis OUT ...
Mis à part le codage, je pensais qu'il s'agissait d'un problème de niveaux, ou quelque chose comme ça, puisque lorsque je mets mon preload et l'anim dans un clip, plus rien ne marche .... simplement parce que ça n'est plus sur la scène principale. Je comprends rien ... snifff ...
Merci pour l'aide en tous cas
on_drag_on
Messages postés1236Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention 6 octobre 2010 4 oct. 2008 à 03:05
Bon j'ai dl ton .fla
1) Vire tout les codes que tu as mis. On se retrouve donc avec une scène principale qui contient 2 images, sur l'image 1: le preloader et sur l'image 2 : le clip.
3) Tu fais un calque 2 sur cette scène principale et tu le nommes : AS. C'est là que tu vas mettre ton script, dans Action-Image :
// D'abord on stop l'animation principale.
// On stop donc sur limage 1 de la scène principale.
stop();
// Ensuite on envoie le chargement.
// On crée pour ça une boucle qui s'exécutera tant que le chargement n'est pas fini.
var total = this.getBytesTotal();
this.onEnterFrame = function() {
loaded = this.getBytesLoaded();
percent = Math.round(loaded / total * 100);
text = "" + percent + "%";
gotoAndStop(percent);
if (loaded == total)
{
// Une fois le chargement fini on vire la boucle
delete this.onEnterFrame;
// La boucle étant virée on peut passer l'image 2. Si on mets un gotoAndPlay(), une
// fois l'image 2 lue la tête de lecture va poursuivre son chemin donc revenir à la 1,
// donc pour rester sur l'image 2 on met un gotoAndStop().
this.gotoAndStop(2);
}
}
Voilà, c'est pourtant simple, il faut réfléchir par étapes.
@+.
telov.ch
Jblenderj
Messages postés15Date d'inscriptionsamedi 22 mai 2004StatutMembreDernière intervention25 mars 2010 4 oct. 2008 à 03:26
Merci. Les explications sont ultra clair, et totalement acquises à présent.
En fait mon problème n'est pas là, j'ai dû mal m'exprimer. Je n'ai pas 2 images (preload, puis animation) sur ma scène principale, mais une seule (second fla : Preload+animation dans un clip) ... et c'est dans cette image se trouve un clip, qui contient les deux autres précédemment cités.Voilà ...
Désolé, je commence à être un peu lourdingue peut être.
on_drag_on
Messages postés1236Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention 6 octobre 2010 4 oct. 2008 à 03:39
Mais qu'est-ce ça change ? Ou plutôt que doit faire ton clip avant, pendant et après le chargement et qu'est-ce qui ne fonctionne pas ? Décris précisément ce que tu veux faire avec quel objet et dans quel ordre...
Jblenderj
Messages postés15Date d'inscriptionsamedi 22 mai 2004StatutMembreDernière intervention25 mars 2010 4 oct. 2008 à 14:14
Le but de la manœuvre est simple. J'ai besoin pour une question de pratique de rassembler dans un clip, une scène avec plusieurs calques, et beaucoups d"images. En faisant de cet ensemble un clip, je me retrouve donc avec une seule image. Beaucoup plus pratique à insérer dans un fla qui contient déjà beaucoup de calques et images.
C'est en faisant cette manipulation, que plus rien ne va. Je rencontre ce problème avec un livre d'or par exemple.Il ne trouve plus ses fichiers xml, php... Voilà pourquoi je pensais à une histoire de cibles de " _parent ".
J'ai donc essayé de comprendre en faisant d'un preloader et d'une animation (2 clés) un seul clip, pour voir comment ça allait réagir. C'est là que je me suis rendu compte que le preload ne fonctionnait plus, et ne conduisait plus à l'image clé "2" , certainement parce qu'il n'était plus sur la scène principale.
Voilà, en tous cas je confirme : " en programmation 99% des problèmes se situent entre la chaise et le clavier ... "... et j'arrange pas les statistiques !