« STIC Discussion:STIC I - exercice 3 (Stella) » : différence entre les versions

De EduTech Wiki
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
 
(63 versions intermédiaires par 11 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
== Insérer l'animation de l'ex.2 dans l'ex.3 -- [[Utilisateur:Kcoopoos|Kcoopoos]] 30 octobre 2010 à 15:26 (CEST) ==
* Archives Qwerty: [[STIC Discussion:STIC I - exercice 3/Qwerty]]
==uploader la vidéo correctement-- [[Utilisateur:Raphaël Gracia|Raphaël Gracia]]==
Comment dois-je uploader la vidéo sur le serveur pour qu'elle s'affiche dans mon site flash?


J'ai eu beau essayer 15 mille fois ;-), je ne suis pas arrivée à insérer l'animation que j'ai réalisé pour l'exercice 2 dans un des éléments de l'exercice 3. J'ai cherché dans le tutoriel, "insérer une animation" mais je n'ai rien trouvé non plus. Pouvez-vous me dire svp comment je puis insérer mon animation ? Merci
===Re: uploader la vidéo correctement-- [[Utilisateur:Daniel K. Schneider|Daniel K. Schneider]] 1 novembre 2012 à 17:46 (CET)===


===Re: Insérer l'animation de l'ex.2 dans l'ex.3 -- [[Utilisateur:Daniel K. Schneider|Daniel K. Schneider]] 31 octobre 2010 à 00:00 (CEST)===
Elle doit être à l'endroit que vous indiquez dans votre fla.  


Il faudrait me montrer l'animation de l'ex2. Si elle a été bien faite, c.a.d. avec des clips '''comme je l'ai demandé''', il suffit d'ouvrir les 2 fichiers *.fla (ex2 et ex3) puis copier/coller les clips qui vous intéressent depuis la bibliothèque de ex2 vers ex3.
* A priori, il faut donc d'abord vérifier la propriété '''source''' dans les component parameters. Il est impératif que le chemin ne pointe pas sur un lieu obscur (genre partition windows ou mac perso). Je conseille d'indiquer seulement un nom de fichier.  


Si vous avez aussi des animations dans la maintimeline de l'ex2 (déconseillé):
: Bon: Ma_video.flv
* Créer un nouveau symbole "animation" dans ex3, c.a.d. un nouveau clip
: OK: ../videos/my_video.flv  (mais ensuite faut répliquer cela sur le serveur)
* Aller dans ex2 et sélectionner tous les frames et layers dans la timeline, puis clic-droit copy frames
: Impossible: c:\Mes documents\....\my_video.flv
* Coller tout cans ex3 (attention, il faut utiliser le menu contextuel (clic droit paste frames)  
* Puis glisser ce nouveau clip dans le frame approprié du menu.


Lire: [[Flash CS4 - Symboles et clips]], surtout la section [[Flash_CS4_-_Symboles_et_clips#Pilotage_de_clips_avec_ActionScript|Pilotage_de_clips_avec_ActionScript]]
* Ensuite il suffit de mettre la vidéo dans le même répertoire que le swf.


Il existe d'autres solutions, mais c'est cela que je conseille (apprendre à copier/coller des clips d'un fichier à l'autre et également mettre des animations de la main timeline dans des clips si nécessaire
==stopper vidéo et son -- Raphaël Gracia 31 octobre 2012 ==
J'ai créé un petit site avec quatre boutons qui mènent vers quatre frames différentes. Une contient une vidéo, une autre une animation, et la dernière contient de la musique. Malheureusement, lorsque je change de page (=je quitte la frame), la vidéo et le son continuent, ce qui est assez gênant. Quelles commandes est-ce que je dois entrer pour arrêter tout ça ?


===Re: stopper vidéo et son -- [[Utilisateur:Daniel K. Schneider|Daniel K. Schneider]] 31 octobre 2012 à 14:08 (CET)===
Pour le moment, je vous conseille d'arreter seulement le son. Arreter la video est un peu compliquée.


====Re: Re: Insérer l'animation de l'ex.2 dans l'ex.3 -- [[Utilisateur:Kcoopoos|Kcoopoos]] 31 octobre 2010 à 10:29 (CET)====
La solution est ci-dessous dans un autre message. Enfin, dans le frame où se trouvent les boutons, il faut ajouter la ligne suivante dans chacune des fonctions qui sont déclenchées lorsque l'utilisateur clique sur un bouton. En gros, cela tue tous les sons.


SoundMixer.stopAll();


Ok, merci. Je ne m'y étais pas totalement pris de cette  manière. J'avais essayer quelques copier-coller puis j'avais essayer  ensuite en passant par "file- import".... vais réessayer on alors je  ferais une autre animation. Merci
====Re: Re: stopper vidéo et son -- [[Utilisateur:Raphaël Gracia|Raphaël Gracia]] 31 octobre 2012 à 17:33 (CET)====


=====Re: Re: Re: Insérer l'animation de l'ex.2 dans l'ex.3 -- [[Utilisateur:Daniel K. Schneider|Daniel K. Schneider]] 31 octobre 2010 à 18:15 (CET)=====
Yesss. ça marche. Merci


File->Import peut marcher pour des *.swf simples (donc un fichier compilé). Enfin essayez juste de copier/coller des trucs entre fichiers. Vous en aurez besoin tout le temps pour éviter de refaire des choses que vous avez envie de reprendre.
== Animations simultanées -- [[Utilisateur:Saoussane.rrhioua|Saoussane Rrhioua]] 5 novembre 2011 à 02:28 (CET) ==


== next frame / previous frame -- [[Utilisateur:Lucie.Marchon|Lucie.Marchon]] 4 novembre 2010 à 13:58 (CET) ==
Bonsoir,
 
ça fait un moment que je bloque sur un problème, et pour ne pas perdre plus de temps je pose cette question.
 
Mon problème est que j'utilise 3 éléments externes (vidéo youtube, son enregistré depuis youtube et une animation externe)
 
le problème est que quand je clique sur plusieurs boutons toutes les différents éléments sont activent. J'ai essayé bcp de possibilités chaque fois un truc ne joue pas.
 
je mets ici le lien [http://tecfaetu.unige.ch/etu-maltt/R2D2/rrhious0/stic-1/ex3/Animation_Boutons.fla fla] et [http://tecfaetu.unige.ch/etu-maltt/R2D2/rrhious0/stic-1/ex3/Animation_Boutons.swf swf] si vous pouvez trouver l'erreur.
 
Merci d'avance.
 
===Re: Animations simultanées -- [[Utilisateur:Daniel K. Schneider|Daniel K. Schneider]] 5 novembre 2011 à 11:50 (CET)===
 
Oui à chaque fois que lancez qc. et notamment le son, cela continue a "tourner". Donc il faut arrêter manuellement tout ce tourne et c'est assez pénible à faire car il n'existe à ma connaissance pas de event de type "frame unload" qu'on pourrait utiliser pour lancer une fonction de nettoyage dès qu'on sort du frame.
 
Etant donné que vous déjà fait un travail remarquable (la note de 6 assurée si vous faites aussi le rapport et la contribution wiki), je suggère pour le moment d'arrêter juste les sons et c'est très facile à faire. Pour chaque bouton, vous ajoutez une ligne comme ci-dessous:
 
<source lang="actionscript">
function fl_ClickToGoToAndStopAtFrame_1(event:MouseEvent):void
{
trace(" Bouton Home appuyé");
        // Tuer tous les sons.
        SoundMixer.stopAll();
gotoAndStop(1);
}
</source>
 
Donc SoundMixer est le nom d'une classe et stopAll() est une méthode de classe. Autrement dit, la ligne "marche tel quel".
 
voir:
http://edutechwiki.unige.ch/fr/Flash_CS4_-_Son#Avec_ActionScript
 
===Re: Animations simultanées -- [[Utilisateur:Ortaer|Ortaer]] 5 novembre 2011 à 12:07 (CET)===
 
Salut Saoussane,
 
Je pense que ton problème, comme tu as dit, est que tu appelles les vidéos au dehors, avec les liens. Moi j’ai mit tous dans le même fichier de .swf. Puis j’ai appelé dedans du fichier. Peut-être tu peux essayer ça.
 
En plus, je n’ai pas utilisé les buttons déjà préparé mais je pense qu’il y a un petit problème entre les codes et les “instance name” des boutons.  Mais je ne suis pas sûre. En plus je pense que tu dois mettre le code de "SoundMixer.stopAll();" avant le chaque "gotoandstop".
 
====Re: Re: Animations simultanées -- [[Utilisateur:Ortaer|Ortaer]] 5 novembre 2011 à 12:10 (CET)====
 
Je n'avais pas vu le réponse de M. Daniel. Maintenant mienne est inutile :)
 
== Démarrer-arrêter une animation depuis la timeline du clip -- [[Utilisateur:Margot.baehler|Margot.baehler]] ([[Discussion utilisateur:Margot.baehler|discussion]]) 23 novembre 2013 à 12:39 (CET) ==


Bonjour,
Bonjour,
J'ai deux frames pour l'instant, j'ai un bouton.
Ma première frame est stoppé, j'ai inséré cette fonction


            movieClip_3.addEventListener(MouseEvent.CLICK, fl_ClickToGoToNextFrame);
Voilà maintenant 1h30 que je me triture les méninges avec un souci dans mon dispositif pour l'exercice 3.  
            function fl_ClickToGoToNextFrame(event:MouseEvent):void { nextFrame(); }
J'ai créé 2 boutons dans mon animation pour start/stop l'animation anim_sapin. Mais un message d'erreur s'affiche comme quoi le nom donné à mon animation est une propriété indéfinie...
Je ne comprends pas ce qui ne fonctionne pas...
 
Je vous mets le lien du fichier .fla ici :
 
http://tecfaetu.unige.ch/etu-maltt/tetris/baehlem0/stic-1/ex3/consignes.fla
 
Je pensais créer des événements liés aux boules du sapin. Par exemple, l'utilisateur clique sur la boule jaune et elle disparaît, etc. Mais les boules étant inclues dans une animation, est-ce tout de même possible ?
 
En espérant que vous pourrez m'aider, je vous souhaite une belle journée,
Margot
 
===Re: Démarrer-arrêter une animation depuis la timeline du clip -- [[Utilisateur:Margot.baehler|Margot.baehler]] ([[Discussion utilisateur:Margot.baehler|discussion]]) 23 novembre 2013 à 15:13 (CET)===
 
Re-bonjour,
 
Après plusieurs tentatives et réflexions, j'ai réussi à faire marcher mon animation via les boutons play et stop. En fait, il fallait mettre le code dans la timeline principale en faisant référence aux boutons se trouvant dans l'animation.
 
Mais voilà, je souhaiterais créer des événements liés aux boules du sapin qui se trouvent dans l'animation. J'ai utilisé le code d'exemple avec les chats vu en cours pour tenter de déplacer ma boule rouge quand on clique dessus. Mais cela ne fonctionne pas et les boutons ne marchent plus non plus...
 
Voici le fichier fla sans ajout du code "moving", tout fonctionne : http://tecfaetu.unige.ch/etu-maltt/tetris/baehlem0/stic-1/ex3/consignes_test_sans_ev.fla
Voici le fichier fla avec le code "moving", tout bug : http://tecfaetu.unige.ch/etu-maltt/tetris/baehlem0/stic-1/ex3/consignes.fla
 
Est-ce que le code placé n'est pas au bon endroit ? Faut-il que je fasse référence à la boule rouge d'une autre manière ?
 
En espérant que vous pourrez m'aider,
Bonne fin d'après-midi !


qui amène à la frame suivante lorsqu'on clique sur un bouton (en passant, comment faire pour que la souris se change en main sur le bouton?).
Margot
Puis, sur cette frame, j'ai mis le même code avec prevframe() ou alors go to frame(1). Ca marche, je retourne sur la première frame quelle que soit la manière, mais là, et c'est mon problème, le bouton n'est plus actif. Je ne peux plus cliquer dessus pour retourner à la seconde frame. Pourquoi?


===Re: next frame / previous frame -- [[Utilisateur:Lucie.Marchon|Lucie.Marchon]] 4 novembre 2010 à 14:06 (CET)===
===Re: Re: Démarrer-arrêter une animation depuis la timeline du clip -- [[Utilisateur:Daniel K. Schneider|Daniel K. Schneider]] ([[Discussion utilisateur:Daniel K. Schneider|discussion]]) 23 novembre 2013 à 19:25 (CET)===
Plusieurs erreurs:


Je ne sais pas pourquoi, mais ça marche maintenant. J'ai mis le bouton sur une autre frame, je l'ai retransformé en symbole... je ne sais pas ce qu'il s'est vraiment passé... Mais je suis contente que ça marche!!!
(1) Vous avez une erreur de syntaxe et Flash le dit:
Scene 1, Layer 'actions', Frame 1, Line 26 1086: Syntax error: expecting semicolon before dot.
Une variable ne peut pas avoir un point dans son nom:


===Re: next frame / previous frame -- [[Utilisateur:Daniel K. Schneider|Daniel K. Schneider]] 4 novembre 2010 à 14:11 (CET)===
<source lang="actionscript3">
anim_sapin.boule_rouge.buttonMode = true;


Tant mieux :)
/* ---- moving ---- */
anim_sapin.boule_rouge.addEventListener(MouseEvent.CLICK, moveBoule);
// cat can be in original position or not (true,false)
// NOM DE VARIABLE CORRIGE
var anim_sapin_boule_rouge_ori_pos = true;


Faut que le bouton soit dans un layer qui sera affiché tout le long. (Normalement on met le bouton dans un premier frame, puis aller dans dernier frame de et F5 (insert frame)). Maintenant, si votre bouton est tjrs visible et ne réagit pas, il s'agissait probablement d'un deuxième bouton que vous avez recopié. Puis effectivement un bouton doit être une forme de symbole (un bouton, un clip, etc.)
function moveBoule(event:MouseEvent):void {
if (anim_sapin_boule_rouge_ori_pos == true)
{
anim_sapin.boule_rouge.x += 200;
anim_sapin.boule_rouge.y += 200;
anim_sapin.boule_rouge_ori_pos = false;
}
else
{
anim_sapin.boule_rouge.x -= 200;
anim_sapin.boule_rouge.y -= 200;
anim_sapin_boule_rouge_ori_pos = true;
}
}
</source>


Ensuite faites aussi gaffe au dernier/premier frame. Le next va se planter au dernier frame. Lire peut-être:
Ensuite vous avez un problème plus méchant. L'objet anim_sapin n'existe pas au moment ou Flash regarde le script. Plusieurs solutions:  


http://edutechwiki.unige.ch/fr/Flash_CS4_-_Boutons#Cr.C3.A9er_vos_propres_boutons
(1) Vous mettez ce code dans le frame où la boule apparaît, donc DANS le clip au # de frame 20, je ferai cela plutôt. Dans ce cas, il faut virer "anim_sapin." puisque le code AS est dans le script maintenant.


===Re: stic/ex.3 -  -- [[Utilisateur:Kcoopoos|Kcoopoos]] 4 novembre 2010 à 17:12 (CET)===
(2) Vous affichez la boule au début du clip. Dans ce cas, vous pouvez la cacher et la rendre visible plus tard.


Mais dans les deux cas, vous devez donner un nom à l'instance (vous l'avez oublié aussi). Donc clic sur la boule et la nommer "boule_rouge".


après une journée entière j'ai enfin réussi à créer mon site et à paramétrer mes boutons. Je bloque juste sur le dernier boutons "crédits" quand je dirige mon moutons déjà parmétré vers le clickhander correspondant, soit le n°5, un message d'erreur me dit " Scene 1, layer `script, Frame 1, line 16 1120: Access of undefined property clickhander5". Je ne comprends pas car j'ai pourtant déjà créer mon claque et tout devrait jouer mais le message d'erreur persiste.
Pour finir (important): Dans publish setting, cocher "Permit debugging".


====Re: Re: stic/ex.3 - -- [[Utilisateur:Daniel K. Schneider|Daniel K. Schneider]] 4 novembre 2010 à 17:35 (CET)====
=====Re: Re: Re: Démarrer-arrêter une animation depuis la timeline du clip -- [[Utilisateur:Margot.baehler|Margot.baehler]] ([[Discussion utilisateur:Margot.baehler|discussion]]) 25 novembre 2013 à 10:13 (CET)=====


cela veut dire que la fonction ''clickhander'' n'est pas défini.
Merci pour votre réponse, je comprends mieux mes erreurs.


Si vous regardez de '''très très''' près: vous avez oublié le "l" dans ''clickhander''.
Je me demandais également s'il est mieux de mettre le code concernant la gestion des événements qui vont intervenir sur les boules dans la timeline de l'anim_sapin qui contient les boules ou alors dans la timeline principale ( sachant que je devrais alors faire référence aux boules qui se trouvent dans l'animation pour qu'il les trouve. P.ex : anim_sapin.boule_rouge.buttonMode = true; )


Ce type d'erreur est parmi les plus méchants pour les débutants, le message d'erreur de Flash n'est pas très parlant (un jour je pourrais essayer expliquer pourquoi flash considère que le nom d'une fonction est une propriété de la timeline ... )
La syntaxe : anim_sapin.boule_rouge.buttonMode = true; qui permet d'indiquer le chemin pour rechercher la boule rouge qui se trouve dans l'anim_sapin qui n'est pas dans la timeline principale, est-elle d'ailleurs bien correcte ?


PS: Si cela vous a pris une journée entière pour arriver ici, vous êtes plutôt rapide. Le budget par exercice est (2 crédits - 6h de contact) / 3 = 60 - 6 / 3 = 18 heures :)
Bonne journée à vous,


====Re: Re: Re: stic/ex.3 -  -- [[Utilisateur:Kcoopoos|Kcoopoos]] 4 novembre 2010 à 19:48 (CET)====
Margot


Non, j'avais commencé dès le début du mois avec l'exercice 1 et 2. J'ai pris une journée pour créer l'animation Flash de type site, soit début ce matin et fini seulement maintenant. J'ai donc largement dépassé le quota de 18 heures pour la totalité des exercices, mais je n'ai pas compter.  
====Re: Re: Re: Re: Démarrer-arrêter une animation depuis la timeline du clip -- [[Utilisateur:Daniel K. Schneider|Daniel K. Schneider]] ([[Discussion utilisateur:Daniel K. Schneider|discussion]]) 25 novembre 2013 à 11:33 (CET)====


Je me suis débrouillé autrement pour ma difficulté liée au dernier bouton. L'erreur n'était pas une erreur liée au "l" mais merci quand même ! B
Cette syntaxe est correcte sous deux conditions:
* (1) Il existe un object ''anim_sapin'' dans la timeline où se trouve se code (dans votre cas, la timeline principale)
* (2) Il existe un objet ''boule_rouge'' dans la timeline de l'objet anim_sapin.


====Re: Re: Re: stic/ex.3 -  -- [[Utilisateur:Daniel K. Schneider|Daniel K. Schneider]] 5 novembre 2010 à 01:22 (CET)====
Moi je mettrais certainement tout le code "boules" (donc aussi les événements) dans le clip de l'anim_sapin. Mais là aussi attention: les boules doivent exister au moment où le code est vu par Flash. Dans ce cas, le code devient juste ''boule_rouge.buttonMode=true'' etc.


Tant mieux, vous vous en sortez bien :) Mais j'aimerai quand-même ajouter un dernier mot pour les autres, c-a-d ceux et celles qui n'ont pas encore terminé ou qui n'ont même pas commencé.
Cela devient très compliqué au bout d'un moment et c'est pour cela que les développeurs Flash n'utilisent peu le scripting dans la timeline, mais plutôt une classe externe.... mais bon, cela demande des connaissances assez avancés en programmation. Envisagez éventuellement de prendre un cours d'informatique en 2ème année :)
* Donc c'est 18 heures '''par exercice''' (pas pour la totalité ...). La totalité pour la période 1, c'est 54 heures, donc 10 "grosses" demie-journées...
* Si vous voulez une réponse rapide, essayez de nous donner un max. d'information. Par exemple
** déposer le ficher *.fla sur le serveur (avec un lien ici) pour que puisse regarder
** ... ou encore copier/coller le code actionscript ici ''plus'' les messages d'erreurs, si vous pensez qu'il s'agit juste un problème de code
* Ensuite, je répète, vous apprenez sans doute autant en faisant tout seul, mais cela prend plus de temps (donc plus que 18h/exercice). A priori il faut penser à demander de l'aide au bout de 30 minutes de tentatives infructueuses. Un cours d'introduction à l'informatique à l'Unige - et de cela qu'il s'agit ici - vaut normalement 9 crédits dont au moins 4 heures de TP/semaine pour justement aider les étudiant(e)s à résoudre des problèmes. Autrement dit, c'est normal que vous n'arrivez pas à trouver seul(e)s la solution à tout ...
* En ce qui concerne mon diagnostic ci-dessus: La fonction n'a pas été définie, mais effectivement difficile à savoir de quelle façon sans avoir vu le code. L’hypothèse d'épellation a été un "shot in the dark"...


Oh la la, je fais quoi avec ce wiki.. Je peux pas annuler ce message?
== Boucle for -- [[Utilisateur:Valerie.follonier|Valerie.follonier]] ([[Discussion utilisateur:Valerie.follonier|discussion]]) 24 novembre 2013 à 19:12 (CET) ==


== Exercices 3 et fichiers *.fla -- [[Utilisateur:Kcoopoos|Kcoopoos]] 5 novembre 2010 à 09:32 (CET)==
Bonjour,


Merci  pour ces informations. Oui effectivement, chaque exercice prends  énormément de temps, mais au final l'important c'est qu'on ait appris de nouvelles choses :-).
Dans mon ex3, je voudrais tester la position de plusieurs de mes objets. Il s'agit de pommes. Elles ont tous le même nom avec un chiffre. (ex pommer1, pommer2,..)
Je voudrais utiliser une boucle for pour tester la position de toutes mes pommes avec une seule instruction.


J'ai déposer mes fichiers *.fla et *.swf de  l'exercice 3 sur le serveur Tecfa sous mon login Coopoos0, mais sur ma  page travaux je n'arrive qu'à faire apparaître le fichier *.swf, la page  avec la totalité des mes exercices reste sur le serveur mais quand je  transfère ma page rapport que j'ai nommé index.html, elle est cachée par  mon rapport (pareil pour l'ex.2). Cela ne me pose pas trop de soucis  parce que je sais que si j'enlève le rapport, je peux la retrouver.  Seulement je voulais savoir si vous désiriez que l'on intègre aussi le  lien vers le fichier *.fla sur notre page travaux ou si le fait de la  mettre sur le serveur suffisait pour vous ??? et si vous le voulez  comment faire pour que le lien soit direct ? J'ai déjà créé pls  répertoires comme ex.1, ex.2, ex.3, mais je pensais encore en créer à  l'intérieur de chaque répertoire d'exercice ?
J'ai fait le test de position pour une pomme (sans la boucle) et ça marche. C'est donc la boucle qui me pose problème.
Je vous remercie encore un fois pour votre aide et conseils.


===Re: Exercices 3 et fichiers *.fla -- [[Utilisateur:Daniel K. Schneider|Daniel K. Schneider]] 5 novembre 2010 à 10:51 (CET)===
J'ai inscrit :


Il est important que l'on trouve '''tout'' dans le rapport et que l'on retrouve le rapport sur votre page travail. Donc:
  function fl_ClickToGoToAndStopAtFrame(event:MouseEvent):void
* La page travail doit au moins avoir un lien vers stic-1/ex3/index.html
  { compteurR =0;
* La page stic-1/ex3/index.html (donc la page rapport) doit avoir un lien vers tous les fichiers (*.fla, *.swf en tout cas)
    for (var i:int = 1; i <= 5; i++) {
          if (pommer+i.x <=-366 && pommer+i.x >=-566 && pommer+i.y <=212 && pommer+i.y >= 71) {
              compteurR += 1;}}
    if(compteurR==3){gotoAndStop(31);}}


Le *.swf ne doit pas être incrusté dans la page travail (enfin si vous le désirez vous pouvez et dans ce cas il faut intégrer le code HTML que vous trouvez dans le HTML crée par Adobe quand vous cliquez sur publish...), mas bon un simple lien me suffit
Liste des erreurs :
< a href="fichier.swf>Fichier swf</a>


Pour finir, si vous avez un composant vidéo, il faut également transférer le fichier pour le composant sur notre serveur. Le fichier a nom compliqué, par exemple ''SkinUnderAllNoFullscreen.swf'' (cela dépend du skin que vous utilisez)
Symbol 'pommesTombent', Layer 'Actions', Frame 30, Line 163 1120: Access of undefined property pommer.


Donc: '''tester''' si cela marche chez nous.
Symbol 'pommesTombent', Layer 'Actions', Frame 30, Line 163 1119: Access of possibly undefined property x through a reference with static type int.


====Re: Re: Exercices 3 et fichiers *.fla -- [[Utilisateur:Kcoopoos|Kcoopoos]] 5 novembre 2010 à 12:08 (CET)====
Symbol 'pommesTombent', Layer 'Actions', Frame 30, Line 163 1120: Access of undefined property pommer.


Très bien d'accord, j'intégrerais donc mes fichiers *.fla dans mes rapports html. Merci !
Symbol 'pommesTombent', Layer 'Actions', Frame 30, Line 163 1119: Access of possibly undefined property x through a reference with static type int.


== intégration d'une vidéo -- [[Utilisateur:Lucie.Marchon|Lucie.Marchon]] 5 novembre 2010 à 02:45 (CET) ==
Symbol 'pommesTombent', Layer 'Actions', Frame 30, Line 163 1120: Access of undefined property pommer.


J'ai quelques difficultés à intégrer une vidéo dans ma séquence.
Symbol 'pommesTombent', Layer 'Actions', Frame 30, Line 163 1119: Access of possibly undefined property y through a reference with static type int.


- quels sont les fichier que l'on peut intégrer directement depuis le web?J'ai essayé de le faire avec youtube, j'ai presque réussi, la séquence apparaissait grâce à une belle incantation action script, mais je ne suis pas parvenue à la faire s'arrêter comme je le voulais, alors j'ai abandonné.J'ai alors pris un petit bout de film qu'il y avait sur mon portable, il a fallu le convertir, mais tout s'est fait automatiquement et correctement. Il semble apparaître sur la frame sur laquelle je l'ai mis, mais on n'entend que le son quand je fais une prévisualisation. QUelle peut être la cause d'une telle étrangeté?
Symbol 'pommesTombent', Layer 'Actions', Frame 30, Line 163 1120: Access of undefined property pommer.


===Re: intégration d'une vidéo -- [[Utilisateur:Lucie.Marchon|Lucie.Marchon]] 5 novembre 2010 à 09:17 (CET)===
Symbol 'pommesTombent', Layer 'Actions', Frame 30, Line 163 1119: Access of possibly undefined property y through a reference with static type int.


Bon, au réveil, ce matin, j'ai pu voir que j'avais pas la vidéo dans la bonne frame.... Mais le son de la vidéo reste toujours quand je retourne dans la première frame, malgré un stop(); et un SoundMixer.stopAll(); Là, je ne sais pas comment m'y prendre.


====Re: Re: intégration d'une vidéo -- [[Utilisateur:Lucie.Marchon|Lucie.Marchon]] 5 novembre 2010 à 11:04 (CET)====
Pouvez-vous m'indiquer mon erreur?
http://tecfaetu.unige.ch/etu-maltt/tetris/folloni8/stic-1/ex3/ex3.fla


Et bien je crois que je m'en suis sortie avec un simple
<pre>occurrencevideo.pause();</pre>




dans la fonction du click qui retourne à la première frame, évidemment avant le gotoAndStop(1);.
Bonne soirée!


===Re: intégration d'une vidéo -- [[Utilisateur:Daniel K. Schneider|Daniel K. Schneider]] 5 novembre 2010 à 10:36 (CET)===
Valérie


Etonnant que le SoundMixer ne marche pas, faudrait que je regarde cela un jour. Etes-vous sure que cette ligne de code est exécuté ?? (insérer un trace pour voir). Ceci dit, le problème est plus large, il faudrait effectivement mettre la vidéo en pause pour pouvoir la reprendre.
===Re: Boucle for -- [[Utilisateur:Daniel K. Schneider|Daniel K. Schneider]] ([[Discussion utilisateur:Daniel K. Schneider|discussion]]) 25 novembre 2013 à 12:23 (CET)===


En fait vous utilisez un composant fait par Google (donc pas du tout celui de Adobe). Dans la doc que vous avez mis en lien, on voit que:
Faut convertir le integer en string d'abord. A part cela, je pense qu'il serait plus pratique de placer les pommes avec ActionScript (un seul code pour toutes les pommes) et stocker chaque pomme dans un array. Chaque pomme aura aussi des propriétés de type ''x-ori'' et ''y-ori'' pour comparer. En gros, on peut couper la taille de votre code par 10 ou 20. Enfin, pour ce cours, vous faites ce que vous voulez :)
player.pauseVideo():Void
:: Pauses the currently playing video. The final player state after this function executes will be paused (2) unless the player is in the ended (0) state when the function is called, in which case the player state will not change.


Pour cela il y a deux techniques (code pas testé, faites-moi savoir ....)
* Intercepter le fait que l'utilisateur quitte le frame, plus compliqué. Il me semble que AS3 ne connait pas de event "onleaveframe". A la limite on peut tester si la video n'est plus sur la stage
<source lang="actionscript">
<source lang="actionscript">
player.addEventListener(Event.REMOVED_FROM_STAGE, arreter);
function fl_ClickToGoToAndStopAtFrame(event:MouseEvent):void
function arreter (event:Event) {
{
  player.pauseVideo();
compteurR = 0;
for (var i:int = 1; i <= 5; i++)
{
var pommer = pommer + String(i); // Type conversion
if (pommer.x <= -366 && pommer.x >= -566 && pommer.y <= 212 && pommer.y >= 71)
{
 
compteurR +=  1;
}
}
 
 
if (compteurR==3)
{
gotoAndStop(31);
}
 
}
}
</source>
</source>
* Mettre la ligne ''player.pauseVideo():Void'' dans le code pour la navigation. Mais là il va avoir une complication, le programme se plantera probablement s'il ne connait pas la variable ''player'' dans un autre frame. Essayez:
http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f87.html
 
====Re: Re: Boucle for -- [[Utilisateur:Valerie.follonier|Valerie.follonier]] ([[Discussion utilisateur:Valerie.follonier|discussion]]) 25 novembre 2013 à 13:11 (CET)====
 
J'ai inséré votre proposition dans mon code mais il y a une nouvelle erreur :
 
        ReferenceError: Error #1069: La propriété x est introuvable sur String et il n'existe pas de valeur par défaut.at ex3_fla::pommesTombent_1/fl_ClickToGoToAndStopAtFrame()
 
Y-a t'il une solution?
 
Sinon pour votre suggestion de placer les pommes avec un seul code ActionScript, qu'entendez-vous par là?
 
Bonne journée,
 
Valérie
 
====Re: Re: Boucle for -- [[Utilisateur:Daniel K. Schneider|Daniel K. Schneider]] ([[Discussion utilisateur:Daniel K. Schneider|discussion]]) 25 novembre 2013 à 13:56 (CET)====
 
Oui normal, je n'ai pas assez réfléchi, cela crée un string sans valeur. Ceci devrait marcher mieux:
<source lang="actionscript">
<source lang="actionscript">
function aller_vers_prenez_votre_fonction (event:MouseEvent):void
function fl_ClickToGoToAndStopAtFrame(event:MouseEvent):void
{
{
  if (player){
compteurR = 0;
    player.pauseVideo();
for (var i:int = 1; i <= 5; i++)
    gotoAndStop('home');
{
  }
var pommer = "pommer" + String(i);// Type conversion
trace("pommer=" + pommer);
trace("this[pommer]=" + this[pommer]);
if (this[pommer].x <= -366
&& this[pommer].x >= -566
&& this[pommer].y <= 212
&& this[pommer].y >= 71)
{
 
compteurR +=  1;
}
}
 
 
if (compteurR==3)
{
gotoAndStop(31);
}
 
}
}
</source>
</source>


== exercice 3 page d'accueil ==
Maintenant pour expliquer l'autre solution, je n'ai pas le temps pour plus de détails, rapplelez-moi si nécessaire.


Bonjour,
En gros vous faites:
Est-ce que la page d'accueil de l'exercice 3 où on doit faire un lien avec les 4 pages, vidéo, animation peut être aussi une page html ou elle doit être une page en flash .swf. Si cette page d'accueil doit être réalisé en flash, peut-on lui donner n'importe quel nom de fichier ou faudrait-il aussi l'appeler index ou welcome...?
<pre>
Merci d'avance pour la réponse et bonne journée
var liste_pommes = new Array;


Nancy
function creer_pomme (x,y) {
var pomme = new PommeRouge;
pomme.addEventListener(....);
pomme.x = x;
pomme.y = y;
pomme.x-ori = ....
// etc.
stage.addChild(pomme);
liste_pommes[] = pomme;
}
</pre>


===Re: exercice 3 page d'accueil -- [[Utilisateur:Daniel K. Schneider|Daniel K. Schneider]] 5 novembre 2010 à 10:57 (CET)===
creer_pomme(10,200);
creer_pomme(100,220);


Non cette page '''doit''' être en HTML, puisqu'il s'agit du rapport. Il est difficile d'écrire du texte avec Flash, on peut mais c'est pas évident ...
Ensuite vous pouvez traiter:
<pre>
for each (var pomme:MovieClip in liste_pommes) {
... voir si pomme.x == pomme.autre chose etc.
}
</pre>


Pour répondre à la question technique. De toutes les façons, on sert le Flash en règle générale à l'intérieur d'une page Flash. Donc la page s'appellerait toujours index.html (même s'il n'y avait que du Flash dedans)
====Re: Re: Boucle for -- [[Utilisateur:Valerie.follonier|Valerie.follonier]] ([[Discussion utilisateur:Valerie.follonier|discussion]]) 25 novembre 2013 à 15:53 (CET)====


PS: Pour qu'on soit plus efficace: Utilisez le bouton '''Ajouter un sujet''' en haut de la page ou encore "répondre".... tout à l'heure vous avez cassé le code wiki. Ensuite mettez un '''sujet''' ... pas juste ''exercice 3'''. Tout ici concerne l'ex3.
Je vous remercie cette fois tout fonctionne parfaitement!


== tween dans la bibliothèque -- [[Utilisateur:Lucie.Marchon|Lucie.Marchon]] 5 novembre 2010 à 11:12 (CET) ==
Bonne fin de journée,


que veut dire exactement:
Valérie
"notamment je veux voir aucun tween objet dans votre library !!"


===Re: tween dans la bibliothèque -- [[Utilisateur:Daniel K. Schneider|Daniel K. Schneider]] 5 novembre 2010 à 11:16 (CET)===
== buttonMode et flat design (et bouton en flash aussi) -- [[Utilisateur:Damien Gauthier|Damien Gauthier]] ([[Discussion utilisateur:Damien Gauthier|discussion]]) 28 novembre 2013 à 23:35 (CET) ==


C'est lié au "tween classique" mal fait. CS3 avait autorisé les utilisateur à créer des motion tweens avec des non-symboles ou encore plusieurs symboles sur le même layer. Comme ceci ne peut pas fonctionner, Flash avait ensuite crée des structures complexes et inutilisable, donc ces "tween objects".
Bonjour !


... je peux enlever cette ligne, car avec CS5 cela n'arrive pratiquement plus :)
J'ai une question concernant l'utilisation de buttonMode.
En fait quand je regarde ce qui se passe avec de vrais boutons en flahs comme dans l'exemple de l'exercice 2 ici : http://tecfa.unige.ch/guides/flash/ex4/components-intro/flash-cs4-simple-slide-show-menu.swf
ils ne changent pas le pointeur de la souris...


===Re: tween dans la bibliothèque -- [[Utilisateur:Nancy.schuwey|Nancy]] 7 novembre 2010 à 15:47 (CET)===
Du coup, je me demandais si la consigne "C'est le même principe que pour les boutons. Il faudra aussi penser à changer la forme du curseur." était toujours d'actualité.
Je comprends poiur ce qui est des objets qui ne ressemblent pas à des boutons, mais pour ce qui est des rectangles du genre "flat design" comme on en trouve par exemple ici : http://ryankeeter.com/Media/Default/WindowsLiveWriter/ThoughtsonFlatUIDesignPatterns_B5AE/Flat-design_thumb.png


: Replace this text with your reply
faut-il tout de meme changer le curseur ?
Merci pour votre réponse. J'ai nommé tous mes pages d'accueil où il y a les rapports en welcome.html pour tous les exercices.


== Il n'y a rien qui marche !  -- [[Utilisateur:Vjollca Ahmeti|Vjollca Ahmeti]] 7 novembre 2010 à 15:49 (CET) ==
Merci beaucoup et bonne journée,
Damien


Bonjour,
===Re: buttonMode et flat design (et bouton en flash aussi) -- [[Utilisateur:Daniel K. Schneider|Daniel K. Schneider]] ([[Discussion utilisateur:Daniel K. Schneider|discussion]]) 29 novembre 2013 à 02:49 (CET)===


Aidez moi, je désespère !!! Ca fait plusieurs jours que je suis sur cet exercice et j'ai tout lu ! Tous les tutoriels flash, toutes les sujets de cette discussion pour essayer de réussir, mais je n'y arrive pas. Je suis consciente qu'on est à quelques heures de la reddition finale, mais tant pis si je suis pénalisée pour du retard, ce qui me rend dingue, c'est de ne pas comprendre pourquoi ça marche pas.  
Non du tout, c'est à vous de décider. Je pense qu'il est préférable d'avoir une petite animation lors du mouse-over, mais cela ne veut pas dire qu'il faut changer le curseur.... Finalement, si vous pouvez justifier un design simple sans aucune animation cela me va aussi. Faut juste trouver les bons arguments :)


Voici mon exercice : [http://tecfaetu.unige.ch/etu-maltt/qwerty/ahmetiv5/stic_1/ex3/site_web_afm.fla ex3_vjollca_ahmeti]
====Re: Re: buttonMode et flat design (et bouton en flash aussi) -- [[Utilisateur:Damien Gauthier|Damien Gauthier]] ([[Discussion utilisateur:Damien Gauthier|discussion]]) 5 décembre 2013 à 13:42 (CET)====


Pour l'instant, j'ai réussi à placer des boutons, à les nommer et à changer l'étiquette. J'ai bien fait attention à leur nom, et ce sont tous des instances différentes. J'ai aussi réussi à inséré un son.  
Merci !
J'ai donc choisi une solution mixte ;-)
Les boutons en mouseover avec changement de couleur et les objets moins conventionnels avec changement de curseur en plus (enfin vous verrez bien ;-) ).


Les problèmes que j'ai sont les suivants :  
== Importer un fichier mp3 dans flash -- [[Utilisateur:Mfallouji|Mohamed A.]] ([[Discussion utilisateur:Mfallouji|discussion]]) 5 décembre 2013 à 14:03 (CET) ==


- Je n'arrive pas à inséré une vidéo! Une fois que j'ai glissé sur la bonne frame le composant FLVPlayback, j'ouvre le panneau Component Inspector et là je ne peux rien faire de plus. Quand il est écrit dans le tutoriel qu'il faut choir un skin et mettre l'url, je ne voit pas du tout comment il faut faire parce qu'il n'y a rien dans le panneau qui prévu pour ça! J'ai l'impression de ne pas avoir le bon panneau sous les yeux! Dans Component Insprector, il y a trois onglets : Parameters, Bindings, et Schema. Ceux-ci ne me permettent pas de faire ce qui est indiqué dans indiqué dans le tutoriel. Sinon, la vidéo que je veux insérée est de très grande taille (env. 50 MO, et mon fichier flash fait déjà 16 MO). Elle se trouve dans le même répertoire que mon exercice. Est-ce c'est un problème? Je n'ai pas trouver de vidéo en rapport avec ce que je voulais faire et qui soit courte. Sauf sur Youtube, mais on ne peut pas télécharger les vidéos de Youtube.
Bonjour,
 
J'ai pu, sans problème, importer un premier fichier mp3 dans la librairie. Malheureusement, je n'arrive plus du tout à importer d'autres fichiers. J'ai systématiquement le message: "Couldn't import C:\......\fichier.mp3". J'ai pensé que mon fichier était corrompu mais j'ai le même souci avec d'autres fichiers. Je peux, par contre, sans aucun problème mettre à jour celui que j'ai importé. Auriez-vous une idée? Merci d'avance, Cordialement. Mohamed.
- Je n'arrive pas à inséré l'animation que j'ai faite à l'exercice 2. J'ai suivi à la lettre tous les conseils que vous avez donner à Karine, sans succès. Je ne comprend pas ce que je fais faux! J'ai crée un nouveau clip que j'ai appelé ''anim'', je vérifie bien de travailler dans la timeline de ce clip et non dans la main timeline. Je vais copier tous mes layers et mes frames de l'exercice 2 et je ne peux pas les coller dans la timeline du clip ''anim'' de l'exercice 3. (J'ai bien évidemment copier tous les clips de l'exercice 2 dans la librairie de l'exercice 3). Alors je comprend pas pourquoi ça ne marche pas.
 
- Enfin, les boutons! J'ai fait attention à tous: les noms de mes boutons, les noms de mes frames, l'orthographe dans le code et ça ne marche toujours pas. L'erreur qu'il me met est la même que Karine : il me dit que j'ai des éléments non définis. Voici mon code :


stop ();
===Re: Importer un fichier mp3 dans flash -- [[Utilisateur:Daniel K. Schneider|Daniel K. Schneider]] ([[Discussion utilisateur:Daniel K. Schneider|discussion]]) 5 décembre 2013 à 14:41 (CET)===
btn_accueil.addEventListener(MouseEvent.CLICK, clicaccueil);
btn_explication.addEventListener(MouseEvent.CLICK, clicexplication);
btn_animation.addEventListener(MouseEvent.CLICK, clicanimation);
btn_video.addEventListener(MouseEvent.CLICK, clicvideo);
function clicaccueil (event:MouseEvent) {gotoAndStop("faccueil"); }
function clicexplication (event:MouseEvent) {gotoAndStop("fexplication"); }
function clicanimation (event:MouseEvent) {gotoAndPlay("fanimation"); }
function clicvideo (event:MouseEvent) {gotoAndStop("fvideo"); }


A mon avis c'est l'encodage du MP3. Trop de qualité probablement et Flash n'aime pas les gros trucs. Donc:


Et voici le message d'erreur qu'il me met :
* Soit réduire la qualité avec un outil comme audacity (ou plus simple)
[http://tecfaetu.unige.ch/etu-maltt/qwerty/ahmetiv5/stic_1/ex3/erreur.PNG erreur]
* Soit lire comme fichier externe. Lire http://edutechwiki.unige.ch/fr/Flash_CS4_-_Son#Avec_ActionScript


J'ai vérifier au moins 30 fois ! Je ne comprend pas ce qu'il y a de faux. J'ai bien vérifié le nom de mes boutons. J'ai même changer de nom pour être sûre que ça ne fasse pas référence à autre chose (j'ai rajouter btn_  devant) et j'ai réécrit le script.
====Re: Re: Importer un fichier mp3 dans flash -- [[Utilisateur:Mfallouji|Mohamed A.]] ([[Discussion utilisateur:Mfallouji|discussion]]) 16 décembre 2013 à 13:59 (CET)====


Voilà, je suis assez coincée sur pas mal de problèmes et je ne peux pas avancé plus! J'espère que vous pourrez m'aidez. Merci d'avance.
Bonjour, Je me rends compte que je ne vous ai pas donné un retour sur ce point. J'ai effectivement pu faire le nécessaire en lisant le son comme fichier externe. Merci pour votre aide.

Dernière version du 16 décembre 2013 à 13:59

uploader la vidéo correctement-- Raphaël Gracia

Comment dois-je uploader la vidéo sur le serveur pour qu'elle s'affiche dans mon site flash?

Re: uploader la vidéo correctement-- Daniel K. Schneider 1 novembre 2012 à 17:46 (CET)

Elle doit être à l'endroit que vous indiquez dans votre fla.

  • A priori, il faut donc d'abord vérifier la propriété source dans les component parameters. Il est impératif que le chemin ne pointe pas sur un lieu obscur (genre partition windows ou mac perso). Je conseille d'indiquer seulement un nom de fichier.
Bon: Ma_video.flv
OK: ../videos/my_video.flv (mais ensuite faut répliquer cela sur le serveur)
Impossible: c:\Mes documents\....\my_video.flv
  • Ensuite il suffit de mettre la vidéo dans le même répertoire que le swf.

stopper vidéo et son -- Raphaël Gracia 31 octobre 2012

J'ai créé un petit site avec quatre boutons qui mènent vers quatre frames différentes. Une contient une vidéo, une autre une animation, et la dernière contient de la musique. Malheureusement, lorsque je change de page (=je quitte la frame), la vidéo et le son continuent, ce qui est assez gênant. Quelles commandes est-ce que je dois entrer pour arrêter tout ça ?

Re: stopper vidéo et son -- Daniel K. Schneider 31 octobre 2012 à 14:08 (CET)

Pour le moment, je vous conseille d'arreter seulement le son. Arreter la video est un peu compliquée.

La solution est ci-dessous dans un autre message. Enfin, dans le frame où se trouvent les boutons, il faut ajouter la ligne suivante dans chacune des fonctions qui sont déclenchées lorsque l'utilisateur clique sur un bouton. En gros, cela tue tous les sons.

SoundMixer.stopAll();

Re: Re: stopper vidéo et son -- Raphaël Gracia 31 octobre 2012 à 17:33 (CET)

Yesss. ça marche. Merci

Animations simultanées -- Saoussane Rrhioua 5 novembre 2011 à 02:28 (CET)

Bonsoir,

ça fait un moment que je bloque sur un problème, et pour ne pas perdre plus de temps je pose cette question.

Mon problème est que j'utilise 3 éléments externes (vidéo youtube, son enregistré depuis youtube et une animation externe)

le problème est que quand je clique sur plusieurs boutons toutes les différents éléments sont activent. J'ai essayé bcp de possibilités chaque fois un truc ne joue pas.

je mets ici le lien fla et swf si vous pouvez trouver l'erreur.

Merci d'avance.

Re: Animations simultanées -- Daniel K. Schneider 5 novembre 2011 à 11:50 (CET)

Oui à chaque fois que lancez qc. et notamment le son, cela continue a "tourner". Donc il faut arrêter manuellement tout ce tourne et c'est assez pénible à faire car il n'existe à ma connaissance pas de event de type "frame unload" qu'on pourrait utiliser pour lancer une fonction de nettoyage dès qu'on sort du frame.

Etant donné que vous déjà fait un travail remarquable (la note de 6 assurée si vous faites aussi le rapport et la contribution wiki), je suggère pour le moment d'arrêter juste les sons et c'est très facile à faire. Pour chaque bouton, vous ajoutez une ligne comme ci-dessous:

function fl_ClickToGoToAndStopAtFrame_1(event:MouseEvent):void
{
	trace(" Bouton Home appuyé");
        // Tuer tous les sons.
        SoundMixer.stopAll();
	gotoAndStop(1);
}

Donc SoundMixer est le nom d'une classe et stopAll() est une méthode de classe. Autrement dit, la ligne "marche tel quel".

voir: http://edutechwiki.unige.ch/fr/Flash_CS4_-_Son#Avec_ActionScript

Re: Animations simultanées -- Ortaer 5 novembre 2011 à 12:07 (CET)

Salut Saoussane,

Je pense que ton problème, comme tu as dit, est que tu appelles les vidéos au dehors, avec les liens. Moi j’ai mit tous dans le même fichier de .swf. Puis j’ai appelé dedans du fichier. Peut-être tu peux essayer ça.

En plus, je n’ai pas utilisé les buttons déjà préparé mais je pense qu’il y a un petit problème entre les codes et les “instance name” des boutons. Mais je ne suis pas sûre. En plus je pense que tu dois mettre le code de "SoundMixer.stopAll();" avant le chaque "gotoandstop".

Re: Re: Animations simultanées -- Ortaer 5 novembre 2011 à 12:10 (CET)

Je n'avais pas vu le réponse de M. Daniel. Maintenant mienne est inutile :)

Démarrer-arrêter une animation depuis la timeline du clip -- Margot.baehler (discussion) 23 novembre 2013 à 12:39 (CET)

Bonjour,

Voilà maintenant 1h30 que je me triture les méninges avec un souci dans mon dispositif pour l'exercice 3. J'ai créé 2 boutons dans mon animation pour start/stop l'animation anim_sapin. Mais un message d'erreur s'affiche comme quoi le nom donné à mon animation est une propriété indéfinie... Je ne comprends pas ce qui ne fonctionne pas...

Je vous mets le lien du fichier .fla ici :

http://tecfaetu.unige.ch/etu-maltt/tetris/baehlem0/stic-1/ex3/consignes.fla

Je pensais créer des événements liés aux boules du sapin. Par exemple, l'utilisateur clique sur la boule jaune et elle disparaît, etc. Mais les boules étant inclues dans une animation, est-ce tout de même possible ?

En espérant que vous pourrez m'aider, je vous souhaite une belle journée, Margot

Re: Démarrer-arrêter une animation depuis la timeline du clip -- Margot.baehler (discussion) 23 novembre 2013 à 15:13 (CET)

Re-bonjour,

Après plusieurs tentatives et réflexions, j'ai réussi à faire marcher mon animation via les boutons play et stop. En fait, il fallait mettre le code dans la timeline principale en faisant référence aux boutons se trouvant dans l'animation.

Mais voilà, je souhaiterais créer des événements liés aux boules du sapin qui se trouvent dans l'animation. J'ai utilisé le code d'exemple avec les chats vu en cours pour tenter de déplacer ma boule rouge quand on clique dessus. Mais cela ne fonctionne pas et les boutons ne marchent plus non plus...

Voici le fichier fla sans ajout du code "moving", tout fonctionne : http://tecfaetu.unige.ch/etu-maltt/tetris/baehlem0/stic-1/ex3/consignes_test_sans_ev.fla Voici le fichier fla avec le code "moving", tout bug : http://tecfaetu.unige.ch/etu-maltt/tetris/baehlem0/stic-1/ex3/consignes.fla

Est-ce que le code placé n'est pas au bon endroit ? Faut-il que je fasse référence à la boule rouge d'une autre manière ?

En espérant que vous pourrez m'aider, Bonne fin d'après-midi !

Margot

Re: Re: Démarrer-arrêter une animation depuis la timeline du clip -- Daniel K. Schneider (discussion) 23 novembre 2013 à 19:25 (CET)

Plusieurs erreurs:

(1) Vous avez une erreur de syntaxe et Flash le dit:

Scene 1, Layer 'actions', Frame 1, Line 26	1086: Syntax error: expecting semicolon before dot.

Une variable ne peut pas avoir un point dans son nom:

anim_sapin.boule_rouge.buttonMode = true; 

/* ---- moving ---- */
anim_sapin.boule_rouge.addEventListener(MouseEvent.CLICK, moveBoule);
// cat can be in original position or not (true,false)
// NOM DE VARIABLE CORRIGE
var anim_sapin_boule_rouge_ori_pos = true;

function moveBoule(event:MouseEvent):void {
	if (anim_sapin_boule_rouge_ori_pos == true)
	{
		anim_sapin.boule_rouge.x += 200;
		anim_sapin.boule_rouge.y += 200;
		anim_sapin.boule_rouge_ori_pos = false;
	}
	else
	{
		anim_sapin.boule_rouge.x -= 200;
		anim_sapin.boule_rouge.y -= 200;
		anim_sapin_boule_rouge_ori_pos = true;
	}
}

Ensuite vous avez un problème plus méchant. L'objet anim_sapin n'existe pas au moment ou Flash regarde le script. Plusieurs solutions:

(1) Vous mettez ce code dans le frame où la boule apparaît, donc DANS le clip au # de frame 20, je ferai cela plutôt. Dans ce cas, il faut virer "anim_sapin." puisque le code AS est dans le script maintenant.

(2) Vous affichez la boule au début du clip. Dans ce cas, vous pouvez la cacher et la rendre visible plus tard.

Mais dans les deux cas, vous devez donner un nom à l'instance (vous l'avez oublié aussi). Donc clic sur la boule et la nommer "boule_rouge".

Pour finir (important): Dans publish setting, cocher "Permit debugging".

Re: Re: Re: Démarrer-arrêter une animation depuis la timeline du clip -- Margot.baehler (discussion) 25 novembre 2013 à 10:13 (CET)

Merci pour votre réponse, je comprends mieux mes erreurs.

Je me demandais également s'il est mieux de mettre le code concernant la gestion des événements qui vont intervenir sur les boules dans la timeline de l'anim_sapin qui contient les boules ou alors dans la timeline principale ( sachant que je devrais alors faire référence aux boules qui se trouvent dans l'animation pour qu'il les trouve. P.ex : anim_sapin.boule_rouge.buttonMode = true; )

La syntaxe : anim_sapin.boule_rouge.buttonMode = true; qui permet d'indiquer le chemin pour rechercher la boule rouge qui se trouve dans l'anim_sapin qui n'est pas dans la timeline principale, est-elle d'ailleurs bien correcte ?

Bonne journée à vous,

Margot

Re: Re: Re: Re: Démarrer-arrêter une animation depuis la timeline du clip -- Daniel K. Schneider (discussion) 25 novembre 2013 à 11:33 (CET)

Cette syntaxe est correcte sous deux conditions:

  • (1) Il existe un object anim_sapin dans la timeline où se trouve se code (dans votre cas, la timeline principale)
  • (2) Il existe un objet boule_rouge dans la timeline de l'objet anim_sapin.

Moi je mettrais certainement tout le code "boules" (donc aussi les événements) dans le clip de l'anim_sapin. Mais là aussi attention: les boules doivent exister au moment où le code est vu par Flash. Dans ce cas, le code devient juste boule_rouge.buttonMode=true etc.

Cela devient très compliqué au bout d'un moment et c'est pour cela que les développeurs Flash n'utilisent peu le scripting dans la timeline, mais plutôt une classe externe.... mais bon, cela demande des connaissances assez avancés en programmation. Envisagez éventuellement de prendre un cours d'informatique en 2ème année :)

Boucle for -- Valerie.follonier (discussion) 24 novembre 2013 à 19:12 (CET)

Bonjour,

Dans mon ex3, je voudrais tester la position de plusieurs de mes objets. Il s'agit de pommes. Elles ont tous le même nom avec un chiffre. (ex pommer1, pommer2,..) Je voudrais utiliser une boucle for pour tester la position de toutes mes pommes avec une seule instruction.

J'ai fait le test de position pour une pomme (sans la boucle) et ça marche. C'est donc la boucle qui me pose problème.

J'ai inscrit :

 function fl_ClickToGoToAndStopAtFrame(event:MouseEvent):void
  { compteurR =0;
    for (var i:int = 1; i <= 5; i++) {
         if (pommer+i.x <=-366 && pommer+i.x >=-566 && pommer+i.y <=212 && pommer+i.y >= 71) {
              compteurR += 1;}}
    if(compteurR==3){gotoAndStop(31);}}

Liste des erreurs :

Symbol 'pommesTombent', Layer 'Actions', Frame 30, Line 163 1120: Access of undefined property pommer.

Symbol 'pommesTombent', Layer 'Actions', Frame 30, Line 163 1119: Access of possibly undefined property x through a reference with static type int.

Symbol 'pommesTombent', Layer 'Actions', Frame 30, Line 163 1120: Access of undefined property pommer.

Symbol 'pommesTombent', Layer 'Actions', Frame 30, Line 163 1119: Access of possibly undefined property x through a reference with static type int.

Symbol 'pommesTombent', Layer 'Actions', Frame 30, Line 163 1120: Access of undefined property pommer.

Symbol 'pommesTombent', Layer 'Actions', Frame 30, Line 163 1119: Access of possibly undefined property y through a reference with static type int.

Symbol 'pommesTombent', Layer 'Actions', Frame 30, Line 163 1120: Access of undefined property pommer.

Symbol 'pommesTombent', Layer 'Actions', Frame 30, Line 163 1119: Access of possibly undefined property y through a reference with static type int.


Pouvez-vous m'indiquer mon erreur? http://tecfaetu.unige.ch/etu-maltt/tetris/folloni8/stic-1/ex3/ex3.fla


Bonne soirée!

Valérie

Re: Boucle for -- Daniel K. Schneider (discussion) 25 novembre 2013 à 12:23 (CET)

Faut convertir le integer en string d'abord. A part cela, je pense qu'il serait plus pratique de placer les pommes avec ActionScript (un seul code pour toutes les pommes) et stocker chaque pomme dans un array. Chaque pomme aura aussi des propriétés de type x-ori et y-ori pour comparer. En gros, on peut couper la taille de votre code par 10 ou 20. Enfin, pour ce cours, vous faites ce que vous voulez :)

function fl_ClickToGoToAndStopAtFrame(event:MouseEvent):void
{
	compteurR = 0;
	for (var i:int = 1; i <= 5; i++)
	{
		var pommer = pommer + String(i); // Type conversion
		if (pommer.x <= -366 && pommer.x >= -566 && pommer.y <= 212 && pommer.y >= 71)
		{

			compteurR +=  1;
		}
	}


	if (compteurR==3)
	{
		gotoAndStop(31);
	}

}

http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f87.html

Re: Re: Boucle for -- Valerie.follonier (discussion) 25 novembre 2013 à 13:11 (CET)

J'ai inséré votre proposition dans mon code mais il y a une nouvelle erreur :

       ReferenceError: Error #1069: La propriété x est introuvable sur String et il n'existe pas de valeur par défaut.at ex3_fla::pommesTombent_1/fl_ClickToGoToAndStopAtFrame()

Y-a t'il une solution?

Sinon pour votre suggestion de placer les pommes avec un seul code ActionScript, qu'entendez-vous par là?

Bonne journée,

Valérie

Re: Re: Boucle for -- Daniel K. Schneider (discussion) 25 novembre 2013 à 13:56 (CET)

Oui normal, je n'ai pas assez réfléchi, cela crée un string sans valeur. Ceci devrait marcher mieux:

function fl_ClickToGoToAndStopAtFrame(event:MouseEvent):void
{
	compteurR = 0;
	for (var i:int = 1; i <= 5; i++)
	{
		var pommer = "pommer" + String(i);// Type conversion
		trace("pommer=" + pommer);
		trace("this[pommer]=" + this[pommer]);
		if (this[pommer].x <= -366 
			&& this[pommer].x >= -566 
			&& this[pommer].y <= 212 
			&& this[pommer].y >= 71)
		{

			compteurR +=  1;
		}
	}


	if (compteurR==3)
	{
		gotoAndStop(31);
	}

}

Maintenant pour expliquer l'autre solution, je n'ai pas le temps pour plus de détails, rapplelez-moi si nécessaire.

En gros vous faites:

var liste_pommes = new Array;

function creer_pomme (x,y) {
 var pomme = new PommeRouge; 
 pomme.addEventListener(....);
 pomme.x = x;
 pomme.y = y;
 pomme.x-ori = ....
 // etc. 
 stage.addChild(pomme);
 liste_pommes[] = pomme;
}

creer_pomme(10,200); creer_pomme(100,220);

Ensuite vous pouvez traiter:

for each (var pomme:MovieClip in liste_pommes) {
 ... voir si pomme.x == pomme.autre chose etc.
}

Re: Re: Boucle for -- Valerie.follonier (discussion) 25 novembre 2013 à 15:53 (CET)

Je vous remercie cette fois tout fonctionne parfaitement!

Bonne fin de journée,

Valérie

buttonMode et flat design (et bouton en flash aussi) -- Damien Gauthier (discussion) 28 novembre 2013 à 23:35 (CET)

Bonjour !

J'ai une question concernant l'utilisation de buttonMode. En fait quand je regarde ce qui se passe avec de vrais boutons en flahs comme dans l'exemple de l'exercice 2 ici : http://tecfa.unige.ch/guides/flash/ex4/components-intro/flash-cs4-simple-slide-show-menu.swf ils ne changent pas le pointeur de la souris...

Du coup, je me demandais si la consigne "C'est le même principe que pour les boutons. Il faudra aussi penser à changer la forme du curseur." était toujours d'actualité. Je comprends poiur ce qui est des objets qui ne ressemblent pas à des boutons, mais pour ce qui est des rectangles du genre "flat design" comme on en trouve par exemple ici : http://ryankeeter.com/Media/Default/WindowsLiveWriter/ThoughtsonFlatUIDesignPatterns_B5AE/Flat-design_thumb.png

faut-il tout de meme changer le curseur ?

Merci beaucoup et bonne journée, Damien

Re: buttonMode et flat design (et bouton en flash aussi) -- Daniel K. Schneider (discussion) 29 novembre 2013 à 02:49 (CET)

Non du tout, c'est à vous de décider. Je pense qu'il est préférable d'avoir une petite animation lors du mouse-over, mais cela ne veut pas dire qu'il faut changer le curseur.... Finalement, si vous pouvez justifier un design simple sans aucune animation cela me va aussi. Faut juste trouver les bons arguments :)

Re: Re: buttonMode et flat design (et bouton en flash aussi) -- Damien Gauthier (discussion) 5 décembre 2013 à 13:42 (CET)

Merci ! J'ai donc choisi une solution mixte ;-) Les boutons en mouseover avec changement de couleur et les objets moins conventionnels avec changement de curseur en plus (enfin vous verrez bien ;-) ).

Importer un fichier mp3 dans flash -- Mohamed A. (discussion) 5 décembre 2013 à 14:03 (CET)

Bonjour, J'ai pu, sans problème, importer un premier fichier mp3 dans la librairie. Malheureusement, je n'arrive plus du tout à importer d'autres fichiers. J'ai systématiquement le message: "Couldn't import C:\......\fichier.mp3". J'ai pensé que mon fichier était corrompu mais j'ai le même souci avec d'autres fichiers. Je peux, par contre, sans aucun problème mettre à jour celui que j'ai importé. Auriez-vous une idée? Merci d'avance, Cordialement. Mohamed.

Re: Importer un fichier mp3 dans flash -- Daniel K. Schneider (discussion) 5 décembre 2013 à 14:41 (CET)

A mon avis c'est l'encodage du MP3. Trop de qualité probablement et Flash n'aime pas les gros trucs. Donc:

Re: Re: Importer un fichier mp3 dans flash -- Mohamed A. (discussion) 16 décembre 2013 à 13:59 (CET)

Bonjour, Je me rends compte que je ne vous ai pas donné un retour sur ce point. J'ai effectivement pu faire le nécessaire en lisant le son comme fichier externe. Merci pour votre aide.