Preload + animation dans un clip

Jblenderj Messages postés 15 Date d'inscription samedi 22 mai 2004 Statut Membre Dernière intervention 25 mars 2010 - 3 oct. 2008 à 03:38
Jblenderj Messages postés 15 Date d'inscription samedi 22 mai 2004 Statut Membre Dernière intervention 25 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.

10 réponses

on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Derniè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:

this.clipBleu.uneFonction = function() {
          this._parent.clipRouge.uneInstruction();
}

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é

Voilà, bonne continuation.

@+.
telov.ch
0
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
3 oct. 2008 à 04:30
Edit:
Si c'est à limage 2 de tonClip que tu veux aller alors remplace la dernière ligne par:

this.tonClip.gotoAndPlay(2);

@+.
telov.ch
0
Jblenderj Messages postés 15 Date d'inscription samedi 22 mai 2004 Statut Membre Dernière intervention 25 mars 2010
3 oct. 2008 à 19:47
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CJBLEND%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:HyphenationZone>21</w:HyphenationZone>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]-->
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
@page Section1
{size:595.3pt 841.9pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;
mso-header-margin:35.4pt;
mso-footer-margin:35.4pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Tableau Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->
Merci beaucoup pour ce coup de main ...


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...

Peut être aussi que j'expose mal le problème. Il est peut être plus simple que
je joigne les fla cela simplifiera mes explications surement pas très claires.http://homeload.power-heberg.com/Preload+Animation.rar








Preload + Animation







Merci en tous cas pour ton aide.
0
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Derniè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.

@+.
telov.ch
0

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

Posez votre question
Jblenderj Messages postés 15 Date d'inscription samedi 22 mai 2004 Statut Membre Dernière intervention 25 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 
0
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Derniè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
0
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
4 oct. 2008 à 03:13
Et n'oublie pas de simuler le téléchargement pour tester en local ^^

@+.
telov.ch
0
Jblenderj Messages postés 15 Date d'inscription samedi 22 mai 2004 Statut Membre Dernière intervention 25 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.

Merci en tous cas
0
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Derniè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...

@+.
telov.ch
0
Jblenderj Messages postés 15 Date d'inscription samedi 22 mai 2004 Statut Membre Dernière intervention 25 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 !

Merci encore de ton aide
0
Rejoignez-nous