STIC Discussion:STIC I - exercice 3 (Stella)
- Archives Qwerty: STIC Discussion:STIC I - exercice 3/Qwerty
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);
}
}