STIC Discussion:STIC I - exercice 4 (Stella)

De EduTech Wiki
Aller à la navigation Aller à la recherche

cliquer sur un objet invisible -- Lucie.Marchon 17 novembre 2010 à 12:00 (CET)

Bonjour Est-ce qu'une instance qui est déterminée non visible est cliquable?

Re: cliquer sur un objet invisible -- Jaboulay 17 novembre 2010 à 15:04 (CET)

Bonjour Lucie. Sois tu as un objet sur lequel tu assignes une transparence totale (Alpha = 0) et il est toujours clickable Sois tu appliques la propriété .visible = False et là il n'est pas clickable (par exemple button.visible = false;)

Re: Re: cliquer sur un objet invisible -- Lucie.Marchon 17 novembre 2010 à 20:08 (CET)

Nickel, merci!!

animation à l'intérieur d'un clip -- Vjollca Ahmeti 18 novembre 2010 à 15:06 (CET)

Au niveau de l'ActionScript 3.0, quand on veut appliquer un fonction à une animation, est-ce que ça change quelque chose si l'animation est à l'intérieur d'un clip ? Au niveau du code, est-ce qu'il faut indiquer où est l'animation ? Où est-ce que si on indique juste le nom de l'animation en question, la fonction retrouve l'animation qu'elle soit à l'intérieur du clip ou pas ?

Re: animation à l'intérieur d'un clip -- Daniel K. Schneider 19 novembre 2010 à 14:04 (CET)

"Appliquer une fonction à une animation" n'est pas très clair pour moi, enfin j'essaye de répondre:

Si la fonction de l'objet A est dans la timeline du clip A et l'objet B également inséré dans la timeline de l'object A, rien ne change. Donc travailler avec la timeline principale est exactement la même chose que travailler avec la timeline d'un clip.

objetB.play();

Sinon, si vous avez des clips dans des clips qui communiquent, il faut aider Flash. Si depuis une timeline (par exemple la maintimeline), vous voulez appeler une méthode d'un objet B qui se trouve sur la timeline d'un objet A, il faut utiliser:

A.B.fonction();

c.f. l'exemple des avions. Flash_CS4_-_Symboles_et_clips#Exemple_avion_avec_2-3_niveaux_d.27imbrication_de_symboles

Si vous voulez depuis un objet imbriqué dans une timeline, exécuter une méthode d'un objet B qui se trouve ailleurs, on peut utiliser:

MovieClip(root).B.play();

Enfin, globalement il faut plutot essayer d'éviter à ce que les objets se lancent à travers les hiérarchies. Cela les rend dépendants. En gros je conseille:

  • Utiliser un clip pour une application (donc ne jamais utiliser la maintime line pour cela
  • Dans ce clip, utiliser soit ActionScript soit la timeline pour coordonner l'éxécution de clips imbriqués.
  • Autrement dit: Il faut éviter des hiérarchies de clips compliqués et limiter toute dépendence entre clips à un strict minimum.

Re: Re: animation à l'intérieur d'un clip -- Daniel K. Schneider 19 novembre 2010 à 14:31 (CET)

Replace this text with your reply

lancer plusieurs animations en même temps ou en différé -- Vjollca Ahmeti 18 novembre 2010 à 16:02 (CET)

Est-ce qu'on peut lancer plusieurs animations à la fois avec la même fonction (ex. en appuyant sur un bouton, on lance plusieurs animations à la fois) ? Et est-ce qu'on peut faire ça même si l'une des animations est sur la main timeline et l'autre à l'intérieur d'un clip ? C'est un peu ce qui a été fait avec l'exemple de l'avion, non ? Et est-ce qu'on peut lancer deux animations différentes mais en différé (ex. L'une d'abord et quand elle se termine, lancer la suivante) ? On devrait pouvoir faire ça, non ?

Re: lancer plusieurs animations en même temps ou en différé -- Daniel K. Schneider 19 novembre 2010 à 13:47 (CET)

oui on peut faire les trois choses

(1) Depuis une fonction on peut faire ce qu'on veut (donc faire exécuter 1000 choses si on a envie). donc oui pouvez en lancer autant que vous voulez. Note: Le concept de fonction n'a rien à voir avec le Flash/ActionScript. C'est une principe universel en informatique...

(2) une animation sur la maintime line plus une qui est dans un clip sur un autre layer peuvent tourner en même temps. Il suffit d'étendre le keyframe ou se trouve ce clip jusqu'à la fin de l'animation dans la maintimeline (F5 - insert frame).

(3) Pour lancer une animation en différé, il existe plusieurs strategies:

  • Simple (pas trop élégant) - bricoler avec la timeline: Créez un clip ou utiliser la maintimeline. Ensuite lancez simplement l'animation A dans un premier frame. Ensuite allonger le frame oũ se trouve le clip (par exemple clic sur F5 dans le frame 48 pour avoir 2 secondes). Ensuite stopper l'anim si nécessaire, puis lancer la suivante selon le même principe
  • Avec un timer (désolé je n'ai pas le temps de documenter)
  • Avec une fonction que le clip A appelle quand il à terminé. Donc dans le dernier frame de la timeline interne à l'animation A on peut appeler une fonction qui lance l'animation B, ou directement la lancer. Mais attention cela nécessite du code spécial. La timeline du clip A ne voit pas le clip B. Donc faut ce genre de code:
MovieClip(root).clipB.play();

ou encore:

MovieClip(root).fonction_dans_maintimline();
  • Plus élégant (mais plus difficile donc je n'ai pas cherché de solution): avec un event handler,

noms d'instances avec la fonction addChild -- Lucie.Marchon 18 novembre 2010 à 21:30 (CET)

Bonjour J'aimerais faire se rencontrer le robot et les champignons et je ne comprends pas comment faire. Voilà mon fichier:

Re: noms d'instances avec la fonction addChild -- Daniel K. Schneider 19 novembre 2010 à 14:11 (CET)

Vais voir cela plus tard cet aprèm ...