STIC Discussion:STIC I - exercice 3 (Stella)

De EduTech Wiki
Aller à : navigation, rechercher

Sommaire

1 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?

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

2 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 ?

2.1 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();

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

Yesss. ça marche. Merci

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

3.1 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

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

3.2.1 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 :)

4 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

4.1 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

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

4.2.1 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

4.2.2 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 :)

5 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

5.1 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

5.1.1 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

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

5.1.3 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

6 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

6.1 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 :)

6.1.1 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 ;-) ).

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

7.1 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:

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