Forums Développement Multimédia

Aller au contenu

- - - - -

[AS3 pied à l'étrier] addEventListener

TUTO

88 réponses à ce sujet

#1 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 13 February 2011 - 23:35 PM

Bonsoir,

Un tuto pour public très novice puisqu'il s'agit de voir comment intercepter les "événements souris", comment réagir aux interventions de l'utilisateur, déclencher telle ou telle action quand il clique quelque part, survole un clip ou double clique ailleurs.

Les prérequis sont quasiment inexistants, je considère qu'on sait créer des symboles boutons et clips… C'est à peu près tout.

Pour illustrer les exemples j'utilise navigateToURL qui se passe d'explications ;)

voilà, c'est ici.

Ah oui… et je profite de l'occasion pour expliquer/illustrer le principe de la propagation événementielle et l'intérêt du paramètre capture…
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#2 lilive

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2993 messages

Posté 14 February 2011 - 10:23 AM

Bonjour Nataly,

Super, encore un tuto qui manquait et sur lequel on pourra s'appuyer pour répondre à des questions sur le sujet. Bravo :)

C'est très complet, progressif, ça donne la solution pour les cas de figure rencontrés dans la pratique.


Toujours dans l'idée de réfléchir et de proposer les meilleurs tutos de la planète, je me demande quand même un truc (il est où le smiley de celui qui sait plus où se mettre):

Comme tu le dis, on peut arriver sur le sujet quand on commence à vouloir ajouter de l'interactivité à son animation. On peut donc imaginer que le lecteur sait très peu de choses sur la programmation. Du coup on tombe un peu sur une lacune des ressources, il manque la page qui serait l'introduction de la notion de programmation, à laquelle tu pourrais te référer si elle existait. C'est sûr que c'est pas le cadre ici pour expliquer par exemple ce qu'est une fonction. Avec toi on le voit par la pratique et ça suffit. Mais je m'égare un peu... Ce que je me demande c'est si en fait ça ne va pas... un tout petit peu vite parfois.

Par exemple, ça pourrait être pas mal d'avoir un lien vers une page qui explique comment créer un bouton. Parce-que pourquoi je saurais déjà faire des boutons alors que je sais pas m'en servir? Il me semble que dans l'apprentissage, je vais découvrir en même temps comment créer un bouton et comment gérer l'interactivité. Du coup poser en prérequis de savoir faire un bouton me semble bizarre. Mais tu vas pas expliquer ça, c'est pas ton sujet, d'où mon idée de lien qui manque. Et peut-être aussi bêtement de passer moins vite sur le fait de donner un nom d'occurence au bouton.

Autre exemple de là où ça va un peu vite peut-être: Les clips imbriqués, et l'idée qu'on peut avoir envie de détecter le survol sur un clip qui en contient d'autre. Si je fais mon naïf je dis "mais pourquoi?" Ma réponse de pas naïf serait: "Ben par exemple tu as un clip animé, pour faire ton animation tu as imbriqué des clips dedans. Disons tu as fait un bonhomme, il a les bras qui bougent, les yeux qui roulent, mais ce que tu veux savoir c'est quand on survole le bonhomme."

Pour finir, l'animation que tu as faites pour expliquer les phases de propagation est une très bonne idée. Mais j'ai l'impression que ça peut rester dur à comprendre. En partie à cause de cette case à cocher, mais pas que. Comme ça je penserais à faire une animation où on voit au ralenti ce qui se passe au clic, on verrait l'évènement descendre et remonter, et les objet diffuser les evènements au fur et à mesure. Pouaf le boulot! Là c'est peut-être à moi de m'y coller, parce-que qu'à un moment ça va bien la critique :mrgreen: ( et puis déjà ce que tu as fait ça n'a pas dû être en 2 coups de cuillère à pot). Mais c'est peut-être moi qui ai eu du mal avec cette notion. Dans mon apprentissage, je suis passé par T.Imbert, et j'avoue que j'ai du y revenir plusieurs fois avant de bien intégrer le truc. A chaque fois je lisais la théorie, m'en sortais avec l'application pratique, mais la fois suivante fallait à nouveau que j'y reviennes car j'étais paumé. Il m'a fallu plusieurs aller retours pour finir par m'approprier la chose.

Que ces remarques de grincheux n'altèrent pas la satisfaction que tu peux avoir du travail accompli, d'autant plus qu'elles ne sont pas forcément justes. C'est à prendre comme des questions, pour parler et profiter d'être ensembles pour aller plus loin (si besoin :mrgreen: )

Merci beaucoup pour cette page et tout ce boulot :Hola:

#3 Billyben

    KlouChiPonshoñistäs

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2597 messages

Posté 14 February 2011 - 11:13 AM

Salut! Chouette, c'est un tuto qui manquait vraiment dans les ressources!!! Merci!

Tout de même une petite suggestion, est ce que ce ne serait pas un poil intéressant de rajouter un petit chapitre sur :
1/diffuser soit même un évènement
2/conjugué avec les évènement perso (ce qui montre par ailleurs que ce ne sont que des "bêtes" objets)

(ou alors dans une suite future......... vu que ça sort un peu du titre de ton très utile tuto tout de même.......)

#4 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 14 February 2011 - 13:09 PM

Salut messieurs

en gros je suis d'accord avec vous deux, et je vous réponds - aux deux - : certes mais ce n'est pas le cadre.

:D

Allez je m'explique :

--> Billy : déjà que l'autre récrimineur en chef trouve que c'est trop dur pour un débutant, tu penses bien que je ne vais pas raconter à des gens qui sont réputés découvrir ce qu'est l'écoute d'un événement et dont je suppose qu'ils ne connaissent même pas les structures de contrôle comment quand et pourquoi diffuser de l'ev perso ;)

Ce qui n'enlève rien au fait qu'il faudra bien que ce soit fait un jour, et que ce jour là on sera contents de revenir ajouter un lien dans le chapitre "pour aller plus loin", avec le même plaisir que j'ai eu à en mettre un vers le tuto que tu as toi même commis sur la gestion du clavier. :Hola:
Depuis qu'il est fait, ton tuto, j'ai celui-là sur l'estomac, tellement ils vont ensemble, et tellement ça manquait :)

--> Grand greumeuleur certifié : Oui, oui oui ! Il faudrait que les prérequis existent sous forme de tuto, et ils existeront. Au pire, je les ferai.
Je dis au pire pcq je ne dispose que de dix doigts et d'un clavier (tout le monde n'est pas M.SPI qui se fait greffer un bras ou deux quand la charge de travail augmente ;)) au rythme d'un ou deux par mois et considérant que ds la catégorie débutants tout est à faire… Ça risque d'être dans longtemps.

Je sais que "fonctions" ça doit être expliqué. J'ai considéré que ce n'était pas le lieu que ça devait faire l'objet d'un texte spécifique avec d'autres notions de base.
Je me souviens aussi que tu m'avais dit souhaiter t'en occuper - si ton emploi du temps te le permettait - Allô Chipal ?… :mrgreen: -
Pense bien que ce n'est pas tombé dans l'oreille d'une gourde et que je l'ai tout purement considéré comme existant. Là où il y a des notes de bas pages (une fonction c'est un ensemble d'instructions) il y aura à terme des liens vers le tuto approprié. :cool:

En fait c'est ce que j'ai le bonheur de voir se construire ces derniers temps. Un an que je scribouille obstinément, et enfin, presque à chaque fois maintenant le tuto créé peut être inséré en tant que prérequis à un existant ou lui même utiliser d'autres dans ses prérequis à lui, voire figurer au chapitre aller plus loin…

Et je dois dire que j'en suis bien contente. \o/
Je suis bien contente aussi, d'un certain point de vue, que ce type de remarque arrive aujourd'hui. Elles sont pourtant valables depuis le tout premier jour et le tout premier tuto. J'ai la faiblesse de penser que si elles surgissent maintenant c'est pcq tu t'habitues et vires chaque fois plus exigeant. :roll: Ce dont je ne me plaindrai pas, vu que mon côté libertaire me protège de tout excès de zèle ;)

Donc oui, j'avais l'ambitieux projet de fabriquer, tuto par tuto, en ensemble cohérent, construit et progressif qui pourrait par la suite s'attaquer dans l'ordre pour apprendre depuis zéro. Pas dit que j'y parvienne à moi toute seule : je vais moins vite à rédiger les didacticiels que adobe à pondre les versions successives :( (oui sur mon feu il y a aussi la "3D")
Mais je ne désespère toujours pas de faire des émules, voire de t'embarquer sur la rédaction d'un ou deux tutos (Allô le même… ;) :arrow: )

Citation

Autre exemple de là où ça va un peu vite peut-être: Les clips imbriqués, et l'idée qu'on peut avoir envie de détecter le survol sur un clip qui en contient d'autre. Si je fais mon naïf je dis "mais pourquoi?" Ma réponse de pas naïf serait: "Ben par exemple tu as un clip animé, pour faire ton animation tu as imbriqué des clips dedans. Disons tu as fait un bonhomme, il a les bras qui bougent, les yeux qui roulent, mais ce que tu veux savoir c'est quand on survole le bonhomme."
Oui :) tout à fait juste, je n'ai même pas donné d'exemple théorique. Je vais donc reprendre celui que tu suggères tel que :P



Citation

Parce-que pourquoi je saurais déjà faire des boutons alors que je sais pas m'en servir
Alors là ! Je ne peux pas te répondre, mais force est de constater que c'est le cas ;)
Sur le forum, combien de questions par mois d'utilisateur qui ont fait leurs boutons et sont coincés par la suite ? Combien par semaine, d'utilisateurs qui disposent des symboles et ont vaguement bidouillé/recopié une ligne avec addEventListener sans en savoir/comprendre quoique ce soit ?

J'ai d'ailleurs mis des marque page sur deux topics qui ont donné lieu à une réponse détaillée (une du Dldler une de votre serviteuz) et j'y renvoie au minimum 6 fois par mois.


Citation

Par exemple, ça pourrait être pas mal d'avoir un lien vers une page qui explique comment créer un bouton.
je souscris :)


Citation

Comme ça je penserais à faire une animation où on voit au ralenti ce qui se passe au clic, on verrait l'évènement descendre et remonter, et les objet diffuser les evènements au fur et à mesure. Pouaf le boulot! Là c'est peut-être à moi de m'y coller
je souscris aussi :mrgreen:



Et pour finir la plaidoirie à ma décharge, je précise, parce que ça ne se voit vraiment pas, que je fais tout mon possible à chaque fois pour faire court :cool:







Ayé ? zavez fini de vous bidonner ? :P

Je crains qu'un trop long exposé décourage les pressés, les mal lisants et autres adeptes du tout, tout de suite.
Je sais bien qu'on ne jouera jamais du piano correctement sans avoir fait des gammes, et qu'il n'y a pas, au monde, une discipline qui s'acquière en 5 minutes ou 4 jours… 
Est-ce une raison pour pénaliser ceux qui sont victimes de la croyance contraire (tellement plus vendeuse) ?

Là c'est une vraie question ! Je n'ai toujours pas tranché et j'ai bien conscience de merdoiller entre les deux :S


Bon et puisqu'on m'énerve ;) que j'ai la pêche et la bonne humeur retrouvées, je vais de ce clic faire un tour dans "idées de tutoriaux à écrire" pour vous dresser la liste de ce que j'envisage comme nécessaire à court, moyen, long et très long* terme :deal:







*si je reste seule sur le chantier…
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#5 ademus

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 116 messages

Posté 10 March 2011 - 01:34 AM

tuto très propre, on sent l'approche d'une graphiste.
peut être rajouter une ligne sur stopPropagation() qui est bien utile dans le cas des clips imbriqués

#6 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 12 March 2011 - 15:42 PM

Ah oui, :idea: merci Ademus :)

[fonçant dans la doc pour voir de quoi il retourne]… tu vois un exemple simpliste pour illustrer ? :roll:
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#7 ademus

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 116 messages

Posté 12 March 2011 - 16:15 PM

(si les modos pouvaient effacer le post precedent, merci)

mettons 2 clip A et B
B se trouve dans A
A possede un fond sous B

On veut que B soit dragable au clic sans que le reste bouge
On veut que l'ensemble A+B soit dragable au clic sur le fond de A

On fait alors


A.addEventListener (MouseEvent.MOUSE_DOWN, dragA)
A.B.addEventListener (MouseEvent.MOUSE_DOWN, dragB)

function dragA(e)
{
A.startDrag(false)
}
function dragB(e)
{
A.B.startDrag(false)
e.stopPropagation();
}


A.addEventListener (MouseEvent.MOUSE_UP, findrag)
A.B.addEventListener (MouseEvent.MOUSE_UP, findrag)

function findrag(e)
{
e.currentTarget.stopDrag()
}

arrêter la propagation de l'event souris sur B, évite que A detecte l'evenement à son tour et commence à 'draguer' lui aussi.

#8 dada

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 8510 messages

Posté 12 March 2011 - 16:46 PM

L'exemple ne justifie pas complètement l'utilisation de stopPropagation, car en utilisant la propagation, c'est plus simple :


A.B.mouseChildren = false;
A.addEventListener (MouseEvent.MOUSE_DOWN, drag);

function drag (e:Event):void {
 (e.target as Sprite).startDrag();
  stage.addEventListener (MouseEvent.MOUSE_UP, dragEnd);
}

function dragEnd (e:Event):void {
 (e.target as Sprite).stopDrag();
  stage.removeEventListener (MouseEvent.MOUSE_UP, dragEnd);
}
 

Par contre, si on ne voulait pas draguer B, mais avoir une action différente sur son click, ça se justifierais je pense.

#9 ademus

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 116 messages

Posté 12 March 2011 - 18:36 PM

la différence, c est que
mouseChildren = false
empêche la propagation sur les enfants de la cible uniquement alors que
stopPropagation()
, stoppe la propagation pour tout les autres élements se trouvant sur le chemin de l’évènement.

Mon exemple est pas bon du tout puisque ni mouseChildren, ni stopPropagation ne sont necessaires. :oops:

J'espère quand même que cela a pu servir à éclairer un peu la notion... :?

#10 dada

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 8510 messages

Posté 12 March 2011 - 18:56 PM

Le mouseChildren=false, c'est pour éviter de draguer un enfant de B, s'il en contient, mais pas indispensable non plus en effet, si aucun objet interactif n'est enfant de B.

Mais dans le cas où on veut gérer des évènements à plusieurs niveaux pour faire différentes choses, stopper la propagation est utile.

EDIT: Mais pour un tuto destiné à un public "très novice", aborder ça n'est pas très important. Par contre ça peut être intéressant de faire un 2° volet du tuto "pour aller plus loin", et du coup aborder la phase de capture, les priorités, le weakReference, le preventDefault, stopPropagation et stopImmediatePropagation. :) Le plus dur étant en effet de trouver des exemples efficaces pour chaque chose. ;)

#11 ademus

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 116 messages

Posté 12 March 2011 - 19:06 PM

Disons que dans mon exemple (foireux) proposé, ça tombait quand même plus sous le sens.

Un clic souris sur B donne ceci :
Phase de capture
(quand l'event va de la surface du Stage au elements les + profonds, c'est à dire les + imbriqués):

1°) Stage detecte l'event, puis
2°) A detecte l'event, puis
3°) B detecte l'event

Phase de bubbling
quand l event a atteint le fond, il remonte alors vers le Stage

4°) B detecte l'event
5°) A detecte l'event
6°) Stage detecte l'event

Donc si on veut eviter que A ne detecte le clic, mousechildren sur B ne sert à rien dans tous les cas.
stopPropagation () sur B en revanche empêche A de détecter l'event au 5°) (A ce moment là il faur se rappeler qu'un écouteur est paramétré par défaut pour écouter l'event en phase Bubling)

Modifié par ademus, 12 March 2011 - 19:08 PM.


#12 dada

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 8510 messages

Posté 12 March 2011 - 19:11 PM

Ce qui m'a fait réagir, c'est que d'un point de vue utilisation, si je veux draguer un conteneur par son fond, et un enfant de ce conteneur, je vais utiliser la propagation et un seul écouteur, et non l'empêcher et utiliser deux écouteurs.
Et le mouseChildren c'est pour draguer B comme un seul élément.

Mais du coup, les 2 méthodes peuvent être présentées ensemble, à titre pédagogique. Deux manières différentes pour atteindre le même comportement, ça peut être complémentaire pour la compréhension du système évènementiel.

#13 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 13 March 2011 - 10:42 AM

bon… pas plus avancée la fille ;)

l'idée c'est effectivement de trouver un exemple parlant à portée du public concerné…

Il est vrai que je n'ai pas encore rencontré de cas de figure où un stopPropagation me soit utile, mais… c'est peut-être pcq je n'y ai pas pensé, vu que j'avais collé le truc au chapitre "y revenir plus tard quand le cas se présentera"
Très récemment pour faire la différence entre "je clique sur le fond d'une palette (flottante) ou sur un de ses boutons" j'ai bêtement utilisé l'eventPhase (en remontée bien-sûr) avec un moche if…

Du coup, sauf à ce que l'exemple kitu soit trouvé, je mettrais bien dans un coin de "todo" l'idée d'une page "pour aller plus loin" (ou un titre plus piquant, que je laisse à la grande créativité de ceux qui savent faire) où seraient creusées les notions évoquées par le Chat sans préoccupation de progression pédagogique, avec du coup plus de licence pour trouver des illustrations qui ne soient pas sujettes à caution.

D'ailleurs :idea: ce pourrait être un parti à décliner tout court, sur les tutos à venir dans le cadre de l'ambitieux projet d'un "cours" complet : la page qui respecte une progression, celle qui finit le sujet pour ceux qui ont plus de bouteille.

:roll:
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#14 ademus

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 116 messages

Posté 13 March 2011 - 12:45 PM

En dehors de la portée strictement utilitaire, il me semble que stopPropagation () est un point simple qui permet d'éclairer un peu plus le processus d'un Event Mouse puisqu'en signalant qu'on peut l'arrêter, on met en evidence son cheminement. Mais c'est finalement plus une question didactique que pratique.

Pour l'illustration, ma fois, même s'il y a d'autres solutions, le cas que j'ai exposé peut en faire office.

#15 ademus

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 116 messages

Posté 13 March 2011 - 12:46 PM

Pour

Citation

l'ambitieux projet d'un "cours" complet
il me semble qu'un wiki serait idéal, non?

#16 Kulgar

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 177 messages

Posté 01 April 2011 - 14:04 PM

Coucou,

Je viens de lire le tuto que tu as rédigé Nataly, chapeau, il est bien sympa :).

Par contre...

Voir le messageNataly, le 14 February 2011 - 13:09 PM, dit :

[b]déjà que l'autre récrimineur en chef trouve que c'est trop dur pour un débutant ...

Je suis d'accord avec le récrimineur en chef :mrgreen: et j'avoue que moi-même j'ai eu beaucoup de mal à comprendre l'histoire de "eventPhase" et de phase capture (descendante). Il semble que cela soit un sujet épineux à expliquer, mais ce qui est sûr c'est que c'est loin d'être du niveau "débutant". De plus je trouve que cela manque d'un cas pratique plus concret qu'un simple menu :). L'idée de la puce est très sympathique à la fin du tuto, ne serait-il pas possible de faire quelque chose de similaire pour mieux illustrer l'écoute des événements en phase descendante ?

En fait, je ne pense pas qu'il est nécessaire de tout chambouler. Mais, ne serait-il pas judicieux de découper ce tutoriel en 3 pages de niveaux de compétences différentes ?

1 page pour les débutants, apprenant à capturer les différents événements souris classiques donc "clic gauche, double clic, roll over / roll out, mouse over..." avec un petit cas pratique simple pour chaque événement. Bref, apprenant les bases de la capture souris.

1 page pour les moins débutants, apprenant donc ce qu'il en est des propriétés target et currentTarget, de la transmission de variable et du buttonMode. Donc, apprenant tout ce qu'il faut pour effectuer la majorité des applications utilisant des interactions souris.

1 page pour les plus confirmés, expliquant les différentes propriétés méconnues mais pratiques de la méthode "addEventListener" comme pour l'écoute de la phase de capture, ctrlKey, localX etc. Avec un petit cas pratique pour chaque propriété. Ce qui permettra aux personnes qui ne connaissaient pas ces propriétés (comme moi, notamment) de mieux les comprendre et de pouvoir voir plus rapidement la puissance et l'intérêt de ces propriétés à travers des petits cas pratiques.

Même si j'ai compris l'intérêt de pouvoir écouter la phase de capture, j'avoue avoir du mal à savoir dans quels cas elle me serait vraiment utile. L'exemple du clavier est pas mal je trouve, mais sûrement trop complexe pour un simple tutoriel, ce serait bien de trouver un exemple similaire, plus sympa qu'un simple menu avec des boutons et moins complexe qu'un clavier virtuel...

C'est un tutoriel qui explique beaucoup de choses, et sa structure est très bien trouvée. Le soucis c'est que je trouve que la difficulté monte trop vite et que certaines parties ne sont pas assez détaillées pour être à la portée d'un réel débutant.

Enfin, peut-être que tout ce que je demande représente beaucoup de travail :shock:.
En tout cas, en l'état, c'est déjà du très très bon travail :) :Hola:. Bravo bravo. :)

Kouliane.

#17 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 01 April 2011 - 21:21 PM

Salut Kouliane ! :)

Voir le messageKouliane, le 01 April 2011 - 14:04 PM, dit :

Je suis d'accord avec le récrimineur en chef :mrgreen: et j'avoue que moi-même j'ai eu beaucoup de mal à comprendre l'histoire de "eventPhase" et de phase capture (descendante). Il semble que cela soit un sujet épineux à expliquer, mais ce qui est sûr c'est que c'est loin d'être du niveau "débutant".
Et bien détrompe toi, je l'ai vérifié très récemment encore, mais en "presentiel" ce qui aide considérablement à l'explication.

Il est évident que dans le contexte "écrit" ça mériterai une animation genre ce que proposait Lilive

Citation

Comme ça je penserais à faire une animation où on voit au ralenti ce qui se passe au clic, on verrait l'évènement descendre et remonter, et les objet diffuser les evènements au fur et à mesure. Pouaf le boulot!

Très honnêtement ce n'est pas en haut de la pile de mes projets… mais ça y figure tout de même...

Que ça ne décourage personne de s'y coller :mrgreen:



Citation

De plus je trouve que cela manque d'un cas pratique plus concret qu'un simple menu :). L'idée de la puce est très sympathique à la fin du tuto, ne serait-il pas possible de faire quelque chose de similaire pour mieux illustrer l'écoute des événements en phase descendante ?
[…]
Même si j'ai compris l'intérêt de pouvoir écouter la phase de capture, j'avoue avoir du mal à savoir dans quels cas elle me serait vraiment utile. L'exemple du clavier est pas mal je trouve, mais sûrement trop complexe pour un simple tutoriel, ce serait bien de trouver un exemple similaire, plus sympa qu'un simple menu avec des boutons et moins complexe qu'un clavier virtuel...

C'est vrai un autre exemple ne nuirait pas, mais en conservant les contraintes de ce tuto qui s'inscrit pour le coup dans le cycle d'une future progression de A à Z. Donc on est réputés ne même pas connaitre les structures de contrôle. Si tu as des idées elles sont les bienvenues ;)



En fait il y a deux entrées à ce tuto, les total novices qui attaqueront d'un bout à l'autre, et les novices aussi mais qui se sont déjà jetés dans le grand bain, qu'on rencontre sur le forum d'entraide. Ceux là si on les dirige sur ce chapitre précisément en verront l'intérêt puisque ce sera dans le cadre de leurs préoccupations. Les autres auront l'opportunité de rencontrer à nouveau ce point (et les autres) lors des futurs tutos, sur le mode du tricotage (à l'occasion des TP on "place" les points récemment vus).


J'avais envisagé de joindre le produit de cette conversation à titre d'exo, mais ça fait appel à startDrag et stopDrag… et ça non plus ce n'est pas supposé être connu à ce moment là.

En revanche le tuto "Principales méthodes et propriétés avec les clips", sera content de l'accueillir, et ça fera une révision, en contexte, du principe de capture.Un autre exo était prévu, mais ça me plait que les tutos se nourrissent de questions du forum ;)




Citation

Le soucis c'est que je trouve que la difficulté monte trop vite et que certaines parties ne sont pas assez détaillées pour être à la portée d'un réel débutant.

Tu veux dire qu'un débutant ne comprendrait pas ou qu'il manque d'exemple pour en voir toute la portée ?

Pour les exemples, c'est ce que je développais plus haut, dans le cadre d'un apprentissage suivi, ça va venir.

Pour la difficulté à comprendre… Forcément que je ne m'en rends pas compte, sans quoi je m'y serais prise autrement. Peut-être y aura-t-il des retours en ce sens, comme ça je pourrai modifier.
N'hésite pas à pointer ce qui te semble confus ou alambiqué voire les deux ;)


Citation

1 page pour les débutants, apprenant à capturer les différents événements souris classiques donc "clic gauche, double clic, roll over / roll out, mouse over..." avec un petit cas pratique simple pour chaque événement. Bref, apprenant les bases de la capture souris.

Si tu as des idées d'exemples/exercices…

Je considère pour ma part que je m'adresse à des adultes "autodidactes", comprendre qui ont l'habitude d'apprendre "seuls", j'espère bien qu'ils auront la curiosité ou l'envie d'essayer tous seuls les quelques événements qui ne sont pas mis en œuvre, (on y voit déjà clic, double clic et rollOver/Out avec la nuance mouseOver ;))

je ne suis pas certaine que ça mérite un découpage - mais suis mal placée pour juger -

En ce qui concerne les choses plus avancées on avait soulevé l'idée de fiches pratiques à adjoindre pour les sophistications à destination d'un autre public et hors contraintes de progression

extrait : (le contexte est là)

Citation

Du coup, sauf à ce que l'exemple kitu soit trouvé, je mettrais bien dans un coin de "todo" l'idée d'une page "pour aller plus loin" (ou un titre plus piquant, que je laisse à la grande créativité de ceux qui savent faire) où seraient creusées les notions évoquées par le Chat sans préoccupation de progression pédagogique, avec du coup plus de licence pour trouver des illustrations qui ne soient pas sujettes à caution.

D'ailleurs :idea: ce pourrait être un parti à décliner tout court, sur les tutos à venir dans le cadre de l'ambitieux projet d'un "cours" complet : la page qui respecte une progression, celle qui finit le sujet pour ceux qui ont plus de bouteille.


(Du coup ça me rafraichit la mémoire au sujet de la propagation, j'avais oublié :oops:)

Je remets donc ce tuto dans la liste des "en cours passer les modifs" ;)

Merci du retour :)
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#18 Kulgar

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 177 messages

Posté 01 April 2011 - 22:16 PM

Voir le messageNataly, le 01 April 2011 - 21:21 PM, dit :

C'est vrai un autre exemple ne nuirait pas, mais en conservant les contraintes de ce tuto qui s'inscrit pour le coup dans le cycle d'une future progression de A à Z. Donc on est réputés ne même pas connaitre les structures de contrôle. Si tu as des idées elles sont les bienvenues ;)

Erf, je savais pas ça :oops:, d'un coup c'est beaucoup plus dur de trouver des exemples. Toutefois, ne pourrait-on pas décliner l'exemple de la petite puce pour chaque "niveau" de difficulté ? ^^. Par exemple, à la toute fin, sur la phase de capture, on pourrait intégrer une puce dans une puce dans une puce dans une puce et s'amuser à les faire bouger sans qu'elles puissent sortir de la puce du dessus ? ... Il se fait tard et je me comprends toute seule j'ai l'impression :mrgreen:.

Voir le messageNataly, le 01 April 2011 - 21:21 PM, dit :

Tu veux dire qu'un débutant ne comprendrait pas ou qu'il manque d'exemple pour en voir toute la portée ?

Je veux dire qu'un débutant ne comprendrait pas ^^. Notamment, j'ai écrit ce message à l'initiative de Pripoko qui était largué dès la partie sur les targets et currentTargets, il semble (pour lui) que le tutoriel soit trop long et que le "pour aller plus loin" devrait précisément commencer à partir des "targets" (d'où mon idée initiale de découper ce tutoriel en petites parties de plus en plus difficiles).

Voir le messageNataly, le 01 April 2011 - 21:21 PM, dit :

N'hésite pas à pointer ce qui te semble confus ou alambiqué voire les deux ;)

D'acc :) je le ferai, je t'enverrai un MP ;).


Voir le messageNataly, le 01 April 2011 - 21:21 PM, dit :

Si tu as des idées d'exemples/exercices…

Je considère pour ma part que je m'adresse à des adultes "autodidactes", comprendre qui ont l'habitude d'apprendre "seuls", j'espère bien qu'ils auront la curiosité ou l'envie d'essayer tous seuls les quelques événements qui ne sont pas mis en œuvre, (on y voit déjà clic, double clic et rollOver/Out avec la nuance mouseOver ;))

Ouaip, mais, les adultes "autodidactes" sont parfois découragés par l'ampleur que peut prendre certains tutoriels et le referment avant même d'avoir commencé à le lire... (surtout les petits débutants ;) ).


Voir le messageNataly, le 01 April 2011 - 21:21 PM, dit :

Merci du retour :)

De rien ;), d'façons, maintenant que Pripoko et moi participons à cette communauté, vos retours vont se faire plus nombreux (ça fera plaisir à Lilive :mrgreen: ).


Sur ce, bonne nuit :texas:

#19 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 02 April 2011 - 11:18 AM

Voir le messageKouliane, le 01 April 2011 - 22:16 PM, dit :

Je veux dire qu'un débutant ne comprendrait pas ^^. Notamment, j'ai écrit ce message à l'initiative de Pripoko qui était largué dès la partie sur les targets et currentTargets,

Oui, j'en reviens, il est vrai que j'expédie l'histoire en deux coups de cuillère à pot en considérant que le lecteur va faire ses traces pour vérifier… (flemme, flemme flemme :oops: ).

Pas bien tu as raison, je vais voir comment allonger la sauce ;)



Citation

D'acc :) je le ferai, je t'enverrai un MP ;).

t'inquiète tu peux le faire ici :)



Citation

Ouaip, mais, les adultes "autodidactes" sont parfois découragés par l'ampleur que peut prendre certains tutoriels et le referment avant même d'avoir commencé à le lire... (surtout les petits débutants ;) ).

D'où ma volonté de ne pas faire trop long et ton idée de découper… ça s'entend… :roll:

La seule chose, c'est que c'est le tout premier chapitre (en vrai le deuxième après l'intro variable/fonction/langage) d'un "cycle" qui va en compter des dizaines, et des dizaines. Mettre la barre aussi haut, implique d'autant plus de travail donc de temps.

Là je réfléchis sur des critères de réalité. J'aime bien avoir des projets réalisables, (vu que je me satisfais du fait de me tenir parole). Pas sûr que l'ampleur de ce que tu proposes (et que j'imagine bien) soit à ma mesure.

"Moi, moi, moi…" vas tu dire, "je croyais que c'était un projet d'ensemble ?".

Heuhhhh… :oops: Oui, revisité ma pomme ( :mrgreen: ) : Rien de pire qu'entretenir dépit ou aigreur vis à vis d'autrui, ce qui se produit immanquablement quand on a compté sur d'autres qui ne satisfont pas aux promesses implicites ou explicites qu'ils ont faites.
Pour plier le problème, ma technique c'est donc : "ce projet (quel qu'il soit), je sais que je peux le tirer à bout toute seule, je préférerais qu'on me donne la main, mais quoiqu'il se passe il aboutira" comme ça zéro déception possible, zéro aigreur, rancune, et autres sentiments toxiques pour soi et pour les autres…

Je ne dis pas que cette posture soit La Bonne… je dis seulement que toutes expérimentations menées c'est celle qui convient le mieux à l'ensemble des caractéristiques (souvent contradictoires entre elles) qui font que je suis moi ;)


Pour en revenir aux tutos, il faut bien se dire aussi que c'est une des voies possibles de l'apprentissage, qui ne convient pas à tout le monde.
Ça implique forcément pugnacité, curiosité et autre esprit de débrouillardise.


Ce qui se synthétise par : je vais voir à développer le chapitre ultra rapide sur target et currentTarget, (si, si, tu as raison ! pff :P)

Je ne suis pas partante pour un chantier plus ambitieux. ;)


En tous cas c'est bien agréable d'avoir matière à débattre :)


Et là, Kouliane, on est en train de nourrir cette captieuse rumeur selon laquelle les femmes seraient bavardes
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#20 Kulgar

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 177 messages

Posté 03 April 2011 - 13:02 PM

Voir le messageNataly, le 02 April 2011 - 11:18 AM, dit :

D'où ma volonté de ne pas faire trop long et ton idée de découper… ça s'entend… :roll:

La seule chose, c'est que c'est le tout premier chapitre (en vrai le deuxième après l'intro variable/fonction/langage) d'un "cycle" qui va en compter des dizaines, et des dizaines. Mettre la barre aussi haut, implique d'autant plus de travail donc de temps.

Si c'est réellement le tout premier chapitre d'un "cycle", ne faut-il pas que ce chapitre soit vraiment court et simple histoire de donner envie de lire les suivants ?

Ce que je verrais bien, vu que c'est le premier chapitre d'un long cycle, c'est qu'il introduise de manière simple et ludique l'utilisation basique des addEventListener et interactions souris. Puis, lorsque cela deviendra nécessaire, il sera intéressant dans un chapitre ultérieur de ce cycle, d'introduire l'utilisation des Targets puis dans un chapitre encore un peu plus loin, l'utilisation de la phase capture.

En fait, j'ai vraiment peur que ce chapitre n'en décourage plus d'un car pour bien comprendre les parties concernant les targets et la phase capture, il faut déjà avoir un petit peu de bouteille. Ne serait-il pas possible de faire quelque chose comme ça, quitte à faire un lien à la fin du petit tutoriel sur les addEventListener "souris" vers les 2 tutoriels suivants approfondissant ce point ?

Selon moi, un premier chapitre d'un cycle, doit vraiment être court, simple, ludique et accrochant afin que les apprenants aient envie de poursuivre l'étude des chapitres suivants du cycle. Toute la partie concernant l'interaction souris est vraiment bien et serait un parfait premier chapitre d'un long cycle ;). J'ai peur, par contre, que la suite n'en décourage plus d'un, aussi bien expliquée soit-elle... Après, je ne sais pas, c'est mon avis, peut-être que les débutants ne le partageront pas :roll:.


Voir le messageNataly, le 02 April 2011 - 11:18 AM, dit :

"Moi, moi, moi…" vas tu dire, "je croyais que c'était un projet d'ensemble ?".

Heuhhhh… :oops: Oui, revisité ma pomme ( :mrgreen: ) : Rien de pire qu'entretenir dépit ou aigreur vis à vis d'autrui, ce qui se produit immanquablement quand on a compté sur d'autres qui ne satisfont pas aux promesses implicites ou explicites qu'ils ont faites.
Pour plier le problème, ma technique c'est donc : "ce projet (quel qu'il soit), je sais que je peux le tirer à bout toute seule, je préférerais qu'on me donne la main, mais quoiqu'il se passe il aboutira" comme ça zéro déception possible, zéro aigreur, rancune, et autres sentiments toxiques pour soi et pour les autres…

Roh, mais non, loin de moi l'idée de t'accuser de dire "moi moi moi" ^^ c'est ton tutoriel, tu le défends, c'est normal :). Mais si tu veux que je t'assiste dans le projet, ben, moi je suis pas contre ;). Quant aux "sentiments toxiques", je n'en ai jamais nourri aucun en mon petit coeur envers qui que ce soit. Je suis du genre compréhensive, gentille et sans reproche.


Voir le messageNataly, le 02 April 2011 - 11:18 AM, dit :

Pour en revenir aux tutos, il faut bien se dire aussi que c'est une des voies possibles de l'apprentissage, qui ne convient pas à tout le monde.
Ça implique forcément pugnacité, curiosité et autre esprit de débrouillardise.

Et de la bouteille en programmation. Une personne toute nouvelle dans le monde de la programmation sera très vite larguée. :) Je pense qu'il faudra rediriger les gens vers des tutoriels sur "la base de la programmation en POO" dans ton tutoriel ;). Pour que les vraiment tout débutant en programmation puisse acquérir quelques chevrons dans ce domaine :).

Voir le messageNataly, le 02 April 2011 - 11:18 AM, dit :

Ce qui se synthétise par : je vais voir à développer le chapitre ultra rapide sur target et currentTarget, (si, si, tu as raison ! pff :P)

Je ne suis pas partante pour un chantier plus ambitieux. ;)

Mais moi si, et je peux te seconder si tu veux ;).

Voir le messageNataly, le 02 April 2011 - 11:18 AM, dit :

En tous cas c'est bien agréable d'avoir matière à débattre :)


Et là, Kouliane, on est en train de nourrir cette captieuse rumeur selon laquelle les femmes seraient bavardes

N'est-ce pas ce qu'on appelle une communauté vivante ? Un endroit où on peut débattre en toute courtoisie et sympathie, tout en faisant réellement avancer les choses ;).

Les femmes, bavardes ? Bah... Les hommes aussi le sont quand ils sont pas trop occupés à réfléchir :mrgreen:.

En tout cas, c'est sûr que c'est bien d'avoir matière à débattre, hihi :mrgreen:

#21 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 03 April 2011 - 19:39 PM

Voir le messageKouliane, le 03 April 2011 - 13:02 PM, dit :

Si c'est réellement le tout premier chapitre d'un "cycle", ne faut-il pas que ce chapitre soit vraiment court et simple histoire de donner envie de lire les suivants ?

:)
Le tout premier chapitre sera (ou seront) consacré à découverte de l'interface (panneau action, blabla) puis les fondamentaux genre variables, vocabulaire, syntaxe, fonctions… et la fonction trace (Chapitre fin coton aussi ;))

Et normalement selon le plan que j'ai en tête, celui-ci arrive derrière

Citation

Selon moi, un premier chapitre d'un cycle, doit vraiment être court, simple, ludique et accrochant afin que les apprenants aient envie de poursuivre l'étude des chapitres suivants du cycle.

Bon, si tu utilises des arguments imparables, je fais quoi moi ? :mrgreen:

Je dis : Ok, on va revoir ça.
Mais pas immédiatement : là je flipe ;)


Donc, sauf à ce que tu sois pétrie d'impatience, je te propose - d'ici une quinzaine après le tuto en cours -

… de poser ici le plan de cours tel que je l'imagine, un peu détaillé des points vu/en-cours/à voir.
On pourra bien sûr en discuter et l'adapter au format tuto.

Puisque tout bien réfléchi : tu as raison (pff… m'énerve des fois :P). Le format papier, ce n'est pas le format présentiel, j'ai torché un truc trop synthétique,

Citation

Mais moi si, et je peux te seconder si tu veux ;).

Bon, vu sous cet angle… ;) on va développer et enrichir, quitte à découper ;)

Citation

pour bien comprendre les parties concernant les targets et la phase capture, il faut déjà avoir un petit peu de bouteille.

ça je vais l'argumenter encore, crois bien ! :P :D



Bon alors, on fait comme ça ? On projète d'y réfléchir sérieux sous quinzaine ?

++ :)
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#22 Kulgar

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 177 messages

Posté 03 April 2011 - 21:20 PM

Voir le messageNataly, le 03 April 2011 - 19:39 PM, dit :

Bon alors, on fait comme ça ? On projète d'y réfléchir sérieux sous quinzaine ?

Ca me va ;). Comme ça a l'air d'être un gros projet tutos pour les débutants, je pense qu'on ne sera pas trop de deux pour le mener à bien, tu crois pas ? :).

Donc, beh, à dans 15 zours pour la suite de l'aventure :mrgreen: * trépigne d'impatience *.

Je pense que je vais bientôt me remettre à continuer le tutoriel pour Starfield :). Faut juste que je termine de programmer un jeu avant ça ^^ (une sorte de Starfield justement).

Bref, bonne nuit, bon courage pour ton flip et pis... et pis voilà :mrgreen:

#23 yoobah

    Ceinture Blanche

  • Members
  • Pip
  • 2 messages

Posté 19 April 2011 - 17:25 PM

Bonjour,

j'ai débuté ce tutoriel bien pratique car je fais de l'anim Flash et on me demande de comprendre le code (quoi? je suis graphiste moi Môssieur, je vais pas me taper du code non plus !!!)
Mais j'ai rencontré un petit souci dans l'interprétation de la syntaxe de base. A savoir par exemple que la fonction qdClicBtDemo n'est pas reconnue par le Flash Player. Je suis sur la version CS5, ça vient peut être de là. Je te saurai d'une éternelle reconnaissance si tu savais m'expliquer pourquoi.
J'aime beaucoup le ton de tes tutoriaux, tu sais ajouter de la bonne humeur là où on a peur de trop d'austérité.

Cordialement,

Loran.

#24 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 19 April 2011 - 18:40 PM

Salut yoobah :)

Contente de savoir que le parti pris gai pour parler des choses sérieuses te convienne :)

Ce qui me convient moins en revanche c'est que la chose te résiste ! Comment ça la fonction n'est pas reconnue ? C'est kiki commande ?

Tu peux nous montrer les lignes que tu testes et le message d'erreur ? ;)
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#25 yoobah

    Ceinture Blanche

  • Members
  • Pip
  • 2 messages

Posté 20 April 2011 - 09:17 AM

Hello,

bon alors finalement j'ai trouvé le problème; j'avais pas nommé le bouton...
Par contre, je bute sur la partie MouseOver. J'ai l'impression que tu n'as pas précisé s'il faut créer un clip des 2 rectangles avec le fond rouge, ni sur quelle image dans la scène on édite le code.
Je sais, mes questions font preuve de ma grande ignorance et je te supplie de ne pas m'envoyer tes hommes de main!!! Mais je n'ai pas l'esprit orienté programmation orientée objet. Malgré tout, j'ai envie de comprendre. Ton tutoriel est quand même super sympa, j'ai ptet loupé quelque chose dans l'explication.
Merci de ta réactivité en tous cas.

#26 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 20 April 2011 - 09:48 AM

Voir le messageyoobah, le 20 April 2011 - 09:17 AM, dit :

J'ai l'impression que tu n'as pas précisé s'il faut créer un clip des 2 rectangles avec le


Citation

Je vous propose donc de fabriquer un symbole MovieClip qui va lui même en contenir d'autres. Partisane du moindre effort je me contenterai pour la démo d'une forme pour le fond et de deux instances d'un autre symbole (un malheureux rectangle, ça ira bien).

…avec dessous copie d'écran, commentée : on voit qu'il s'agit du symbole Mv_Demo. Une flèche qui commente et indique "une forme", deux flèches qui commentent et indiquent "deux instances de symbole".

Je peux faire comment pour être plus précise ? :?
C'est une vraie question. Si tu n'as pas compris c'est que je m'y suis mal prise :oops: Tes retours me permettront de rattraper le coup pour les suivants (et voilà tu essuies les plâtres, dure ta vie ;))


Citation

[…] ni sur quelle image dans la scène on édite le code.

Ah ! Le code : toujours sur l'image qui porte le symbole (ou le bouton) auquel "s'adresse" le code...
Ça c'est vrai je ne dois pas l'avoir dit, et ce sera bien de le faire figurer quelque part une bonne foi pour toutes.

Bon, de toutes façons, je m'a plantue sur ce coup là, à naviguer entre deux eaux, à vouloir faire rapide et efficace, et ben preuve que je ne sais pas.

J'avais en projet d'enrichir, développer et construire correctement (à cause de Kouliane ;)), je vois qu'il y a urgence… je va interchanger les priorités…

Merci de tes retours, n'hésite pas : je ne connais personne qui sache quoi que ce soit avant de l'avoir appris (sauf quelques médiums volants aux super pouvoirs, mais on les reconnait : ils portent un masque et une combinaison :mrgreen: )
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#27 Kulgar

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 177 messages

Posté 20 April 2011 - 10:44 AM

Voir le messageNataly, le 20 April 2011 - 09:48 AM, dit :

J'avais en projet d'enrichir, développer et construire correctement (à cause de Kouliane ;)), je vois qu'il y a urgence… je va interchanger les priorités…

Non, non, pas "à cause", mais "grâce" :mrgreen:. Et je t'ai dit que tu n'étais pas seule sur le coup, suffit que tu me dises ce que tu aimerais que je fasse pour le tuto :) (envoie moi un petit MP pour me dire quelles parties tu veux que je retravaille :))

Voir le messageNataly, le 20 April 2011 - 09:48 AM, dit :

(sauf quelques médiums volants aux super pouvoirs, mais on les reconnait : ils portent un masque et une combinaison :mrgreen: )

Haha, ouais... C'est bien vrai ça :D. Y'en a un même, il porte un slip rouge, un maillot et des collants bleus avec un gros S écrit sur son maillot. Parait même qu'il peut lire et retenir un livre de 1000 pages en moins de 5 secondes. J'aimerais bien avoir ce super pouvoir :roll:.

#28 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 20 April 2011 - 17:55 PM

Je fais donc une pause feuilleteur, et je remets l'ouvrage sur le métier (espérons qu'il ne faudra pas aller jusqu'à 100 O__O )

j'ai re-rédigé et détaillé le chapitre MOUSE_OVER à la demande générale de yoobah et Kouliane réunis… ;)
Et du coup une idée m'est venue qui pourrait peut-être repasser Pripoko (repasser parce qu'il était froissé :mrgreen: ). Je comprends sa frustration de ne pas pouvoir participer comme il l'aimerait à l'aventure tutos progressifs pour débutants.

L'idée - si j'ai compris - c'est de multiplier les exercices aux consignes simplistes. Quand je dis simpliste ce n'est pas péjoratif, c'est pour signifier que le manque d'outils à disposition quand on débute oblige à des exos d'application forcément limités dans leurs ambitions.
Pour les rendre attractif, il n'y a pas de secret il faut compenser par le graphisme. Montrer un exemple qui déchire graphiquement, et donne envie malgré la pauvreté de la consigne.

par exemple un exo possible dans le cadre du tuto considéré, c'est la bulle d'aide, ou la bulle popup, bref : je survole un bouton un truc s'affiche (bulle d'aide, photo, que sais-je) je quitte le survol le truc disparait :

clip.addEventListener(MouseEvent.ROLL_OVER,afficheBulle);
clip.addEventListener(MouseEvent.ROLL_OUT,afficheBulle);

function afficheBulle(e:MouseEvent) {
        bulle.visible=! bulle.visible;
}

Compatible avec les contraintes du tuto (pas de structure de contrôle qu'on est réputés ne pas connaitre, mais visible, x, y et alpha oui) et occasion de préciser les choses quant aux booléens et autres détails d'importance.

Si je fabrique la démo ça va être un bouton moche et une bulle pathétique.

Je pense même (allô Kouliane :roll: ) qu'on peut faire deux étapes, la deuxième étant d'utiliser le paramètre et une propriété dynamique pour afficher la bulle ou l'illustration spécifique à l'objet survolé. Donc illustrant le chapitre suivant.

Pareil pour les puces, l'idéal aurait été de compléter le seul exo/démo de puces graphiquement rigolotes et différentes, qui par exemple n'avancent pas à la même vitesse (voire si on s'accorde le play et le stop, s'agitent quand on les survole et se calment quand on quitte le survol)…

moi je me suis appliquée à faire un disque aux mêmes couleurs que la charte du wiki, et voilà quoi… :?

Donc Pripoko, si tu as envie, et uniquement si tu as envie (je peux comprendre que puisque c'est ton job, tu aspires à faire autre chose de tes loisirs que jouer au grapheu ;)), tu pourrais apporter une contribution ô combien utile (et qui fait défaut à ce jour) en "donnant de la gueule" aux tutos. Du coup tu apprendrais forcément des choses - pour le moins ce qui est l'objet du billet -



Je continue de chercher des exemples d'exos pour enrichir ce tuto là… N'hésite pas, Kouliane, si tu as des idées… En gardant à l'esprit que pas de structure de contrôle, seulement les propriétés de base minimalistes x, y, alpha, visible, name et une paire d'autres qu'on peut s'accorder (vu que le chapitre d'avant n'est pas encore écrit :cool:)
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#29 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 21 April 2011 - 19:08 PM

De peaufinerie, en ré-écriture, j'ai fini par décider d'illustrer de petits exos en m'accordant les quelques méthodes play et consœur… et du coup, ça va tout de suite être plus parlant…

Et encore, là je me suis appliquée du skieur, j'ai résisté au bonhomme fil de fer :cool:

sur le même mode on peut faire des petites choses plus… moins… enfin, on s'est compris je crois :mrgreen:
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#30 Kulgar

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 177 messages

Posté 21 April 2011 - 20:30 PM

Voir le messageNataly, le 20 April 2011 - 17:55 PM, dit :

Je continue de chercher des exemples d'exos pour enrichir ce tuto là… N'hésite pas, Kouliane, si tu as des idées… En gardant à l'esprit que pas de structure de contrôle, seulement les propriétés de base minimalistes x, y, alpha, visible, name et une paire d'autres qu'on peut s'accorder (vu que le chapitre d'avant n'est pas encore écrit :cool:)

Désolée Nataly, j'ai bien tout lu mais en ce moment je suis pas mal occupée ;).
Je tâcherai de chercher quelques exemples. En tout cas Pripoko est partant pour les illustrations :).

Voir le messageNataly, le 20 April 2011 - 17:55 PM, dit :

Je pense même (allô Kouliane :roll: ) qu'on peut faire deux étapes, la deuxième étant d'utiliser le paramètre et une propriété dynamique pour afficher la bulle ou l'illustration spécifique à l'objet survolé. Donc illustrant le chapitre suivant.

Euh, z'ai pas bien compris, tu veux que je fasse quelque chose de précis à ce sujet ? :)

#31 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 21 April 2011 - 22:20 PM

T'inquiète Kouliane, si tu as du taf, rien d'urgent du tout, ni même d'indispensable :)

tu semblais impatiente d'améliorer le tuto, donc en le regardant j'ai imaginé grand.
Tel qu'il est maintenant, je le trouve déjà très honorable… :roll:

Si en plus Pripoko ajoute une touche de fini, ce sera parfait :)
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#32 Kulgar

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 177 messages

Posté 22 April 2011 - 09:18 AM

Voir le messageNataly, le 21 April 2011 - 22:20 PM, dit :

T'inquiète Kouliane, si tu as du taf, rien d'urgent du tout, ni même d'indispensable :)

tu semblais impatiente d'améliorer le tuto, donc en le regardant j'ai imaginé grand.

Ben oui, je suis impatiente :).

De même j'ai très envie de rédiger un tutoriel pour l'intégration d'applications Flash/Flex dans un projet réalisé en Ruby On Rails, avec en prime des explications sur comment échanger des données entre ces environnements (et un "encore plus fort" avec l'utilisation de AMFRuby).

Je suis également en train de rédiger un tutoriel entièrement consacré à Ruby On Rails (faut dire ce qui est, y'a pas beaucoup de choses en Français sur ce fabuleux framework).

De même je suis impatiente d'améliorer le tutoriel de mon Pripoko et de continuer le tutoriel de mon "starfield en AS3".

Seulement, malgré toutes mes impatiences, il se trouve que je dois terminer mon site Web au plus vite si je veux commencer à avoir des clients, et j'ai encore du pain sur la planche :roll:.

Mais t'inquiète pas, comme tu peux le voir, j'ai tous mes projets dans un coin de la tête :) donc que ce soit hier ou demain, je mène toujours à bout les projets sur lesquels je me suis engagée, j'ai juste une liste de priorités bien définies ;). (et ton tuto est en priorité 2).

#33 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 22 April 2011 - 09:29 AM

yes Kouliane ! :) je vois que tu ne crains pas l'ennui sur les décennies à venir :mrgreen:

Alors je t'aide de la liste des priorités (trop bonne, je sais :lol: ) oublie les tutos que je commets, le addEventListener va trouver d'autres forces vives (je tractationne en coulisses ;)) pour les quelques illustrations qui "manquent"… surtout si piproko vient en renfort (et ne te sens pas obligé ¡ hombre ! - je me répète je sais, mais ce qui va sans dire va tellement mieux en le disant -)

La suite je l'ai en tête (et en fiches) ainsi que le début. Ce sera donc une meilleure exploitation des disponibilités si tu fais du tuto sur Ruby On Rails (cékoissa ? :oops: c'est-y viral, pas contagieux j'espère :shock: ).

merci tous les deux du dynamisme et de la bonne humeur :)
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#34 Kulgar

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 177 messages

Posté 22 April 2011 - 09:42 AM

Bah, oui, mais il se trouve que je me suis engagée à rédiger le tutoriel avec toi :) et j'aime pas ne pas respecter mes engagements :roll:.

Sinon, Ruby On Rails c'est un super framework Web. Et quand je dis "super", je pèse mes mots (il est sûrement encore plus génial que ça, je suis loin d'avoir exploité toute sa puissance).

En quelques mots, c'est un framework basé sur le langage Ruby spécifiquement développé et enrichi pour la programmation Web, il est Open Source avec une communauté (anglophone principalement) ébouriffante. Ce Framework a donné naissance a beaucoup d'autres et a inspiré nombre de développeurs PHP.
Je cite Wikipedia : "À partir de cette date, Ruby on Rails a marqué le monde du développement web. On a vu pousser un ensemble de Framework Web Rails-like (Notamment CakePHP, Symfony et CodeIgniter rien que pour le langage PHP)".

Bref, je suis tombée sous le charme de ce framework qui accélère considérablement la programmation Web :) (et qui est surtout moins bordélique que du php qu'on intègre dans le HTML... :roll:). Ce "langage" est "tellement reconnu" que des développeurs Adobe ont créé des plugins spécifique à Ruby On Rails et fonctionnant sous Flex/Flash pour faciliter les communications entre une appli Flex et un projet Rails.

Et si, il a légèrement tendance à être contagieux ce truc :mrgreen:.

#35 Goabonga

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2724 messages

Posté 22 April 2011 - 10:37 AM

Kouliane ? tu parles du Ruby on Rails RIA SDK by adobe ? t'as testé ?



Citation

et qui est surtout moins bordélique que du php qu'on intègre dans le HTML...
Le php n'est pas forcement bordélique, d'ailleurs les frameworks tel symfony disposent d'un moteur de template afin d'éviter ce genre de problème.
Ayant testé un tas de frameworks dans divers languages, je n'ai pas encore trouvé mieux que Symfony ...

#36 Kulgar

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 177 messages

Posté 22 April 2011 - 10:48 AM

Voir le messagegoabonga, le 22 April 2011 - 10:37 AM, dit :

Kouliane ? tu parles du Ruby on Rails RIA SDK by adobe ? t'as testé ?

Pas encore mais ça ne saurait tarder. J'ai Flash Builder 4 que depuis une semaine :mrgreen:. Moi, pour l'instant, je faisais surtout référence à une extension Ruby On Rails pour Flash builder 4.

Mais comme je suis justement en train de faire des échanges de données entre applications Flash et Ruby On Rails... j'explore toutes les pistes pour ça ;).

Voir le messagegoabonga, le 22 April 2011 - 10:37 AM, dit :

Le php n'est pas forcement bordélique, d'ailleurs les frameworks tel symfony disposent d'un moteur de template afin d'éviter ce genre de problème.
Ayant testé un tas de frameworks dans divers languages, je n'ai pas encore trouvé mieux que Symfony ...

Ben justement, le framwork Symfony est inspiré de ROR. Quoi de mieux que d'utiliser Le framework qui a inspiré tous les autres ? :roll:. Et personnellement, pour avoir également utilisé divers framework, je t'avouerais que je suis tout de suite tombée sous le charme de Ruby On Rails ^^. La seule chose qu'on peut reprocher à ce framework, c'est que la communauté est quasiment uniquement anglophone. Mais bon, moi, ça ne m'a jamais arrêté :roll:.

#37 Kulgar

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 177 messages

Posté 22 April 2011 - 10:56 AM

Zut j'ai pas été assez rapide pour éditer :

[EDIT] Un autre soucis pour l'utilisation de ce qu'on peut trouver pour les échanges entre Flex et ROR, c'est que la plupart des solutions préconisent d'utiliser WebORB. Allez savoir pourquoi sachant que WebORB n'est plus maintenu depuis la version 1.8 de Rails et que... depuis la version 1.9 (aujourd'hui nous en somme à la V3.07 de rails...), une librairie nécessaire à WebORB n'existe plus, ce qui fait échouer son installation. Fort heureusement on peut utiliser à la place RubyAMF, qui semble être le digne successeur de WebORB (et lui, au moins, il fonctionne [EDIT] et il est toujours maintenu).

Modifié par Kouliane, 22 April 2011 - 11:01 AM.


#38 lilive

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2993 messages

Posté 23 April 2011 - 13:17 PM

Salut Nataly,

Puisque tu as retravaillé le tuto, et que cette discussion est longue à suivre, je me suis contenté d'aller le relire, en repartant de zéro dans ma tête, pour voir où il en est.

J'ai fait quelques 'tites retouches ici ou là, pas grand chose. Mais surtout j'ai eu envie de séparer le gros bloc "Le paramètre de la fonction de rappel" en plusieurs section. Il me semblait que tout le début était sur le thème de l'utilisation d'une même fonction écouteur sur plusieurs objets, donc j'ai essayé de le mettre en évidence. Qu'en penses-tu?

Petite erreur dans le jeu des puces il me semble:

Citation

Ce qu'on veut - en français - c'est que le clip qui a reçu le clic se déplace. Or le clip qui a reçu le clic… on le connait : c'est me.currentTarget.
currentTarget c'est l'objet écouté non? en tout cas cette phrase contredit une précédente:

Citation

En revanche si vous écoutez le clip, currentTarget renvoie toujours le clip écouté, alors que target renvoie précisément l'objet qui a reçu le clic, donc soit le clip lui même (clic ds la forme) soit l'un des clips qu'il contient.
Dans cet exemple on peut faire avec currentTarget ou target au choix. J'ai corrigé en utilisant target.

Du coup, remarque: à ce moment, on est en plein dans le sujet de la propagation des évènements, mais on n'en a pas encore parlé. J'ai failli ajouter qu'on pouvait encore faire plus simple avec:
puceContainer.addEventListener(MouseEvent.CLICK, avanceQdClic);
function avanceQdClic(me:MouseEvent):void{
       me.target.x+=10;
}
mais j'ai eu peur que ça mette la charrue avant les boeufs. En tout cas ce petit exemple des puces fait un bon exemple pour le chapitre sur la propagation. Ça fait réfléchir comment ça se mélange je trouve.

Je me suis arrêté à la fin de "Le beurre et l'argent du beurre : buttonMode"

Je trouve que jusque-là c'est très très bien. C'est clair, agréable à lire, précis, documenté, plein d'exemples, de screenshots, de sports d'hiver, ça roule, aucun soucis, je vois pas ce qu'on peut demander de plus, à part une bande son qu'on pourrait écouter la nuit pour apprendre en dormant :Hola:

Considères-tu le chapitre sur la propagation comme abouti, et veux-tu un autre retour dessus? Finalement il ne faut pas s'étonner si cette page donne un peu de fil à retordre, c'est quand même un sacré gros morceau...

#39 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 23 April 2011 - 13:57 PM

hi hi :) sympa d'être repassé par là :Hola:

je suis trop curieuse pour avoir résisté à survoler ton retour alors que je suis sur le départ, je ne commente donc que ça qui me saute aux yeux et avec lequel je ne suis pas d'accord :

Voir le messagelilive, le 23 April 2011 - 13:17 PM, dit :

Petite erreur dans le jeu des puces il me semble:

currentTarget c'est l'objet écouté non? en tout cas cette phrase contredit une précédente:

Dans cet exemple on peut faire avec currentTarget ou target au choix. J'ai corrigé en utilisant target.

il faut privilégier currentTarget, c'est la puce qu'on écoute, qu'il s'agisse d'un clip avec une pov' forme ou d'un clip sophistiqué contenant quantité de sous clips, c'est la puce qu'on déplace pas ses enfants.
Du coup ça ne contredit rien… ou j'ai pas compris ton intervention… :roll:


le reste je suis certaine que tu as eu bien raison - comme d'hab - mais compte sur moi pour m'en assurer à la virgule près - ce soir quand le soleil sera couché :mrgreen:
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#40 lilive

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2993 messages

Posté 23 April 2011 - 14:43 PM

Voir le messageNataly, le 23 April 2011 - 13:57 PM, dit :

il faut privilégier currentTarget, c'est la puce qu'on écoute, qu'il s'agisse d'un clip avec une pov' forme ou d'un clip sophistiqué contenant quantité de sous clips, c'est la puce qu'on déplace pas ses enfants.
Du coup ça ne contredit rien… ou j'ai pas compris ton intervention… :roll:
Et bien tu dis d'abord:
target renvoie précisément l'objet qui a reçu le clic
puis:
Or le clip qui a reçu le clic… on le connait : c'est me.currentTarget
Du coup je trouve ambigu ce que tu entends par "recevoir le clic". Dans un cas c'est le clip précisément cliqué, dans l'autre c'est la puce, quelque soit sa structure et les enfants qu'elle pourrait contenir et qui pourraient être cliqués.

Sinon je suis d'accord que vu là où on en est dans le tuto, autant garder l'usage de currentTarget pour cet exemple, ce qui de plus serait la seule possibilité si les puces avaient des enfants (oooooooh, des bébés puces, comme ils sont mignons)

#41 lilive

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2993 messages

Posté 23 April 2011 - 14:49 PM

Voir le messageNataly, le 23 April 2011 - 13:57 PM, dit :

le reste je suis certaine que tu as eu bien raison - comme d'hab - mais compte sur moi pour m'en assurer à la virgule près - ce soir quand le soleil sera couché :mrgreen:
Oups... la pression :mrgreen:

Bien sûr si ça ne te va pas je peux faire moi-même le retour en arrière, ce n'est qu'une proposition.
Pour le changement dans le plan, je suis allé jusque-là où j'ai lu. Mais je pense qu'on pourrait peut-être aussi séparer tout ce qui concerne la propagation dans un ====== (x6) à part.
Et aussi j'ai ajouté MouseEvent dans le titre général, cela me semblait mieux pour le référencement.

#42 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 23 April 2011 - 22:20 PM

Comme d'hab, j'ai d'abord carrément pas vu ce que tu avais modifié, tellement c'est bien comme ça :)

Citation

Et bien tu dis d'abord:
target renvoie précisément l'objet qui a reçu le clic
puis:
Or le clip qui a reçu le clic… on le connait : c'est me.currentTarget
Du coup je trouve ambigu ce que tu entends par "recevoir le clic".


très bien vu !
j'ai donc remis currentTarget, et modifié le texte, tu as raison screugneu : target c'est le clip qui "recoit" le clic, currentTarget celui auquel on associe l'écouteur...



Voilà ça confirme : le greumeuleur en chef est IN-DIS-PEN-SABLE :roi:
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#43 flash2006

    Ceinture Blanche

  • Members
  • Pip
  • 6 messages

Posté 24 April 2011 - 10:08 AM

Bon, ok, je passerai l'après-midi à lire ce qui précède.
Je voulais simplement dire deux choses:

J'aime beaucoup tes tutos, Nataly: drôles, intelligents et simples (ce qui est la même chose), sans jargon anglicisant du style-je-me-la-pète et généreux (cf les sources!!). :lol:
Aussi,deucio, merci de me dire comment on fait pour faire parvenir à Mediabox des fichiers en illustration des tutos et les mettre dans les Ressources correspondantes, histoire de remercier la talentueuse. :Hola:

PS Si Ronchon me dit que tout est dans le règlement p.123654, n°4587A, qu'il s'abstienne, c'est dimanche!

Ah! Ca y est, j'ai vu un téléchargeur (uploader) pour ce faire,semble-t-il, juste en bas ,c'est peut-être ça, je vais essayer!!

#44 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 24 April 2011 - 11:31 AM

Voir le messageonde_999, le 24 April 2011 - 10:08 AM, dit :

Bon, ok, je passerai l'après-midi à lire ce qui précède.

:mrgreen:

Citation

J'aime beaucoup tes tutos, Nataly: drôles, intelligents et simples

Comme moi quoi, si ce n'est qu'en plus je suis modeste et effacée :roll:


Citation

merci de me dire comment on fait pour faire parvenir à Mediabox des fichiers en illustration des tutos et les mettre dans les Ressources correspondantes
Alors là ! Trop fort !
Si les visiteurs des tutos, se mettent à me donner la main pour combler mes manquements en terme d'illustration, ça va vraiment tout déchirer, on va pouvoir se mettre en lice pour le concours du meilleur tuto de la planète galaxie. :Hola:

Pour répondre à ta question : effectivement le bouton "ajouter des images et des fichiers" (qui ressemble à un tableau avec son cadre), le sixième en partant de la gauche, ouvrira une interface de téléchargement : mediamanager. Attention il s'agit de prendre soin avant tout manipulation "d'envoi" de bien prendre garde "à'être au bon endroit", c'est expliqué ici.

Si tu t'as gourue, c'est pas grave : dis moi où tu as lâché quoi par inadvertance, j'irai supprimer (j'ai tellement flanqué le bronks à mes débuts ici que je comprends bien que ça puisse arriver à d'autres ;))
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#45 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 24 April 2011 - 12:01 PM

Lilive

je m'y perds dans les commentaires quant aux puces (vu que je l'ai recyclé en fin de tutal, sais pô bien de quoi tu parles quand)

Citation

Dans cet exemple on peut faire avec currentTarget ou target au choix. J'ai corrigé en utilisant target.

Du coup, remarque: à ce moment, on est en plein dans le sujet de la propagation des évènements, mais on n'en a pas encore parlé. J'ai failli ajouter qu'on pouvait encore faire plus simple avec:

puceContainer.addEventListener(MouseEvent.CLICK, avanceQdClic);
function avanceQdClic(me:MouseEvent):void{
me.target.x+=10;
}

ça c'est au chapitre couplage… et de fait c'est le code proposé (aux modifs successives de target/currentTarget près)
je dois rater une bonne idée :?


Citation

Mais je pense qu'on pourrait peut-être aussi séparer tout ce qui concerne la propagation dans un ====== (x6) à part.
[…]
Considères-tu le chapitre sur la propagation comme abouti, et veux-tu un autre retour dessus?

Abouti… certes non, ne serait-ce que parce que l'illustration semble ne pas convenir.

Je crois que tu as derrière les yeux autre-chose que ce que j'imagine.
Pour moi c'est vraiment ce que j'ai représenté à l'aide des flèches qui changent de couleur et de trajet selon l'objet cliqué. En fait je me représente la scène lançant un événement comme une balle de ping-pong, qui vient rebondir sur l'objet qui l'a "diffusée" pour remonter ensuite. Le rebond c'est la phase cible, la remonté la phase bubble, le lancé la phase capture…
Du coup, même si l'illustration est très laide, je vois pas comment faire "mieux" ou autrement… :roll:
Mais franchement il ne faut hésiter pas à proposer mieux, ou juste différent :)

Quant à ouvrir un chapitre/page différent ça me chiffonne, pcq eventPhase est une propriété du paramètre, et que j'ai pas envie de la taire dans le chapitre dédié. Et comme je suis vraiment dure à la comprenote, je traduis mal ce que tu suggères par : "un ====== (x6) à part" :oops:

Vu que j'ai constaté que tes idées sont le plus souvent meilleures que les miennes (souvent c'est pas toujours, hein ! :mrgreen: ), je veux bien que tu développes la suggestion ;)

:)
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)