<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://forums.mediabox.fr/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel>
        <title>Ressources Mediabox</title>
        <description></description>
        <link>http://forums.mediabox.fr/wiki/</link>
        <lastBuildDate>Sun, 13 May 2012 19:26:00 +0200</lastBuildDate>
        <generator>FeedCreator 1.7.2-ppt DokuWiki</generator>
        <image>
            <url>http://forums.mediabox.fr/wiki/lib/images/favicon.ico</url>
            <title>Ressources Mediabox</title>
            <link>http://forums.mediabox.fr/wiki/</link>
        </image>
        <item>
            <title>tutoriaux</title>
            <link>http://forums.mediabox.fr/wiki/tutoriaux</link>
            <description>
&lt;table class=&quot;mainSummary&quot;&gt;&lt;tr&gt;

&lt;td class=&quot;colonne1&quot;&gt;

&lt;div class=&quot;entree&quot;&gt;&lt;div class=&quot;titre flash&quot;&gt;&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform&quot;&gt;Flash Platform&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;resume&quot;&gt;&lt;p&gt;
Tutoriels et ressources Adobe Flash, Flex, AIR, Flash Catalyst, programmation Actionscript et MXML.
&lt;/p&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/documentation/flash&quot; class=&quot;wikilink1&quot; title=&quot;documentation:flash&quot;&gt;Documentations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/debuter&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:debuter&quot;&gt;Commencer son apprentissage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation&quot;&gt;Programmation : Généralités&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/flex&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:flex&quot;&gt;Adobe Flex/Flash Builder et langage MXML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/air&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:air&quot;&gt;Adobe AIR (Adobe Integrated Runtime)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/catalyst&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:catalyst&quot;&gt;Adobe Flash Catalyst&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/affichage&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:affichage&quot;&gt;Affichage et animation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/gui&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:gui&quot;&gt;Interactivité, interfaces graphiques et composants.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/rich_media&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:rich_media&quot;&gt;Rich Media&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/dynamique&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:dynamique&quot;&gt;Flash dynamique&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/math_physique&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:math_physique&quot;&gt;Maths et physique&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/integration_publication&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:integration_publication&quot;&gt;Intégration et publication&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/realisations&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:realisations&quot;&gt;Réalisations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/jeux&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:jeux&quot;&gt;Jeux&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;

&lt;div class=&quot;entree&quot;&gt;&lt;div class=&quot;titre apple&quot;&gt;&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/apple&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:apple&quot;&gt;Développement iPhone, iPad, et Mac&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;resume&quot;&gt;&lt;p&gt;
Tutoriels portants sur le développement d&amp;#039;applications pour iPhone, iPad et Mac:
Programmation en Objective-C, utilisation de l&amp;#039;&lt;acronym title=&quot;Application Programming Interface&quot;&gt;API&lt;/acronym&gt; Cocoa, outils de production (XCode).
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;entree&quot;&gt;&lt;div class=&quot;titre director&quot;&gt;&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/director&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:director&quot;&gt;Adobe Director&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;resume&quot;&gt;&lt;p&gt;
Director, grâce à son interface, son langage de programmation Lingo (orienté objet ou non) et JavaScript
permet de créer des applications multimédias enrichies et des jeux, aussi bien pour DVD/CD-ROM que pour le web.
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;

&lt;/td&gt;&lt;td class=&quot;colonne2&quot;&gt;

&lt;div class=&quot;entree&quot;&gt;&lt;div class=&quot;titre php&quot;&gt;&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/php&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:php&quot;&gt;PHP&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;resume&quot;&gt;&lt;p&gt;
&lt;acronym title=&quot;Hypertext Preprocessor&quot;&gt;PHP&lt;/acronym&gt; est un langage de script qui est principalement utilisé pour être exécuté sur un serveur Web, mais il peut fonctionner comme n&amp;#039;importe quel langage interprété en utilisant les scripts et son interpréteur sur un ordinateur.
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;entree&quot;&gt;&lt;div class=&quot;titre dotnet&quot;&gt;&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/dotnet&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:dotnet&quot;&gt;.NET&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;resume&quot;&gt;&lt;p&gt;
.NET correspond à un ensemble Microsoft qui comporte un framework, des langages de développement, des spécifications techniques et des systèmes (Systèmes d&amp;#039;exploitation, Logiciels serveurs…).
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;entree&quot;&gt;&lt;div class=&quot;titre java&quot;&gt;&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/java&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:java&quot;&gt;Java&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;resume&quot;&gt;&lt;p&gt;
Le langage de programmation informatique orienté objet de Sun Microsystems.
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;entree&quot;&gt;&lt;div class=&quot;titre silverlight&quot;&gt;&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/silverlight&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:silverlight&quot;&gt;Microsoft Silverlight&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;resume&quot;&gt;&lt;p&gt;
L&amp;#039;alternative à Flash de Microsoft pour la réalisation d&amp;#039;applications web riches intégrant graphismes, animations, sons et vidéos.
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;

&lt;/td&gt;

&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;table class=&quot;mainSummary&quot;&gt;&lt;tr&gt;

&lt;td class=&quot;colonne1&quot;&gt;

&lt;div class=&quot;entree&quot;&gt;&lt;div class=&quot;titre javascript&quot;&gt;&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/javascript&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:javascript&quot;&gt;Javascript&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;resume&quot;&gt;&lt;p&gt;
Le langage de programmation Javascript et son utilisation pour le web notamment.
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;entree&quot;&gt;&lt;div class=&quot;titre dreamweaver&quot;&gt;&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/html_et_css&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:html_et_css&quot;&gt;Réaliser des pages pour le web : HTML, XHTML et CSS&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;resume&quot;&gt;&lt;p&gt;
Création de pages web &lt;acronym title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/acronym&gt;, &lt;acronym title=&quot;Extensible HyperText Markup Language&quot;&gt;XHTML&lt;/acronym&gt; et &lt;acronym title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/acronym&gt;
&lt;/p&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/html_et_css/html&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:html_et_css:html&quot;&gt;HTML et XHTML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/html_et_css/css&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:html_et_css:css&quot;&gt;Les CSS (feuilles de style en cascade)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/documentation&quot; class=&quot;wikilink1&quot; title=&quot;documentation&quot;&gt;Documentations&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;

&lt;div class=&quot;entree&quot;&gt;&lt;div class=&quot;titre dreamweaver&quot;&gt;&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/sites&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:sites&quot;&gt;Sites web - Généralités&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;resume&quot;&gt;&lt;p&gt;
Articles généraux sur la conception et la gestion de sites web
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;entree&quot;&gt;&lt;div class=&quot;titre dreamweaver&quot;&gt;&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/dreamweaver&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:dreamweaver&quot;&gt;Adobe Dreamweaver&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;resume&quot;&gt;&lt;p&gt;
Tutoriels et ressources Adobe Dreamweaver
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;entree&quot;&gt;&lt;div class=&quot;titre expression&quot;&gt;&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/expression&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:expression&quot;&gt;Microsoft Expression&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;resume&quot;&gt;&lt;p&gt;
La suite de Microsoft pour la création d&amp;#039;application riches pour le web ou le bureau.
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;

&lt;/td&gt;&lt;td class=&quot;colonne2&quot;&gt;

&lt;div class=&quot;entree&quot;&gt;&lt;div class=&quot;titre&quot;&gt;&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/pao&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:pao&quot;&gt;PAO&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;resume&quot;&gt;&lt;p&gt;
Tutoriels généraux et ressources de Publication Assistée par Ordinateur
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;entree&quot;&gt;&lt;div class=&quot;titre photoshop&quot;&gt;&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/photoshop&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:photoshop&quot;&gt;Adobe Photoshop&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;resume&quot;&gt;&lt;p&gt;
Tutoriels et ressources Adobe Photoshop
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;entree&quot;&gt;&lt;div class=&quot;titre illustrator&quot;&gt;&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/illustrator&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:illustrator&quot;&gt;Adobe Illustrator&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;resume&quot;&gt;&lt;p&gt;
Tutoriels et ressources Adobe Illustrator
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;entree&quot;&gt;&lt;div class=&quot;titre indesign&quot;&gt;&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/indesign&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:indesign&quot;&gt;Adobe InDesign&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;resume&quot;&gt;&lt;p&gt;
Tutoriels et ressources Adobe InDesign
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;entree&quot;&gt;&lt;div class=&quot;titre aftereffects&quot;&gt;&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/after-effects&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:after-effects&quot;&gt;Adobe After Effects&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;resume&quot;&gt;&lt;p&gt;
Tutoriels et ressources Adobe After Effects
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;entree&quot;&gt;&lt;div class=&quot;titre catalyst&quot;&gt;&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/catalyst&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:catalyst&quot;&gt;Flash Catalyst&lt;/a&gt;
&lt;/p&gt;&lt;/div&gt;&lt;div class=&quot;resume&quot;&gt;&lt;p&gt;
Tutoriels et ressources Adobe Flash CATALYST CS5
&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;

&lt;/td&gt;

&lt;/tr&gt;&lt;/table&gt;

&lt;p&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;
</description>
            <author>Pierre GIRARD</author>
            <pubDate>Sat, 12 May 2012 19:22:03 +0200</pubDate>
        </item>
        <item>
            <title>Les mystères du feuilleteur (Pageflip) - ancienne révision restaurée</title>
            <link>http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/affichage/animation/pageflip</link>
            <description>&lt;div class=&quot;wrap_todo wrap_bg&quot; style=&quot;width:800px;&quot;&gt;
&lt;strong&gt;Chantier suffisamment avancé pour recueillir vos points de vue&lt;/strong&gt;&lt;br/&gt;

Page non encore sécurisée.&lt;br/&gt;

Port du casque recommandé.
&lt;/div&gt;
&lt;h1&gt;&lt;a name=&quot;les_mysteres_du_feuilleteur_pageflip&quot; id=&quot;les_mysteres_du_feuilleteur_pageflip&quot;&gt;Les mystères du feuilleteur (Pageflip)&lt;/a&gt;&lt;/h1&gt;&lt;noscript class=&quot;datambplugin_pageinfo&quot;&gt;Activez JavaScript pour une utilisation optimale.&lt;/noscript&gt;
&lt;div id=&quot;datambplugin_pageinfo&quot;&gt;&lt;div id=&quot;pageinfo__header&quot;&gt;&lt;span&gt;Par nataly (Nataly), le 01 avril 2011&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;600&quot; height=&quot;500&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/introdemopart1.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;600&quot; height=&quot;500&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/introdemopart1.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;
&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

Bonjour toutes et tous, qui vous dites depuis un moment :&lt;br/&gt;

&lt;em&gt;“Mais bon Sang, comment ça marche c&amp;#039;te chose ?! Certainement faut-il être très fort en maths et encore plus en AS pour avoir une chance d&amp;#039;y comprendre quoi que ce soit…”&lt;/em&gt;.&lt;br/&gt;

&lt;br/&gt;

Et bien non &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_smile.gif&quot; class=&quot;middle&quot; alt=&quot;:)&quot; /&gt; Et je suis formelle !&lt;br/&gt;

Une fois l&amp;#039;illusion démontée, je me fais forte de débrouiller l&amp;#039;embrouille à destination du plus grand nombre.&lt;br/&gt;

&lt;br/&gt;

Aussi vais-je m&amp;#039;y prendre en deux parties : &lt;br/&gt;

&lt;br/&gt;
 
• &lt;strong&gt;Ici décortiquer le principe de base&lt;/strong&gt;, puis en faire une fonction qui permet de corner et tourner une seule feuille depuis un coin quelconque, comme illustré ci-dessus.&lt;br/&gt;

• &lt;strong&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/affichage/animation/pageflip/feuilleteur&quot; class=&quot;wikilink2&quot; title=&quot;tutoriaux:flashplatform:affichage:animation:pageflip:feuilleteur&quot; rel=&quot;nofollow&quot;&gt;Là-bas un exemple de mise en œuvre&lt;/a&gt;&lt;/strong&gt; de la dite fonction au sein d&amp;#039;un feuilleteur complet.&lt;br/&gt;

&lt;br/&gt;

Il sera donc, dans cette partie de tuto, question principalement de géométrie. &lt;br/&gt;

Ne fuyez pas, je promets que ça ne fait appel à rien qui dépasse l&amp;#039;entendement commun. Si vous savez reconnaître un angle droit, vous êtes sauvés. D&amp;#039;ailleurs je vais me permettre, à la demande générale du ronchon de service, un préambule aussi court que possible pour synthétiser et résumer les quelques points de vocabulaire indispensables et les deux trois formules que vous avez peut-être oubliés.&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_prerequis&quot;&gt;
D&amp;#039;un point de vue AS3, je considère que vous en avez une pratique courante, on utilisera par exemple &lt;strong&gt;la classe Timer&lt;/strong&gt; sans explications spécifiques. C&amp;#039;est d&amp;#039;ailleurs la seule chose à connaitre en dehors des traditionnels addChild, new Shape() et autres structures de contrôle.&lt;br/&gt;

Pour vous rafraichir les idées, si besoin était, vous trouverez un chapitre qui résume les choses à l&amp;#039;occasion &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/affichage/animation/neige_scintille_etc#la_classe_timer_approche&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:affichage:animation:neige_scintille_etc&quot;&gt;de ce tuto&lt;/a&gt;.
&lt;/div&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_quote wrap_cyan&quot;&gt;
&lt;strong&gt;Remerciements appuyés à :&lt;/strong&gt;&lt;br/&gt;

Dldler et Lilive&lt;sup&gt;&lt;a href=&quot;#fn__1&quot; name=&quot;fnt__1&quot; id=&quot;fnt__1&quot; class=&quot;fn_top&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt;, sans le secours desquels je ne suis pas bien certaine que ce tuto aurait abouti &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_smile.gif&quot; class=&quot;middle&quot; alt=&quot;:)&quot; /&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;dans_la_vraie_vie&quot; id=&quot;dans_la_vraie_vie&quot;&gt;Dans la vraie vie&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
 &lt;br/&gt;

&lt;br/&gt;

Attaquons sans plus attendre, et une fois n&amp;#039;est pas coutume, ce n&amp;#039;est pas en créant nouveau document qu&amp;#039;on va commencer. Je vous propose de faire un détour par la vraie vie pour comprendre de quoi il retourne (oui : jeu de mots &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_mrgreen.gif&quot; class=&quot;middle&quot; alt=&quot;:mrgreen:&quot; /&gt;).&lt;br/&gt;

Munissez vous de deux feuillets suffisamment rigides, papier cartonné, canson un peu lourd, bristol, ce que vous avez sous la main. Moi ce sera du bristol.&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

[video Mettre en évidence superposition et distances identiques : isocèle]&lt;br/&gt;

&lt;br/&gt;

&lt;a href=&quot;http://www.natalyformation.net/temp/Feuilleteur.m4v&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.natalyformation.net/temp/Feuilleteur.m4v&quot;  rel=&quot;nofollow&quot;&gt;pour les aventureux impatients qui ne peuvent attendre l’inauguration, vidéo indispensable à visionner elle illustre les deux ruses fondatrices de tout le reste &lt;/a&gt;
&lt;br/&gt;

Ce qu&amp;#039;on vient de faire avec nos petits doigts agiles - je ne doute pas que vous vous y soyez essayés aussi pour bien vous convaincre du principe - transformé en clips et en animation, ça donne ça (depuis le coin bas droit) :&lt;br/&gt;

&lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;425&quot; height=&quot;350&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/feuilpazapaintro.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;425&quot; height=&quot;350&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/feuilpazapaintro.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;

&lt;br/&gt;

Pour terminer l&amp;#039;illusion, il s&amp;#039;agira de se débrouiller pour qu&amp;#039;on ne voit qu&amp;#039;un morceau de Verso (le triangle du coin) et pour dissimuler ce qui “déborde” sur Recto, comme illustré au dessus avec majuscule enfoncée.&lt;br/&gt;

Il va donc être essentiellement question de triangles.&lt;br/&gt;

&lt;br/&gt;

Afin d&amp;#039;avoir l&amp;#039;esprit libre pour jouer les Sherlock Holmes et débusquer les infos (angles et coordonnées) qui nous intéressent, je propose à ceux qui n&amp;#039;ont gardé que de très lointains souvenirs des années collège, un détour récapitulatif des connaissances que nous mettrons à contribution.&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;le_minimum_a_savoir_pour_suivre_ce_qui_va_suivre&quot; id=&quot;le_minimum_a_savoir_pour_suivre_ce_qui_va_suivre&quot;&gt;Le minimum à savoir pour suivre ce qui va suivre&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Donnez moi un angle droit et je soulèverai le monde, c&amp;#039;est ma version toute personnelle de la célèbre saillie de Monsieur Archimède. &lt;br/&gt;

En effet, pour peu qu&amp;#039;on repère un angle droit quelque part on a toutes les chances de pouvoir calculer ce qu&amp;#039;on veut.&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_important&quot;&gt;
&lt;strong&gt;J&amp;#039;ai pris le parti de raisonnements géométriques. Il en est d&amp;#039;autres&lt;/strong&gt;, sans doute plus élégants, peut-être même plus courts en terme de lignes de code, qui font appel à des connaissance mathématiques plus avancées. &lt;br/&gt;

Pour être accessible au plus grand nombre (et ne pas déborder de mes champs de compétence &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_mrgreen.gif&quot; class=&quot;middle&quot; alt=&quot;:mrgreen:&quot; /&gt;), j&amp;#039;ai choisi l&amp;#039;option géométrie/trigo, en utilisant les quelques outils de première nécessité, soit trois fois rien.&lt;br/&gt;

Il s&amp;#039;entend que d&amp;#039;autres calculs permettraient d&amp;#039;obtenir le même résultat, et que les “formules” ici proposées ne sont pas, et de loin, les seules possibles. D&amp;#039;ailleurs en fin de tuto, je vous proposerai trois façons d&amp;#039;aborder et de résoudre la même problématique, charge à vous plus tard de choisir les outils mathématiques que vous privilégierez pour parvenir à vos fins.
&lt;/div&gt;
&lt;p&gt;

&lt;br/&gt;

Ce chapitre résume et synthétise les quelques points de géométrie sur les quels nous appuierons nos raisonnements. N&amp;#039;hésitez pas à sauter à la suite, on n&amp;#039;y verra rien qui concerne spécifiquement le développement du feuilleteur.&lt;br/&gt;

 &lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;triangle_rectangle&quot; id=&quot;triangle_rectangle&quot;&gt;Triangle rectangle&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Qui dit angle droit dit triangle rectangle, un peu de vocabulaire pour être sûr d&amp;#039;être bien d&amp;#039;accord :&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

Le coté face à l&amp;#039;angle droit se nomme hypoténuse (les grecs pensaient dessous)&lt;br/&gt;

Pour chacun des deux autres angles, on nomme opposé le côté face à l&amp;#039;angle considéré, et adjacent le dernier côté.&lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/definitions.gif&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

• Depuis Pythagore on sait que &lt;em&gt;le carré de l&amp;#039;hypoténuse vaut la somme des carrés des deux autres côtés&lt;/em&gt;, écrit autrement :&lt;br/&gt;

&lt;br/&gt;

&lt;strong&gt;H&lt;sup&gt;2&lt;/sup&gt;= F&lt;sup&gt;2&lt;/sup&gt;+G&lt;sup&gt;2&lt;/sup&gt;&lt;/strong&gt;&lt;br/&gt;

&lt;br/&gt;

En gros, pour peu qu&amp;#039;on ait la mesure de deux côtés on trouve le troisième &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

• Il est à noter aussi qu&amp;#039;un rectangle découpé par sa diagonale donne deux triangles rectangles identiques (mêmes angles, mêmes cotés).&lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/geomrectendeux.gif&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

 &lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;sinus_cosinus_et_tangente&quot; id=&quot;sinus_cosinus_et_tangente&quot;&gt;Sinus cosinus et tangente&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Soit un angle quelconque au sommet d&amp;#039;un triangle rectangle (oui, encore), on en obtient le sinus en calculant le rapport du côté opposé à l&amp;#039;hypoténuse ; le cosinus c&amp;#039;est côté adjacent sur hypoténuse, et tangente c&amp;#039;est opposé sur adjacent. &lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/sincos.gif&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

• Si on a &lt;strong&gt;un triangle rectangle, un côté et un angle… On obtient les deux autres côtés&lt;/strong&gt;. Enfin, pour peu qu&amp;#039;on connaisse le sinus, le cosinus ou la tangente de l&amp;#039;angle en question.&lt;br/&gt;

Avec AS3 ce sont les fonction &lt;strong&gt;Math.sin&lt;/strong&gt;, &lt;strong&gt;Math.cos&lt;/strong&gt; et &lt;strong&gt;Math.tan&lt;/strong&gt; qui s&amp;#039;en chargent.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
• Si on a &lt;strong&gt;un triangle rectangle, deux côtés… On obtient les deux autres angles&lt;/strong&gt;. Cette fois à l&amp;#039;aide des fonctions &lt;strong&gt;Math.asin&lt;/strong&gt;, &lt;strong&gt;Math.acos&lt;/strong&gt; ou &lt;strong&gt;Math.atan&lt;/strong&gt;&lt;sup&gt;&lt;a href=&quot;#fn__2&quot; name=&quot;fnt__2&quot; id=&quot;fnt__2&quot; class=&quot;fn_top&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt;.&lt;br/&gt;

 &lt;br/&gt;

Voilà, j&amp;#039;ai tout dit de ce qui nous occupera, ça vous rassure ? Parfait, alors une dernière précision pour être tout à fait au point :&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;triangle_isocele&quot; id=&quot;triangle_isocele&quot;&gt;Triangle isocèle&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

C&amp;#039;est ainsi qu&amp;#039;on appelle les triangles dont &lt;strong&gt;deux côtés sont égaux&lt;/strong&gt; (même taille). Je les aime bien parce qu&amp;#039;on peut toujours les couper en deux de façon à obtenir deux triangles rectangle (ah ah).&lt;br/&gt;

&lt;br/&gt;

Notez qu&amp;#039;on peut tracer une ligne qui part du milieu de la base (segment rouge) et rejoint le sommet. Chacun des points qui la constituent se trouve à égale distance des extrémités du segment rouge, on dit que c&amp;#039;est sa médiatrice&lt;sup&gt;&lt;a href=&quot;#fn__3&quot; name=&quot;fnt__3&quot; id=&quot;fnt__3&quot; class=&quot;fn_top&quot;&gt;3)&lt;/a&gt;&lt;/sup&gt;.&lt;br/&gt;

Elle a pour autre particularité de former un angle droit avec le segment concerné et &lt;strong&gt;dans un triangle isocèle&lt;/strong&gt; elle définit un axe de symétrie. Du coup &lt;strong&gt;les angles de la base sont égaux&lt;/strong&gt;.&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/geoiso.gif&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

&lt;a href=&quot;http://debart.pagesperso-orange.fr/college/triangle_college_classique.html#ch1&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://debart.pagesperso-orange.fr/college/triangle_college_classique.html#ch1&quot;  rel=&quot;nofollow&quot;&gt;http://debart.pagesperso-orange.fr/college/triangle_college_classique.html#ch1&lt;/a&gt;&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

Cette fois c&amp;#039;est bon, on sait où on va (calculer des coordonnées ou des angles), avec quoi (des triangles dont on sait tout) et d&amp;#039;où on part (le point qui suit les coordonnées de la souris). Défouraillez donc un nouveau document flash, c&amp;#039;est parti !&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;depuis_le_coin_en_bas_a_droite&quot; id=&quot;depuis_le_coin_en_bas_a_droite&quot;&gt;Depuis le coin en bas à droite&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
On va commencer par expérimenter depuis un seul coin puis on déclinera sur les trois autres. Je choisis arbitrairement le coin bas/droit (puisqu&amp;#039;il faut que je fasse tout). 

&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;preparer_le_terrain&quot; id=&quot;preparer_le_terrain&quot;&gt;Préparer le terrain&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

Quand il s&amp;#039;agira d&amp;#039;un feuilleteur tout entier (plusieurs pages réunies en “livre”) ces pages seront probablement des fichiers (.jpg, .png, .swf…) mais peut-être aussi des clips présents dans la bibliothèque d&amp;#039;un .fla.&lt;br/&gt;

Pour nous entrainer (et ne pas nous compliquer avec le chargement d&amp;#039;images) considérons deux clips de bibliothèque : un symbole P1(pour le recto) et un autre P2 (pour le verso). 
&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;le_clip_recto_p1&quot; id=&quot;le_clip_recto_p1&quot;&gt;Le clip Recto (P1)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Rien de compliqué : un malheureux rectangle, un champ texte (même pas obligé, mais ça permet d&amp;#039;y voir clair), le point d&amp;#039;origine en bas à gauche (parce qu&amp;#039;il faut bien convenir de quelque chose).&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;le_clip_verso_p2&quot; id=&quot;le_clip_verso_p2&quot;&gt;Le clip Verso (P2)&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Pas beaucoup plus dur : &lt;strong&gt;un rectangle aux mêmes dimensions que celui du symbole Recto&lt;/strong&gt; (obligé : on considère que toutes les pages sont de hauteur/largeur identiques), et un champ texte.&lt;br/&gt;

Le &lt;strong&gt;point d&amp;#039;origine en bas à gauche&lt;/strong&gt; aussi - et là ce n&amp;#039;est plus indifférent du tout.&lt;br/&gt;

&lt;br/&gt;

&lt;em&gt;Ici j&amp;#039;ai un problème : soit je n&amp;#039;anticipe rien du tout et j&amp;#039;attends qu&amp;#039;on se prenne le mur, soit je m&amp;#039;égare en de longues justifications, peut-être prématurées… (pas facile ma vie, je vous le dis !)&lt;br/&gt;

Je coupe la poire en deux :&lt;/em&gt;&lt;br/&gt;

&lt;br/&gt;

&lt;strong&gt;Ceux qui veulent tenter l&amp;#039;aventure sans filet peuvent &lt;a href=&quot;#ajouter_les_pages_a_la_scene&quot; title=&quot;tutoriaux:flashplatform:affichage:animation:pageflip &amp;crarr;&quot; class=&quot;wikilink1&quot;&gt;passer à la suite&lt;/a&gt;.&lt;/strong&gt; &lt;br/&gt;

&lt;br/&gt;

• Les autres… Ayez confiansssssss… &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_mrgreen.gif&quot; class=&quot;middle&quot; alt=&quot;:mrgreen:&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

On va regrouper les éléments du visuel du symbole P2 en un clip. Le plus simple c&amp;#039;est de tout sélectionner, de convertir en symbole (Clip tant qu&amp;#039;à faire) à l&amp;#039;aide de la touche F8 en prenant soin de fixer le point d&amp;#039;origine en bas à gauche :&lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/convertirsymbole.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_tip&quot;&gt;
Vérifiez au passage que les coordonnées de l&amp;#039;occurrence sont bien en 0/0.
&lt;/div&gt;
&lt;p&gt;
&lt;br/&gt;

\\&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/originevisuel.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;ajouter_les_pages_a_la_scene&quot; id=&quot;ajouter_les_pages_a_la_scene&quot;&gt;Ajouter les pages à la scène&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

Une dernière formalité : &lt;strong&gt;ajouter une instance de P1 et de P2&lt;/strong&gt; sur la scène. Ou plutôt, pour faire facile/malin tout de suite, ajoutons ces instances dans un clip contenant, qu&amp;#039;on pourra disposer où bon nous semble. &lt;br/&gt;

En route :&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_tip&quot;&gt;
Sur les sources jointes j&amp;#039;ai profité d&amp;#039;avoir un .fla à ma disposition pour répartir le code sur plusieurs calques (ça facilite pour s&amp;#039;y retrouver). J&amp;#039;ai donc un calque nommé “Declare init” et un un autre nommé “code”. Faites bien comme vous le sentez, mais prenez soin - si vous optez pour les calques différents - à ce que declare init soit au dessus des autres.&lt;br/&gt;

&lt;/div&gt;
&lt;p&gt;

&lt;br/&gt;

• Calque Declare init :
&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;\\
&lt;span class=&quot;co1&quot;&gt;// un contenant&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; contenant:&lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt;= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
&lt;span class=&quot;co1&quot;&gt;// les instances&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; _recto:P1= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; P1&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; _verso:P2=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; P2&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
\\
contenant.&lt;span class=&quot;me1&quot;&gt;addChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_recto&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
contenant.&lt;span class=&quot;me1&quot;&gt;addChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_verso&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// doit être au dessus de recto\\&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// contenant où on veut comme ça nous arrange&lt;/span&gt;
contenant.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;= &lt;span class=&quot;nu0&quot;&gt;250&lt;/span&gt;;\\
contenant.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;= &lt;span class=&quot;nu0&quot;&gt;350&lt;/span&gt;;\\
addChild&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;contenant&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; _haut:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=_recto.&lt;span class=&quot;kw3&quot;&gt;height&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// Récupérer la hauteur d'une page&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; _larg:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=_recto.&lt;span class=&quot;kw3&quot;&gt;width&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// Récupérer la largeur&lt;/span&gt;
\\
_verso.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=_larg;&lt;span class=&quot;co1&quot;&gt;// à droite de recto&lt;/span&gt;
_verso.&lt;span class=&quot;me1&quot;&gt;rotation&lt;/span&gt; =&lt;span class=&quot;nu0&quot;&gt;120&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// incliné arbitraire en attendant&lt;/span&gt;
\\&lt;/pre&gt;
&lt;p&gt;
 &lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;suivre_le_pointeur&quot; id=&quot;suivre_le_pointeur&quot;&gt;Suivre le pointeur&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

Ayé, on peut commencer, vraiment.&lt;br/&gt;

D&amp;#039;abord ce qu&amp;#039;on veut c&amp;#039;est que &lt;strong&gt;&lt;code&gt;_verso&lt;/code&gt; suive le pointeur&lt;/strong&gt;.&lt;br/&gt;

&lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;425&quot; height=&quot;350&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/feuilpazapasuitpointeur.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;425&quot; height=&quot;350&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/feuilpazapasuitpointeur.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;
&lt;br/&gt;

&lt;br/&gt;

Pour se mettre en jambes, ce n&amp;#039;est pas le plus difficile. Convenons d&amp;#039;une fonction &lt;code&gt;placePage&lt;/code&gt; qui sera invoquée de façon récurrente (via un Timer) quand on maintient le bouton de la souris enfoncé.&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
• Calque Declare init : &lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;\\
contenant.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;MOUSE_DOWN&lt;/span&gt;,demarre&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
&lt;span class=&quot;kw3&quot;&gt;stage&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;MOUSE_UP&lt;/span&gt;,arrete&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; _tm:Timer=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Timer&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
_tm.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;TimerEvent.&lt;span class=&quot;me1&quot;&gt;TIMER&lt;/span&gt;,placePage&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
\\
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; demarre&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;\\
	_tm.&lt;span class=&quot;kw3&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;\\
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; arrete&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;\\
	_tm.&lt;span class=&quot;kw3&quot;&gt;stop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;\\&lt;/pre&gt;
&lt;p&gt;
 &lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

• Calque code : &lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;\\
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; placePage&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;e&lt;/span&gt;:Event=&lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; x_c:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=contenant.&lt;span class=&quot;me1&quot;&gt;mouseX&lt;/span&gt;;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; y_c:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=contenant.&lt;span class=&quot;me1&quot;&gt;mouseY&lt;/span&gt;;
	_verso.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=x_c;&lt;span class=&quot;co1&quot;&gt;//  suit point courant&lt;/span&gt;
	_verso.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=y_c;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;\\&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

On se doute bien qu&amp;#039;on va avoir besoin par la suite des coordonnées du pointeur, autant les sortir tout de suite sous forme de variables &lt;code&gt;x_c&lt;/code&gt; et &lt;code&gt;y_c&lt;/code&gt;&lt;sup&gt;&lt;a href=&quot;#fn__4&quot; name=&quot;fnt__4&quot; id=&quot;fnt__4&quot; class=&quot;fn_top&quot;&gt;4)&lt;/a&gt;&lt;/sup&gt;.&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;dessiner_le_point&quot; id=&quot;dessiner_le_point&quot;&gt;Dessiner le point&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Pour s&amp;#039;y retrouver plus tard ajoutons un point rouge (un vrai, un objet Shape) qui suivra le pointeur. &lt;br/&gt;

&lt;br/&gt;

• Calque Declare init : &lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; scoin_c:Shape= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Shape&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// coin courant (suit souris)&lt;/span&gt;
scoin_c.&lt;span class=&quot;me1&quot;&gt;graphics&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;beginFill&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;0xFF0000&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
scoin_c.&lt;span class=&quot;me1&quot;&gt;graphics&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;drawCircle&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;0,0,&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
contenant.&lt;span class=&quot;me1&quot;&gt;addChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;scoin_c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
\\
\\
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; placePage&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;e&lt;/span&gt;:Event=&lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;…&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;// dessin - - - - - - - - - - - - - - - - - -&lt;/span&gt;
	scoin_c.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;= x_c;&lt;span class=&quot;co1&quot;&gt;// suit point courant&lt;/span&gt;
	scoin_c.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;= y_c;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Ça c&amp;#039;est fait &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_smile.gif&quot; class=&quot;middle&quot; alt=&quot;:)&quot; /&gt;
&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;determiner_l_angle_de_rotation_du_verso&quot; id=&quot;determiner_l_angle_de_rotation_du_verso&quot;&gt;Déterminer l&amp;#039;angle de rotation du verso&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;l_enigme_de_l_angle_vert&quot; id=&quot;l_enigme_de_l_angle_vert&quot;&gt;L&amp;#039;énigme de l&amp;#039;angle vert&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

 &lt;br/&gt;

Maintenant réfléchissons : voici ce qu&amp;#039;on veut obtenir (hors lignes de construction)&lt;br/&gt;

 &lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;425&quot; height=&quot;350&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/feuilpazapasuitpointeurorient.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;425&quot; height=&quot;350&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/feuilpazapasuitpointeurorient.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

Et voici les données de l&amp;#039;énigme &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_smile.gif&quot; class=&quot;middle&quot; alt=&quot;:)&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

Je vais les reprendre et avancer dans un des raisonnements possibles à coup de croquis. Je vais faire plus que détaillé et étape par étape dans l&amp;#039;idée certes d&amp;#039;être aussi claire que possible, mais aussi de donner, en quelque sorte, des indices successifs à ceux qui voudraient jouer et trouver “tous seuls” &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/feuilpazapaenigme.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

Reprenons donc sur un croquis : &lt;br/&gt;

Ce qu&amp;#039;on cherche : l&amp;#039;angle marqué en vert. &lt;br/&gt;

Ce qu&amp;#039;on connaît : les coordonnées des deux points rouges (pointeur et coin bas droit). &lt;br/&gt;

Ce qu&amp;#039;on sait : les deux lignes continues bleues sont de même taille.&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/chercheang.gif&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

Depuis les points rouges, on peut tracer un rectangle dont on connaît hauteur et largeur (du moins pourra-t-on les  calculer).&lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/chercheangrect.gif&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

 &lt;br/&gt;

&lt;br/&gt;

Du coup en coupant ce rectangle selon la diagonale on obtient deux triangles rectangle, et ça c&amp;#039;est pratique : puisqu&amp;#039;on connaît hauteur et largeur, on saurait en calculer les angles, si besoin était.&lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/chercheangrectdiag.gif&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

 &lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

Considérons donc qu&amp;#039;on connait une “portion” de l&amp;#039;angle cherché : l&amp;#039;angle du haut, noté &lt;code&gt;ang&lt;/code&gt;&lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/chercheangrectang2.gif&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

 &lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

Reste à trouver l&amp;#039;angle marqué en noir : l&amp;#039;angle vert (qu&amp;#039;on cherche) vaudra angle rouge (&lt;code&gt;ang&lt;/code&gt;) plus angle noir.&lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/chercheangcherche2.gif&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

 &lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

Et c&amp;#039;est là qu&amp;#039;on se souvient que les deux lignes marquées en bleu sont de même taille et que par conséquent on a un triangle isocèle &lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/iso.gif&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

 &lt;br/&gt;

&lt;br/&gt;

Et que c&amp;#039;est rudement bien les triangles isocèle parce que les angles à la base sont égaux.&lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/geomisodeuxangles.gif&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

 &lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

Ayé vous voyez la ruse ? &lt;br/&gt;

Je vous rappelle que…&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/geomrectendeux.gif&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

… les angles opposés sont égaux…
&lt;/p&gt;

&lt;p&gt;
… et qu&amp;#039;on connait &lt;code&gt;ang&lt;/code&gt;
&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/geochercheangleconclusion.gif&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

 &lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

Et oui… les angles rouges et noirs sont les mêmes&lt;br/&gt;

Vu qu&amp;#039;on sait que :&lt;br/&gt;

angle vert = angle rouge + angle noir&lt;br/&gt;

On en conclu, ébahis, que :&lt;br/&gt;

angle cherché = 2 * ang&lt;br/&gt;

&lt;br/&gt;

Pour obtenir l&amp;#039;inclinaison du clip  _verso, il suffit donc de “trouver” &lt;code&gt;ang&lt;/code&gt;, qui appartient à un triangle rectangle dont on connaît deux côtés… &lt;a href=&quot;#sinus_cosinus_et_tangente&quot; title=&quot;tutoriaux:flashplatform:affichage:animation:pageflip &amp;crarr;&quot; class=&quot;wikilink1&quot;&gt;Trop facile !&lt;/a&gt;
&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;le_code&quot; id=&quot;le_code&quot;&gt;Le code&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Traduire en code, puisque la classe Math nous fournit tout le petit matériel nécessaire, ça va être un jeu d&amp;#039;enfants.&lt;br/&gt;

&lt;br/&gt;

Tout d&amp;#039;abord on a besoin des coordonnées du coin de départ dans contenant, on va les stocker dans une variable globale (plus tard quand on s&amp;#039;occupera des autres coins forcément ça changera).&lt;br/&gt;

Déclarons donc une variable _pCoinDep, de type Point (pour stocker les coordonnées d&amp;#039;un point, on n&amp;#039;a pas trouvé mieux &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;)  &lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; _pCoinDep:Point=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Point&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_larg,0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Puis dans la fonction il reste à calculer l&amp;#039;angle qui nous intéresse (noté ang en rouge sur le croquis) : &lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;\\
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; placePage&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;e&lt;/span&gt;:Event=&lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;\\
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;…&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;\\
	&lt;span class=&quot;co1&quot;&gt;// Angle de base -------------------------\\&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// le côté adjacent, la largeur sur le croquis\\&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; adj:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=_pCoinDep.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;-x_c;\\
&lt;span class=&quot;co1&quot;&gt;// le côté opposé, la hauteur sur le croquis\\&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; opp:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;-y_c;\\
&lt;span class=&quot;co1&quot;&gt;// on sait que tangente = opposé sur adjacent\\&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; tang:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=opp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;adj;\\
&lt;span class=&quot;co1&quot;&gt;// Math.atan nous renvoie - en radian - la mesure d'un angle dont on connaît la tangente\\&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; angR:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=&lt;span class=&quot;kw3&quot;&gt;Math&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;atan&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tang&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// radian\\&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// penser à convertir en degré pour la prorité rotation ;)\\&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; angD:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=angR&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;180&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;Math&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;PI&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// degres\\&lt;/span&gt;
\\
	_verso.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=x_c;&lt;span class=&quot;co1&quot;&gt;//  suit point courant\\&lt;/span&gt;
	_verso.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=y_c;\\
&lt;span class=&quot;co1&quot;&gt;// --&amp;gt; ici on applique la rotation\\&lt;/span&gt;
	_verso.&lt;span class=&quot;me1&quot;&gt;rotation&lt;/span&gt;=angD&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;//  inclinaison de la page\\&lt;/span&gt;
\\
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;…&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;\\&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Pas plus, et le clip verso s&amp;#039;incline selon la position de la souris &lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

Là je ferais bien une pause, mais Ronchon est trop enthousiaste, on ne le tient plus, il veut placer les masques pour achever l&amp;#039;illusion. Il se souvient que le masque s&amp;#039;appuie sur la médiatrice de notre fameux triangle isocèle &lt;sup&gt;&lt;a href=&quot;#fn__5&quot; name=&quot;fnt__5&quot; id=&quot;fnt__5&quot; class=&quot;fn_top&quot;&gt;5)&lt;/a&gt;&lt;/sup&gt; et affirme qu&amp;#039;on a tout ce qu&amp;#039;il faut pour finir, que c&amp;#039;est l&amp;#039;affaire de 5 minutes… &lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;placer_les_masques&quot; id=&quot;placer_les_masques&quot;&gt;Placer les masques&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Il va donc s&amp;#039;agir déplacer un rectangle (un vrai, un objet Shape) sur la ligne grise, celle que j&amp;#039;ai nommée ligne de pliure en début de chapitre. &lt;br/&gt;

&lt;br/&gt;

Voici ce que vous attendez, j&amp;#039;ai ajouté les lignes de construction et une bascule pour masquer ou non le verso, ne vous en préoccupez pas.&lt;br/&gt;

&lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;425&quot; height=&quot;350&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/feuilpazapamasque.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;425&quot; height=&quot;350&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/feuilpazapamasque.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;
&lt;br/&gt;

&lt;br/&gt;

Ci-dessus c&amp;#039;est juste pour voir ce qu&amp;#039;il se passe : les dimensions du masque sont arbitraires (et ne conviennent pas), ne vous compliquez pas maintenant, faites pareil.&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;fabriquer_les_masques&quot; id=&quot;fabriquer_les_masques&quot;&gt;Fabriquer les masques&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

Puisqu&amp;#039;il nous faudra deux formes rectangulaires (une pour le verso, une autre pour le recto, dans l&amp;#039;élan et tant qu&amp;#039;à faire), je vous laisse vous employer à les fabriquer, sur le calque Déclare-Init. &lt;br/&gt;

&lt;br/&gt;

 - Et vu que vous n&amp;#039;avez besoin de personne je file me chercher un café, zutalafin. Que les plus impatients ne se privent pas de s&amp;#039;essayer à aller jusqu&amp;#039;au bout : orientation et déplacement du masque, vous disposez de tous les indices nécessaires -&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; taillopif:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;;\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; taillopif2:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;;\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; _mVerso:Shape= fabRectHM&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;taillopif, taillopif2&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; _mRecto:Shape= fabRectHM&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;taillopif, taillopif2&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
\\
contenant.&lt;span class=&quot;me1&quot;&gt;addChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_mVerso&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
&lt;span class=&quot;co1&quot;&gt;// ligne en commentaire le temps de voir ce qui se passe\\&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;//_verso.mask=_mVerso;\\&lt;/span&gt;
\\
\\
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; fabRectHM&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;l:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;,h:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:Shape &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;\\
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; s:Shape=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Shape;\\
	s.&lt;span class=&quot;me1&quot;&gt;graphics&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;beginFill&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;0x333333&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
	s.&lt;span class=&quot;me1&quot;&gt;graphics&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;drawRect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;-l&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;,0,l,h&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
	&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; s;\\
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;\\&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Les dimensions du rectangle sont donc choisies au pifomètre, et vous avez pris soin de disposer le point d&amp;#039;origine (0/0) en haut au milieu.&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;calculer_l_angle_de_rotation&quot; id=&quot;calculer_l_angle_de_rotation&quot;&gt;Calculer l&amp;#039;angle de rotation&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Pour ce qui est de l&amp;#039;angle appliqué au masque, c&amp;#039;est dans la fonction placePage que ça se passe (puisque c&amp;#039;est recalculé sans cesse selon la position de la souris)&lt;br/&gt;

&lt;br/&gt;

La ligne de pliure c&amp;#039;est tout bonnement la médiatrice du triangle isocèle qu&amp;#039;on a isolé un peu plus haut (représentée en noir sur le croquis ci-dessous).&lt;br/&gt;

&lt;br/&gt;

Souvenez vous : la fin de la vidéo d&amp;#039;intro démontre, par pliage, que la ligne de pliure détermine un axe de symétrie sur ce fameux triangle isocèle (segments S et S&amp;#039; et base rouge). 
Dans un triangle isocèle, la ligne qui passe par son sommet et le milieu de sa base, c&amp;#039;est la médiatrice. Elle a pour autre caractéristique d&amp;#039;être perpendiculaire à la base.
&lt;/p&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/iso2.gif&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

Calculer l&amp;#039;angle de cette médiatrice, c&amp;#039;est tout bête puisqu&amp;#039;on sait qu&amp;#039;elle est perpendiculaire à la ligne rouge dont on connaît l&amp;#039;angle (on vient de le calculer)&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;\\
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; angMedD:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=angD+&lt;span class=&quot;nu0&quot;&gt;90&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// elle est perpendiculaire\\&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;////                                        c'est la ligne de masque\\&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

Voici donc pour la propriété rotation du masque _mVerso. &lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;les_coordonnees&quot; id=&quot;les_coordonnees&quot;&gt;Les coordonnées&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
 &lt;br/&gt;

&lt;br/&gt;

Reste à trouver ses coordonnées. &lt;br/&gt;

Je propose de s&amp;#039;appuyer sur un point facilement calculable : l&amp;#039;intersection entre la médiatrice et la base (rouge) du triangle, puisqu&amp;#039;on sait que le propre de la médiatrice c&amp;#039;est de passer par le milieu de la base.&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;\\
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; pM:Point= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Point&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span class=&quot;co1&quot;&gt;// le point du milieu\\&lt;/span&gt;
\\
	pM.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt; = &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x_c + _pCoinDep.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;;\\
	pM.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt; = &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;y_c + _pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;;\\
&lt;span class=&quot;co1&quot;&gt;// coorconnées\\&lt;/span&gt;
	_mVerso.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=pM.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;;\\
	_mVerso.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=pM.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;;\\
&lt;span class=&quot;co1&quot;&gt;// rotation\\&lt;/span&gt;
	_mVerso.&lt;span class=&quot;me1&quot;&gt;rotation&lt;/span&gt;=angMedD;\\&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Jusque là, ça va…&lt;br/&gt;

&lt;br/&gt;

Reste à faire la même chose avec _mRecto et à faire propre : ne pas voir les masques à l&amp;#039;initialisation, et se débrouiller pour qu&amp;#039;ils ne remplissent leur office que quand ça nous intéresse. Quant aux dimensions des masques, je suis restée à l&amp;#039;étape &amp;#039;taille au pif&amp;#039; et constaté très empiriquement que les valeurs ci-dessous convenaient tout à fait…&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; taillopif:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=_haut&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2.5&lt;/span&gt;;\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; taillopif2:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=_haut&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1.5&lt;/span&gt;;\\&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;le_code_complet&quot; id=&quot;le_code_complet&quot;&gt;Le code complet&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
 &lt;br/&gt;

&lt;br/&gt;

• Calque déclare init&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; _pCoinDep:Point=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Point&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_larg,0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; contenant:&lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt;= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; _recto:P1= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; P1&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; _verso:P2=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; P2&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
\\
contenant.&lt;span class=&quot;me1&quot;&gt;addChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_recto&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
contenant.&lt;span class=&quot;me1&quot;&gt;addChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_verso&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// doit être au dessus de recto\\&lt;/span&gt;
contenant.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;= &lt;span class=&quot;nu0&quot;&gt;150&lt;/span&gt;;\\
contenant.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;= &lt;span class=&quot;nu0&quot;&gt;350&lt;/span&gt;;\\
addChild&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;contenant&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; _haut:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=_recto.&lt;span class=&quot;kw3&quot;&gt;height&lt;/span&gt;;\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; _larg:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=_recto.&lt;span class=&quot;kw3&quot;&gt;width&lt;/span&gt;;\\
\\
_verso.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=_larg;&lt;span class=&quot;co1&quot;&gt;// à droite de recto\\&lt;/span&gt;
_verso.&lt;span class=&quot;kw3&quot;&gt;visible&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;;\\
\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; taillopif:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=_haut&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2.5&lt;/span&gt;;\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; taillopif2:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=_haut&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1.5&lt;/span&gt;;\\
\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; _mVerso:Shape= fabRectHM&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;taillopif, taillopif2&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; _mRecto:Shape= fabRectHM&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;taillopif, taillopif2&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
\\
contenant.&lt;span class=&quot;me1&quot;&gt;addChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_mVerso&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
_mVerso.&lt;span class=&quot;kw3&quot;&gt;visible&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;;\\
contenant.&lt;span class=&quot;me1&quot;&gt;addChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_mRecto&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
_mRecto.&lt;span class=&quot;kw3&quot;&gt;visible&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;;\\&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

• La fonction&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; fabRectHM&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;l:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;,h:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:Shape &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; s:Shape=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Shape;
	s.&lt;span class=&quot;me1&quot;&gt;graphics&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;beginFill&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;0x333333&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	s.&lt;span class=&quot;me1&quot;&gt;graphics&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;drawRect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;-l&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;,0,l,h&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; s;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

• Calque code &lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;contenant.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;MOUSE_DOWN&lt;/span&gt;,demarre&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;kw3&quot;&gt;stage&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;MOUSE_UP&lt;/span&gt;,arrete&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; _tm:Timer=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Timer&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
_tm.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;TimerEvent.&lt;span class=&quot;me1&quot;&gt;TIMER&lt;/span&gt;,placePage&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; demarre&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	_tm.&lt;span class=&quot;kw3&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; arrete&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	_verso.&lt;span class=&quot;kw3&quot;&gt;visible&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;;
	_recto.&lt;span class=&quot;me1&quot;&gt;mask&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;;
	_tm.&lt;span class=&quot;kw3&quot;&gt;stop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; placePage&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;e&lt;/span&gt;:Event=&lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	_recto.&lt;span class=&quot;me1&quot;&gt;mask&lt;/span&gt;=_mRecto;
	_verso.&lt;span class=&quot;me1&quot;&gt;mask&lt;/span&gt;=_mVerso;
	_verso.&lt;span class=&quot;kw3&quot;&gt;visible&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;;
&amp;nbsp;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; pM:Point= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Point&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// point au milieu ligne coinDep-pointeur&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; x_c:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=contenant.&lt;span class=&quot;me1&quot;&gt;mouseX&lt;/span&gt;;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; y_c:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=contenant.&lt;span class=&quot;me1&quot;&gt;mouseY&lt;/span&gt;;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;// Angle de base -------------------------\\&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; adj:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=_pCoinDep.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;-x_c;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; opp:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;-y_c;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; tang:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=opp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;adj;\\
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; angR:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=&lt;span class=&quot;kw3&quot;&gt;Math&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;atan&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tang&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// radian&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; angD:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=angR&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;180&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;Math&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;PI&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// degres&lt;/span&gt;
	\\
	&lt;span class=&quot;co1&quot;&gt;////// place point milieu --------------------------------------------------\\&lt;/span&gt;
	pM.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt; = &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x_c + _pCoinDep.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;;
	pM.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt; = &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;y_c + _pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; angMedD:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=angD+&lt;span class=&quot;nu0&quot;&gt;90&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// elle est perpendiculaire\\&lt;/span&gt;
\\
	&lt;span class=&quot;co1&quot;&gt;////// Bouge visuels -------------------------------------------------------\\&lt;/span&gt;
\\
	&lt;span class=&quot;co1&quot;&gt;////// les masques\\&lt;/span&gt;
	_mVerso.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=pM.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;;
	_mVerso.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=pM.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;;
	_mVerso.&lt;span class=&quot;me1&quot;&gt;rotation&lt;/span&gt;=angMedD;
\\
	_mRecto.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=pM.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;;
	_mRecto.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=pM.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;;
	_mRecto.&lt;span class=&quot;me1&quot;&gt;rotation&lt;/span&gt;=angMedD;
\\
	&lt;span class=&quot;co1&quot;&gt;////// la page\\&lt;/span&gt;
	_verso.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=x_c;&lt;span class=&quot;co1&quot;&gt;//  suit point courant\\&lt;/span&gt;
	_verso.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=y_c;
	_verso.&lt;span class=&quot;me1&quot;&gt;rotation&lt;/span&gt;=angD&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;//  inclinaison de la page\\&lt;/span&gt;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;ajouter_les_lignes_de_construction_pour_la_suite&quot; id=&quot;ajouter_les_lignes_de_construction_pour_la_suite&quot;&gt;Ajouter les lignes de construction pour la suite&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Pour le plaisir de bien voir ce qui se passe, et parce que ça va nous aider pour la suite, je vous propose d&amp;#039;ajouter les lignes de construction et une pastille pour figurer le point d&amp;#039;intersection entre médiatrice et base de l&amp;#039;isocèle (aux coordonnées de pM donc).&lt;br/&gt;

&lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;425&quot; height=&quot;350&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/feuilpazapa1.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;425&quot; height=&quot;350&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/feuilpazapa1.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;
&lt;br/&gt;

&lt;em&gt;La bascule pour afficher ou non les lignes de construction &amp;#039;est du bonus pour le tuto, les sources ne s&amp;#039;en encombrent pas&lt;/em&gt; &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

On pourrait dessiner les lignes dynamiquement, et ne vous en privez pas si vous préférez, moi je me contenterai d&amp;#039;un clip avec une ligne &lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/ligneconstructbibli.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

 &lt;br/&gt;

&lt;br/&gt;

• Calque Declare init : &lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;\\
&lt;span class=&quot;co1&quot;&gt;// = = = = = = Dessin = = = = = = = = = = = = = \\&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// si vous êtes daltoniens\\&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; cDiagBase:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=0xff0000;&lt;span class=&quot;co1&quot;&gt;// diagonale de base (coinDep/souris)\\&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; cMed:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=0x707070;&lt;span class=&quot;co1&quot;&gt;// point milieu et médiatrice\\&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; cPage:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=0x0000ff;&lt;span class=&quot;co1&quot;&gt;// orientation de la page\\&lt;/span&gt;
\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; scoin_c:Shape= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Shape&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// coin courant (suit souris)\\&lt;/span&gt;
scoin_c.&lt;span class=&quot;me1&quot;&gt;graphics&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;beginFill&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cDiagBase&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
scoin_c.&lt;span class=&quot;me1&quot;&gt;graphics&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;drawCircle&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;0,0,&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
contenant.&lt;span class=&quot;me1&quot;&gt;addChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;scoin_c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; sM:Shape= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Shape&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// milieu de &amp;quot;diagonale de base&amp;quot;\\&lt;/span&gt;
sM.&lt;span class=&quot;me1&quot;&gt;graphics&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;beginFill&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cMed&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
sM.&lt;span class=&quot;me1&quot;&gt;graphics&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;drawCircle&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;0,0,&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
contenant.&lt;span class=&quot;me1&quot;&gt;addChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sM&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
\\
&lt;span class=&quot;co1&quot;&gt;// les lignes de construction\\&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; ligneCoinSouris:Mv_Ligne=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Mv_Ligne&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; coulDiag:ColorTransform= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; ColorTransform&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
coulDiag.&lt;span class=&quot;kw3&quot;&gt;color&lt;/span&gt;=cDiagBase;\\
ligneCoinSouris.&lt;span class=&quot;me1&quot;&gt;transform&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;colorTransform&lt;/span&gt;=coulDiag;\\
\\
contenant.&lt;span class=&quot;me1&quot;&gt;addChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ligneCoinSouris&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; ligneMed:Mv_Ligne=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Mv_Ligne&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;//Mediatrice\\&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; coulMed:ColorTransform= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; ColorTransform&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
coulMed.&lt;span class=&quot;kw3&quot;&gt;color&lt;/span&gt;=cMed;\\
ligneMed.&lt;span class=&quot;me1&quot;&gt;transform&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;colorTransform&lt;/span&gt;=coulMed;\\
\\
contenant.&lt;span class=&quot;me1&quot;&gt;addChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ligneMed&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
\\
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; lignePage:Mv_Ligne=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Mv_Ligne&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// inclinaison page\\&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; coulPage:ColorTransform= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; ColorTransform&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\
coulPage.&lt;span class=&quot;kw3&quot;&gt;color&lt;/span&gt;=cPage;\\
lignePage.&lt;span class=&quot;me1&quot;&gt;transform&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;colorTransform&lt;/span&gt;=coulPage;\\
\\
contenant.&lt;span class=&quot;me1&quot;&gt;addChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;lignePage&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;\\&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Calque code, fonction placePage&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;\\
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; placePage&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;e&lt;/span&gt;:Event=&lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;\\
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;…&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;\\
	&lt;span class=&quot;co1&quot;&gt;// dessin - - - - - - - - - - - - - - - - - -\\&lt;/span&gt;
	scoin_c.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=x_c;&lt;span class=&quot;co1&quot;&gt;// suit point courant\\&lt;/span&gt;
	scoin_c.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=y_c;\\
	\\
	ligneCoinSouris.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=x_c;&lt;span class=&quot;co1&quot;&gt;// suit point courant\\&lt;/span&gt;
	ligneCoinSouris.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=y_c;\\
	ligneCoinSouris.&lt;span class=&quot;me1&quot;&gt;rotation&lt;/span&gt;=angD;\\
	\\
	lignePage.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=x_c;&lt;span class=&quot;co1&quot;&gt;// suit point courant\\&lt;/span&gt;
	lignePage.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=y_c;\\
	lignePage.&lt;span class=&quot;me1&quot;&gt;rotation&lt;/span&gt;=_verso.&lt;span class=&quot;me1&quot;&gt;rotation&lt;/span&gt;;\\
	\\
	\\
	sM.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=pM.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt; ;&lt;span class=&quot;co1&quot;&gt;// suit point milieu\\&lt;/span&gt;
	sM.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=pM.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;;\\
	\\
	ligneMed.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=pM.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt; ;&lt;span class=&quot;co1&quot;&gt;// suit point milieu\\&lt;/span&gt;
	ligneMed.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=pM.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;;\\
	ligneMed.&lt;span class=&quot;me1&quot;&gt;rotation&lt;/span&gt;=angMedD;&lt;span class=&quot;co1&quot;&gt;// inclinaison médiatrice\\&lt;/span&gt;
\\
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;\\&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Nous voilà mûrs pur la suite, jusque là ça marche pour le coin en bas à droite, s&amp;#039;agirait que ça fonctionne aussi pour les trois autres. &lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;les_quatre_coins&quot; id=&quot;les_quatre_coins&quot;&gt;Les quatre coins&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;425&quot; height=&quot;350&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/feuilpazapa4coins2.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;425&quot; height=&quot;350&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/feuilpazapa4coins2.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;le_coin_de_depart&quot; id=&quot;le_coin_de_depart&quot;&gt;Le coin de départ&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

On veut donc que la fonction &lt;code&gt;placePage&lt;/code&gt; remplisse son office quelque soit le coin de départ de référence. Dit autrement, il s&amp;#039;agit que ça marche aussi quand &lt;code&gt;_coinDep&lt;/code&gt; vaut 0/0 (bas/gauche) ou 0/-_haut (haut/gauche), ou _larg/-_haut (haut/droit).&lt;br/&gt;

&lt;br/&gt;

Première chose à faire : &lt;strong&gt;valoriser &lt;code&gt;_coinDep&lt;/code&gt; avant de lancer &lt;code&gt;placePage&lt;/code&gt;&lt;/strong&gt;. Je propose de le faire dans la fonction &lt;code&gt;demarre&lt;/code&gt;&lt;br/&gt;

Ici on se contentera de “couper la page en quatre”, et de valoriser _coinDep selon la position du pointeur (quart bas/droit, haut/droit, etc.).&lt;br/&gt;

Ce qui nous donne :&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; demarre&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me.&lt;span class=&quot;me1&quot;&gt;localY&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; -_haut&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; me.&lt;span class=&quot;me1&quot;&gt;localX&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;_larg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;haut droit&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
		_pCoinDep.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=_larg;
		_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=-_haut;
&amp;nbsp;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me.&lt;span class=&quot;me1&quot;&gt;localY&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; -_haut&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; me.&lt;span class=&quot;me1&quot;&gt;localX&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;=_larg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;haut gauche&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
		_pCoinDep.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=0;
		_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=-_haut;
&amp;nbsp;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me.&lt;span class=&quot;me1&quot;&gt;localY&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;= -_haut&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; me.&lt;span class=&quot;me1&quot;&gt;localX&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;=_larg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;bas gauche&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
		_pCoinDep.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=0;
		_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=0;
&amp;nbsp;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;bas droite&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
		_pCoinDep.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=_larg;
		_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=0;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;//&lt;/span&gt;
	_tm.&lt;span class=&quot;kw3&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

Tel que, ça fonctionne toujours si on clique en bas à droite (ouf !), déjà moins bien si on clique en haut à droite, et carrément plus du tout pour les deux autres coins.&lt;br/&gt;

&lt;br/&gt;

On s&amp;#039;en doutait un peu, il faut bien le dire &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;la_position_du_visuel&quot; id=&quot;la_position_du_visuel&quot;&gt;La position du visuel&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

Regardons ce qui fonctionne &lt;em&gt;presque&lt;/em&gt; : le coin haut droit…&lt;br/&gt;

En fait c&amp;#039;est quasi ça, si ce n&amp;#039;est que ce n&amp;#039;est pas le bon coin de _verso qui suit le pointeur.&lt;br/&gt;

&lt;br/&gt;

Hé oui : rappelons nous, les coordonnées du clip visuel dans P2 (symbole de bibliothèque) sont à 0/0. Quand P2 suit le pointeur, c&amp;#039;est aussi le coin bas gauche du clip inclus (a) qui suit le mouvement. Or, quand on change le coin saisi au départ sur le recto (celui qu&amp;#039;on saisit dans la vraie vie) on change forcément aussi le coin saisi au verso &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_idea.gif&quot; class=&quot;middle&quot; alt=&quot;:idea:&quot; /&gt;&lt;br/&gt;

Pour ceux qui sont ausi handicapés que je le suis des facultés de visualisation dans l&amp;#039;espace, j&amp;#039;ai illustré les correspondances :&lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/coincorrrectverso.gif&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt; &lt;br/&gt;

&lt;br/&gt;

Si ce n&amp;#039;est que ça ! &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_biggrin.gif&quot; class=&quot;middle&quot; alt=&quot;:D&quot; /&gt;&lt;br/&gt;

Aussitôt vu, aussitôt fait : yaka déplacer le clip contenu dans &lt;code&gt;_verso&lt;/code&gt; afin que le coin situé en 0/0 de P2 soit celui qui lui est “associé” sur le recto :&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_important&quot;&gt;
Et c&amp;#039;est là que les intrépides qui ont choisi de ne pas faire du visuel de P2 un clip inclus en mesurent les conséquences, et n&amp;#039;ont plus qu&amp;#039;à s&amp;#039;y mettre &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt; &lt;sup&gt;&lt;a href=&quot;#fn__6&quot; name=&quot;fnt__6&quot; id=&quot;fnt__6&quot; class=&quot;fn_top&quot;&gt;6)&lt;/a&gt;&lt;/sup&gt;
&lt;/div&gt;
&lt;p&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; demarre&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;// récupérer le clip inclus&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; visuel:DisplayObject=_verso.&lt;span class=&quot;me1&quot;&gt;getChildAt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me.&lt;span class=&quot;me1&quot;&gt;localY&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; -_haut&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; me.&lt;span class=&quot;me1&quot;&gt;localX&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;_larg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;haut droit &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
		visuel.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=0;
		visuel.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=_haut;
		_pCoinDep.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=_larg;
		_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=-_haut;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me.&lt;span class=&quot;me1&quot;&gt;localY&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; -_haut&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; me.&lt;span class=&quot;me1&quot;&gt;localX&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;=_larg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;haut gauche&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
		visuel.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=-_larg;
		visuel.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=_haut;
		_pCoinDep.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=0;
		_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=-_haut;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me.&lt;span class=&quot;me1&quot;&gt;localY&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;= -_haut&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; me.&lt;span class=&quot;me1&quot;&gt;localX&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;=_larg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;bas gauche&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
		visuel.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=-_larg;
		visuel.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=0;
		_pCoinDep.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=0;
		_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=0;
&amp;nbsp;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;bas droite 1&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
		visuel.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=0;
		visuel.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=0;
		_pCoinDep.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=_larg;
		_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=0;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;//&lt;/span&gt;
	_tm.&lt;span class=&quot;kw3&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Ça y est ça fonctionne pour les deux coins de droite.&lt;br/&gt;

A gauche… C&amp;#039;est pas loin…&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;les_masques_en_symetrie&quot; id=&quot;les_masques_en_symetrie&quot;&gt;Les masques en &amp;quot;symétrie&amp;quot;&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

Si, si Ronchon, ne désespère pas on y est presque, regarde bien, affiche un masque temporairement pour y voir plus clair… Ça y est tu repères le hic ? Vous aussi, vous avez vu ?&lt;br/&gt;

C&amp;#039;est le masque qui n&amp;#039;est pas du bon côté de la ligne de pliure !&lt;br/&gt;

&lt;br/&gt;

Il faut qu&amp;#039;il pivote de 180° pour se retrouver du bon côté (un demi tour quoi). &lt;br/&gt;

&lt;br/&gt;

Convenons donc d&amp;#039;une variable globale _sym (comme symétrie, même si c&amp;#039;est un abus de langage) qui vaudra 0 quand on saisit à droite et 180 quand on saisit à gauche. On la valorise dans &lt;code&gt;demarre&lt;/code&gt; (dans chacune des quatre branches) ; Dans &lt;code&gt;placePage&lt;/code&gt; on l&amp;#039;ajoute à la rotation des masques…  Et le tour est joué &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_smile.gif&quot; class=&quot;middle&quot; alt=&quot;:)&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; demarre&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; visuel:DisplayObject=_verso.&lt;span class=&quot;me1&quot;&gt;getChildAt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me.&lt;span class=&quot;me1&quot;&gt;localY&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; -_haut&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; me.&lt;span class=&quot;me1&quot;&gt;localX&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;_larg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;haut droit&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
		visuel.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=0;
		visuel.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=_haut;
		_pCoinDep.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=_larg;
		_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=-_haut;
&lt;span class=&quot;co1&quot;&gt;// ICI ----&amp;gt; à droite rien à changer, la &amp;quot;symetrie&amp;quot; vaut 0&lt;/span&gt;
		_sym=0;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me.&lt;span class=&quot;me1&quot;&gt;localY&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; -_haut&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; me.&lt;span class=&quot;me1&quot;&gt;localX&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;=_larg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;haut gauche&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
		visuel.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=-_larg;
		visuel.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=_haut;
		_pCoinDep.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=0;
		_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=-_haut;
&lt;span class=&quot;co1&quot;&gt;// ICI ----&amp;gt; à gauche il faudra pivoter les masques, la &amp;quot;symetrie&amp;quot; vaut 180&lt;/span&gt;
		_sym=&lt;span class=&quot;nu0&quot;&gt;180&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;…&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; placePage&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;e&lt;/span&gt;:Event=&lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;…&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;////// les masques&lt;/span&gt;
	_mVerso.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=pM.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;;
	_mVerso.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=pM.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;;
	_mVerso.&lt;span class=&quot;me1&quot;&gt;rotation&lt;/span&gt;=angMedD+_sym;
&amp;nbsp;
	_mRecto.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=pM.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;;
	_mRecto.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=pM.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;;
	_mRecto.&lt;span class=&quot;me1&quot;&gt;rotation&lt;/span&gt;=angMedD+_sym;
	&lt;span class=&quot;co1&quot;&gt;//&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;br/&gt;

Pour que ce soit tout propre quand on relâche la souris, un coup de plumeau dans &lt;code&gt;arrete&lt;/code&gt; :
&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; arrete&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	_verso.&lt;span class=&quot;kw3&quot;&gt;visible&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;;
	_recto.&lt;span class=&quot;me1&quot;&gt;mask&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;;
	_tm.&lt;span class=&quot;kw3&quot;&gt;stop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;br/&gt;

A ce stade le principe est isolé et la fonction de base, on la tient.&lt;br/&gt;

Reste à identifier les points de déchirure afin que le mouvement de la feuille soit limité (au besoin) par la ligne de reliure (verticale opposée au coin de saisie)&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;identifier_les_points_de_dechirure&quot; id=&quot;identifier_les_points_de_dechirure&quot;&gt;Identifier les points de déchirure&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Quand on tourne des pages reliées entre elles, le mouvement est limité par la reliure, justement.&lt;br/&gt;

&lt;br/&gt;
 
Observez ce qui se produit en l&amp;#039;état en vous concentrant sur la ligne de pliure (la médiatrice grise). Le point de déchirure est atteint quand l&amp;#039;intersection entre cette ligne et le bord haut - ou bas - de la page est au-delà de la reliure (ou en deçà, selon le coin de départ choisi).
Observons ce qui se passe quand on corne depuis le coin en bas à droite (pour ne pas changer des habitudes).&lt;br/&gt;

&lt;br/&gt;

Deux cas de figure se présentent, je les commente sur l&amp;#039;animation ci-dessous :
&lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;480&quot; height=&quot;720&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/pourpnggeometriecs3.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;480&quot; height=&quot;720&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/pourpnggeometriecs3.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;
&lt;br/&gt;

&lt;br/&gt;

Maintenant que le principe est compris, reste à traduire… un jeu d&amp;#039;enfant &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_smile.gif&quot; class=&quot;middle&quot; alt=&quot;:)&quot; /&gt;&lt;br/&gt;

Convenons d&amp;#039;une fonction &lt;code&gt;dechire&lt;/code&gt; qui renverra vrai si un des points de déchirure est dépassé.&lt;br/&gt;

Elle aura besoin du point &lt;code&gt;pM&lt;/code&gt; - auquel on se réfère sans cesse - &lt;br/&gt;

L&amp;#039;autre donnée qu&amp;#039;on considère acquise dans la démo ci-dessus c&amp;#039;est angMed.&lt;br/&gt;

La fonction placePage le calcule et l&amp;#039;exprime en degrés, il faudra penser à le convertir.
&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; dechire&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pM:Point,a:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;Boolean&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;//---- l'angle&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; angMed:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;a&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;180&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;Math&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;PI&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;// ---- opposé&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;// haut ou bas ?&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; bord:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt; = _pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;;
	&lt;span class=&quot;co1&quot;&gt;// voir animation tuto&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; opp:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt; =pM.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;bord?pM.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;:_haut+pM.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;// --- adjacent via tangente&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; adj:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=opp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;Math&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;tan&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;angMed&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;//trace(&amp;quot;opp &amp;quot;+opp);&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;//trace(&amp;quot;adj &amp;quot;+adj);&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;// positon x&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; posX:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=pM.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;-adj;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;// renvoie vrai si à l'extérieur des marges&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; bDéchire:&lt;span class=&quot;kw3&quot;&gt;Boolean&lt;/span&gt;;
	bDéchire=posX&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;_larg || posX&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;0;
	&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; bDéchire;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Pour vérifier, on peut tester dans &lt;code&gt;placePage&lt;/code&gt; :&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; placePage&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;e&lt;/span&gt;:Event=&lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	_recto.&lt;span class=&quot;me1&quot;&gt;mask&lt;/span&gt;=_mRecto;
	_verso.&lt;span class=&quot;me1&quot;&gt;mask&lt;/span&gt;=_mVerso;
	_verso.&lt;span class=&quot;kw3&quot;&gt;visible&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;;
&amp;nbsp;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; pM:Point= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Point&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; x_c:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=contenant.&lt;span class=&quot;me1&quot;&gt;mouseX&lt;/span&gt;;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; y_c:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=contenant.&lt;span class=&quot;me1&quot;&gt;mouseY&lt;/span&gt;;
	&lt;span class=&quot;co1&quot;&gt;// Angle de base -------------------------&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; adj:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=_pCoinDep.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;-x_c;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; opp:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;-y_c;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; tang:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=opp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;adj;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; angR:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=&lt;span class=&quot;kw3&quot;&gt;Math&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;atan&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tang&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// radian&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; angD:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=angR&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;180&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;Math&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;PI&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// degres&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;// place point milieu --------------------------------------------------&lt;/span&gt;
	pM.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt; = &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x_c + _pCoinDep.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;;
	pM.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt; = &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;y_c + _pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; angMedD:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=angD+&lt;span class=&quot;nu0&quot;&gt;90&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// elle est perpendiculaire&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;////                                        c'est la ligne de masque&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// -- &amp;gt; ICI 	&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dechire&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pM,angMedD&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;////// Bouge visuels ----------------------------------------------------------------------&lt;/span&gt;
	&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;.&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;wrap_todo&quot;&gt;
pas encore rédigé illustré… ça va viendre
&lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;plus_fluide&quot; id=&quot;plus_fluide&quot;&gt;Plus fluide&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
blabla
&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;un_effet_d_inertie_sur_le_point_courant&quot; id=&quot;un_effet_d_inertie_sur_le_point_courant&quot;&gt;Un effet d&amp;#039;inertie sur le point courant&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

• Calque Declare Init&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; x_c:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; y_c:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

• Calque code,&lt;br/&gt;

&lt;br/&gt;

Fonction &lt;code&gt;demarre&lt;/code&gt;&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;	x_c =_pCoinDep.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// suit pointeur, donc départ coin concerné&lt;/span&gt;
	y_c =_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Fonction &lt;code&gt;placePage&lt;/code&gt;&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;x_c += &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;contenant.&lt;span class=&quot;me1&quot;&gt;mouseX&lt;/span&gt; - x_c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;;
y_c += &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;contenant.&lt;span class=&quot;me1&quot;&gt;mouseY&lt;/span&gt; - y_c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;;&lt;/pre&gt;
&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;conserver_le_mouvement_quand_on_depasse_les_points_de_dechirure&quot; id=&quot;conserver_le_mouvement_quand_on_depasse_les_points_de_dechirure&quot;&gt;Conserver le mouvement quand on dépasse les points de déchirure&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
méthode A&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; pFace:Point= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Point&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;coinFaceX,_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; pPointeur:Point=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Point&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x_c,y_c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; C:Point= pPointeur.&lt;span class=&quot;me1&quot;&gt;subtract&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pFace&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; C.&lt;span class=&quot;me1&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;_larg&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		C.&lt;span class=&quot;me1&quot;&gt;normalize&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_larg&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
		pPointeur = C.&lt;span class=&quot;kw3&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pFace&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
		x_c=pPointeur.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;;
		y_c=pPointeur.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

méthode B&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;        &lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; adj:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=x_c-coinFaceX;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; opp:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=y_c-_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; hyp:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=&lt;span class=&quot;kw3&quot;&gt;Math&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;sqrt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;opp&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;opp+adj&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;hyp&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;_larg&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;		
		&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; angOppR:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=&lt;span class=&quot;kw3&quot;&gt;Math&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;atan2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;y_c-_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;,x_c-coinFaceX&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
		&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; distX:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=&lt;span class=&quot;kw3&quot;&gt;Math&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;cos&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;angOppR&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;_larg;
		&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; distY:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=&lt;span class=&quot;kw3&quot;&gt;Math&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;sin&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;angOppR&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;_larg;
&amp;nbsp;
		x_c=coinFaceX+distX;
		y_c=_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;+distY;				
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; placePage&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;e&lt;/span&gt;:Event=&lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	_recto.&lt;span class=&quot;me1&quot;&gt;mask&lt;/span&gt;=_mRecto;
	_verso.&lt;span class=&quot;me1&quot;&gt;mask&lt;/span&gt;=_mVerso;
	_verso.&lt;span class=&quot;kw3&quot;&gt;visible&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; pM:Point= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Point&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;co1&quot;&gt;//&lt;/span&gt;
	x_c += &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;contenant.&lt;span class=&quot;me1&quot;&gt;mouseX&lt;/span&gt; - x_c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;;
	y_c += &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;contenant.&lt;span class=&quot;me1&quot;&gt;mouseY&lt;/span&gt; - y_c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// = = =&amp;gt;&amp;gt; ICI&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;// distance pointeur coin de reliure sup à largeur &lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;// --&amp;gt; disposer x et y courant sur cercle de rayon _larg&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;// le centre du cercle c'est le coin face à pCoinDep&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; coinFaceX:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=_pCoinDep.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;==0?_larg:0;
        &lt;span class=&quot;co1&quot;&gt;// calcul de la taille de l'hypothénuse : distance pointeur coin de reliure&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; adj:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=x_c-coinFaceX;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; opp:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=y_c-_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; hyp:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=&lt;span class=&quot;kw3&quot;&gt;Math&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;sqrt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;opp&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;opp+adj&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;hyp&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;_larg&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;co1&quot;&gt;// angle du segment 'pointeur / coin de déchirure'&lt;/span&gt;
		&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; angOppR:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=&lt;span class=&quot;kw3&quot;&gt;Math&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;atan2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;y_c-_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;,x_c-coinFaceX&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
		&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; angOpp:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=angOppR&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;180&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;Math&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;PI&lt;/span&gt;;
		&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; distX:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=&lt;span class=&quot;kw3&quot;&gt;Math&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;cos&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;angOppR&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;_larg;
		&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; distY:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=&lt;span class=&quot;kw3&quot;&gt;Math&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;sin&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;angOppR&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;_larg;
                &lt;span class=&quot;co1&quot;&gt;// placer le point courant à la circonférence du cercle&lt;/span&gt;
		x_c=coinFaceX+distX;
		y_c=_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;+distY;		
&amp;nbsp;
		&lt;span class=&quot;co1&quot;&gt;// pour voir ce qu'il se passe&lt;/span&gt;
		ligneMed.&lt;span class=&quot;me1&quot;&gt;rotation&lt;/span&gt;=angOpp;&lt;span class=&quot;co1&quot;&gt;// inclinaison médiatrice\\&lt;/span&gt;
		ligneMed.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=coinFaceX;
		ligneMed.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;;
&amp;nbsp;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;// pour voir ce qu'il se passe&lt;/span&gt;
	scoin_c.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=x_c;&lt;span class=&quot;co1&quot;&gt;// suit point courant\\&lt;/span&gt;
	scoin_c.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=y_c;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// ensuite rien ne change, on reprend les calculs depuis le point courant éventuellement recalculé&lt;/span&gt;
&amp;nbsp;
	adj=_pCoinDep.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;-x_c;
	opp=_pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;-y_c;
&amp;nbsp;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; tang:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=opp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;adj;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; angR:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=&lt;span class=&quot;kw3&quot;&gt;Math&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;atan&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tang&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// radian&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; angD:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=angR&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;180&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;Math&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;PI&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// degres&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;////// place point milieu --------------------------------------------------&lt;/span&gt;
	pM.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt; = &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x_c + _pCoinDep.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;;
	pM.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt; = &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;y_c + _pCoinDep.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;// vérifie déchirure pour l'autre cas&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dechire&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pM,angR&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; angMedD:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=angD+&lt;span class=&quot;nu0&quot;&gt;90&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// elle est perpendiculaire&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;////                                        c'est la ligne de masque&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;////// Bouge visuels ----------------------------------------------------------------------&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;////// les masques&lt;/span&gt;
	_mVerso.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=pM.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;;
	_mVerso.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=pM.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;;
	_mVerso.&lt;span class=&quot;me1&quot;&gt;rotation&lt;/span&gt;=angMedD+_sym;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;//_mVerso.rotation=angMedD+_sym;&lt;/span&gt;
	_mRecto.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=pM.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;;
	_mRecto.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=pM.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;;
	_mRecto.&lt;span class=&quot;me1&quot;&gt;rotation&lt;/span&gt;=angMedD+_sym;
	&lt;span class=&quot;co1&quot;&gt;////&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;//&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;////// la page&lt;/span&gt;
	_verso.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=x_c;&lt;span class=&quot;co1&quot;&gt;//  suit point courant&lt;/span&gt;
	_verso.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=y_c;
	_verso.&lt;span class=&quot;me1&quot;&gt;rotation&lt;/span&gt;=angD&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;//  inclinaison de la page&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;//}&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;div class=&quot;wrap_download&quot;&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/affichage/animation/pageflip/introdemopart1.fla&quot; class=&quot;media mediafile mf_fla&quot; title=&quot;tutoriaux:flashplatform:affichage:animation:pageflip:introdemopart1.fla&quot;&gt;Sources démo intro CS3 : &lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;a href=&quot;http://www.flp-sp.com.br/php/communautaire/spip.php?rubrique41&amp;amp;lang=fr&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.flp-sp.com.br/php/communautaire/spip.php?rubrique41&amp;amp;lang=fr&quot;  rel=&quot;nofollow&quot;&gt;http://www.flp-sp.com.br/php/communautaire/spip.php?rubrique41&amp;amp;lang=fr&lt;/a&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;footnotes&quot;&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__1&quot; id=&quot;fn__1&quot; name=&quot;fn__1&quot; class=&quot;fn_bot&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; 
 par ordre alpha : je me refuse à établir une quelconque hiérarchie dans l&amp;#039;aide apportée &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_biggrin.gif&quot; class=&quot;middle&quot; alt=&quot;:D&quot; /&gt;&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__2&quot; id=&quot;fn__2&quot; name=&quot;fn__2&quot; class=&quot;fn_bot&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt; 
a : pour angle&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__3&quot; id=&quot;fn__3&quot; name=&quot;fn__3&quot; class=&quot;fn_bot&quot;&gt;3)&lt;/a&gt;&lt;/sup&gt; 
la médiatrice d&amp;#039;un segment est l&amp;#039;ensemble des points équidistants des extrémités du segment&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__4&quot; id=&quot;fn__4&quot; name=&quot;fn__4&quot; class=&quot;fn_bot&quot;&gt;4)&lt;/a&gt;&lt;/sup&gt; 
une habitude d&amp;#039;écriture très perso veut que _c signifie “courant”&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__5&quot; id=&quot;fn__5&quot; name=&quot;fn__5&quot; class=&quot;fn_bot&quot;&gt;5)&lt;/a&gt;&lt;/sup&gt; 
la ligne de pliure dans la vidéo, à ce moment là je parle de cacher ce qui déborde aussi bien de recto que de verso (je mets quand même pas la référence à la minute ? dis Lilive ?&lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_mrgreen.gif&quot; class=&quot;middle&quot; alt=&quot;:mrgreen:&quot; /&gt;&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__6&quot; id=&quot;fn__6&quot; name=&quot;fn__6&quot; class=&quot;fn_bot&quot;&gt;6)&lt;/a&gt;&lt;/sup&gt; 
Afin de ne pas polluer la progression du tuto je ne développerai pas le sujet ici, si certains d&amp;#039;entre vous ont des questions j&amp;#039;y répondrai avec plaisir dans la discussion associée&lt;/div&gt;
&lt;/div&gt;
</description>
            <author>Nataly</author>
        <category>tutoriaux:flashplatform:affichage:animation</category>
            <pubDate>Mon, 23 Apr 2012 14:09:06 +0200</pubDate>
        </item>
        <item>
            <title>Héritage et surcharge (#1)</title>
            <link>http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales</link>
            <description>&lt;noscript class=&quot;datambplugin_pageinfo&quot;&gt;Activez JavaScript pour une utilisation optimale.&lt;/noscript&gt;
&lt;div id=&quot;datambplugin_pageinfo&quot;&gt;&lt;div id=&quot;pageinfo__header&quot;&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/aide/compatibilite&quot; class=&quot;wikiMarker&quot; rel=&quot;lightbox&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/compatibilite/as3.png&quot; alt=&quot;Compatible ActionScript 3. Cliquer pour en savoir plus sur les compatibilités.&quot; title=&quot;Compatible ActionScript 3. Cliquer pour en savoir plus sur les compatibilités.&quot; width=&quot;27&quot; /&gt;&lt;/a&gt;&lt;span&gt;Par Nataly, le 29 mai 2010&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/poo_bases/classesqqc&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:poo_bases:classesqqc&quot;&gt;Introduction&lt;/a&gt;&lt;br/&gt;

&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/bibliotheque&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:poo_bases:classesqqc:bibliotheque&quot;&gt;Classe de base (#1)&lt;/a&gt;&lt;br/&gt;

&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/bibliotheque1&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:poo_bases:classesqqc:bibliotheque1&quot;&gt;Classe de base (#2)&lt;/a&gt;&lt;br/&gt;

&lt;strong&gt;&lt;span class=&quot;curid&quot;&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:poo_bases:classesqqc:boitesmodales&quot;&gt;Héritage et surcharge (#1)&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br/&gt;

&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales1&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:poo_bases:classesqqc:boitesmodales1&quot;&gt;Héritage et surcharge (#2)&lt;/a&gt;&lt;br/&gt;

&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales2&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:poo_bases:classesqqc:boitesmodales2&quot;&gt;Diffuser des événements&lt;/a&gt;&lt;br/&gt;

&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/bibliotheque2&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:poo_bases:classesqqc:bibliotheque2&quot;&gt;Classe liée&lt;/a&gt;&lt;br/&gt;

&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/classedoc&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:poo_bases:classesqqc:classedoc&quot;&gt;Classe de document&lt;/a&gt;&lt;br/&gt;

&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/visionneuse&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:poo_bases:classesqqc:visionneuse&quot;&gt;Classe externe : une visionneuse (#1)&lt;/a&gt;&lt;br/&gt;

&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/visionneuse1&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:poo_bases:classesqqc:visionneuse1&quot;&gt;Classe externe : une visionneuse (#2)&lt;/a&gt;&lt;br/&gt;

&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/static&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:poo_bases:classesqqc:static&quot;&gt;Classe externe : méthodes statiques&lt;/a&gt;&lt;br/&gt;

&lt;/p&gt;

&lt;h1&gt;&lt;a name=&quot;heritage_et_surcharge_1&quot; id=&quot;heritage_et_surcharge_1&quot;&gt;Héritage et surcharge (#1)&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Pour illustrer les points qui vont suivre, je vous propose d&amp;#039;écrire quelques classes destinées à gérer des boites de dialogue modales.&lt;br/&gt;

On dit d&amp;#039;une boite de dialogue (et d&amp;#039;une fenêtre en général) qu&amp;#039;elle est modale quand sa fermeture est obligatoire pour pouvoir donner le focus à une autre fenêtre. En gros quand on ne peut pas accéder à d&amp;#039;autres éléments d&amp;#039;interface aussi longtemps qu&amp;#039;elle est affichée (ça empêche l&amp;#039;utilisateur de cliquer partout &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;)&lt;br/&gt;

Typiquement il s&amp;#039;agit des boites d&amp;#039;alerte et autres boites de type Oui/Non.
&lt;/p&gt;

&lt;p&gt;
&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;500&quot; height=&quot;200&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/boitesmodalesintro.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;500&quot; height=&quot;200&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/boitesmodalesintro.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;
&lt;br/&gt;

&lt;em&gt;Merci Lilive pour l&amp;#039;illustration bien &lt;del&gt;moins laide&lt;/del&gt; plus jolie que celle dont je m&amp;#039;étais contentée.&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;conception&quot; id=&quot;conception&quot;&gt;Conception&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Comme vous le voyez au dessus, la ruse consiste à créer un écran translucide entre la boite de dialogue et les autres éléments de l&amp;#039;animation.&lt;br/&gt;

Le principe de l&amp;#039;écran est commun à toutes les boites, qu&amp;#039;elles soient de type Alerte (un bouton), Question (Oui-Non) ou encore Boite de saisie.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Principe commun, quand on pense classe ça revient à dire héritage.
Toutes les boites, si elles sont modales, devront hériter des même caractéristiques, donc d&amp;#039;une même classe qui se chargera d&amp;#039;afficher un écran translucide entre la boite et l&amp;#039;animation.&lt;br/&gt;

Appelons cette classe BoiteModale, elle héritera de MovieClip et chacune des classes (BoiteAlerte, BoiteOuiNon…) héritera de BoiteModale.
&lt;/p&gt;

&lt;p&gt;

&lt;a href=&quot;http://forums.mediabox.fr/wiki/_detail/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/crobheritmodal.jpg?id=tutoriaux%3Aflashplatform%3Aprogrammation%3Apoo_bases%3Aclassesqqc%3Aboitesmodales&quot; class=&quot;media&quot; title=&quot;tutoriaux:flashplatform:programmation:poo_bases:classesqqc:boitesmodales:crobheritmodal.jpg&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/crobheritmodal.jpg?w=600&amp;amp;h=450&quot; class=&quot;media&quot; alt=&quot;&quot; width=&quot;600&quot; height=&quot;450&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;

Dans un premier temps je vous propose de construire une boite d&amp;#039;alerte modale, ensuite ce sera jeu d&amp;#039;enfant de décliner le principe pour d&amp;#039;autres types de boites.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
On est d&amp;#039;accord sur le fait qu&amp;#039;il va nous falloir, outre un fla de mise en œuvre, une classe BoiteAlerte et une classe BoiteModale.&lt;br/&gt;

Si on anticipe le fait que plus tard viendront s&amp;#039;ajouter des classes BoiteSaisie, BoiteOuiNon, et d&amp;#039;autres, on ne peut plus se satisfaire de tout ranger dans le même répertoire (le fla et les classes auxquelles il fait appel). D&amp;#039;autant moins que ces classes vont nous être utiles chaque fois que, dans un projet ou un autre, nous auront recours à une boite de type modal.
&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;organisation_du_disque_et_chemin_de_classe&quot; id=&quot;organisation_du_disque_et_chemin_de_classe&quot;&gt;Organisation du disque et chemin de classe&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;le_.fla_de_test&quot; id=&quot;le_.fla_de_test&quot;&gt;Le .fla de test&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Le .fla de test c&amp;#039;est pure formalité :&lt;br/&gt;

Dans sa bibliothèque il faut un clip qui sera une boite d&amp;#039;alerte. Faire aussi moche que sur la demo ne devrait pas vous prendre trop de temps, pour l&amp;#039;instant même un simple rectangle (pour y voir quelque chose) suffirait.&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/_detail/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/boitealerteconstruc.jpg?id=tutoriaux%3Aflashplatform%3Aprogrammation%3Apoo_bases%3Aclassesqqc%3Aboitesmodales&quot; class=&quot;media&quot; title=&quot;tutoriaux:flashplatform:programmation:poo_bases:classesqqc:boitesmodales:boitealerteconstruc.jpg&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/boitealerteconstruc.jpg?w=351&quot; class=&quot;media&quot; alt=&quot;&quot; width=&quot;351&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;

Et on l&amp;#039;enregistre là où ça nous arrange…&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;organiser_les_classes&quot; id=&quot;organiser_les_classes&quot;&gt;Organiser les classes&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

En revanche pour ce qui est des classes, cette fois on ne va pas les laisser dans le même répertoire que le fla.&lt;br/&gt;

Il est de tradition d&amp;#039;avoir dans un coin de disque un répertoire Outils, ou Utils, voire Utilitaires dans lequel on range ses classes perso.&lt;br/&gt;

Afin de ne pas risquer de confusions avec des répertoires pré-existants, ce dossier je vais le nommer &lt;code&gt;Mezoutils&lt;/code&gt;.&lt;br/&gt;

Dedans, un sous-répertoire Interface et dedans encore un autre répertoire BoitesModales, comme ça ce sera bien propre.
&lt;/p&gt;

&lt;p&gt;
A terme donc nous aurons quelque chose qui ressemblera à ça :
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/_detail/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/hierarchiedisque.png?id=tutoriaux%3Aflashplatform%3Aprogrammation%3Apoo_bases%3Aclassesqqc%3Aboitesmodales&quot; class=&quot;media&quot; title=&quot;tutoriaux:flashplatform:programmation:poo_bases:classesqqc:boitesmodales:hierarchiedisque.png&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/hierarchiedisque.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;

On est d&amp;#039;accord que ce clip (&lt;code&gt;Mv_BoiteAlerte&lt;/code&gt;, par exemple) est destiné à être associé à la future classe BoiteAlerte qui étendra la future classe BoiteModale. Ces deux classes seront rangées - empaquetées - dans le répertoire Interface/BoiteModale. C&amp;#039;est cette hiérarchie de dossier qui détermine le nom du paquetage, ici : &lt;code&gt;Interface.BoitesModales&lt;/code&gt;.&lt;br/&gt;

On sait tout, yapuka…
&lt;/p&gt;

&lt;p&gt;
Créons les classes avec seulement un trace dans le constructeur :&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;package &lt;span class=&quot;kw3&quot;&gt;Interface&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;BoitesModales&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
      &lt;span class=&quot;kw3&quot;&gt;import&lt;/span&gt; flash.&lt;span class=&quot;me1&quot;&gt;display&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt;;
&amp;nbsp;
      &lt;span class=&quot;kw3&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt; BoitesModales &lt;span class=&quot;kw3&quot;&gt;extends&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw3&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; BoiteModale &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
               &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;passage constructeur BoiteModale &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
      &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code actionscript&quot;&gt;package &lt;span class=&quot;kw3&quot;&gt;Interface&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;BoitesModales&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
&amp;nbsp;
      &lt;span class=&quot;kw3&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt; BoiteAlerte &lt;span class=&quot;kw3&quot;&gt;extends&lt;/span&gt; BoitesModales &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw3&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; BoiteAlerte&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
               &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;passage constructeur BoiteAlerte&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
      &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

 
La seule chose nouvelle c&amp;#039;est le nom du paquetage : pour “atteindre” la classe BoiteAlerte on utilisera donc la syntaxe &lt;code&gt;Interface.BoiteModale.BoiteAlerte&lt;/code&gt;, au même titre qu&amp;#039;on utilise par expemple &lt;code&gt;flash.display.MovieClip&lt;/code&gt; quand il s&amp;#039;agit de la classe MovieClip. 
&lt;/p&gt;

&lt;p&gt;
Il ne reste plus qu&amp;#039;à associer &lt;code&gt;Interface.BoiteModale.BoiteAlerte&lt;/code&gt; et le symbole Mv_BoiteAlerte via le champ Classe de base.
&lt;/p&gt;

&lt;p&gt;

&lt;a href=&quot;http://forums.mediabox.fr/wiki/_detail/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/cheminboitealerte.png?id=tutoriaux%3Aflashplatform%3Aprogrammation%3Apoo_bases%3Aclassesqqc%3Aboitesmodales&quot; class=&quot;media&quot; title=&quot;tutoriaux:flashplatform:programmation:poo_bases:classesqqc:boitesmodales:cheminboitealerte.png&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/cheminboitealerte.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Si ce n&amp;#039;est que, par défaut, le compilateur va chercher la classe ou le paquetage dans le même répertoire que le .fla, où il ne le trouve pas, et pour cause on l&amp;#039;a rangé dans le répertoire Mezoutils… 
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/_detail/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/avertissement2.png?id=tutoriaux%3Aflashplatform%3Aprogrammation%3Apoo_bases%3Aclassesqqc%3Aboitesmodales&quot; class=&quot;media&quot; title=&quot;tutoriaux:flashplatform:programmation:poo_bases:classesqqc:boitesmodales:avertissement2.png&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/avertissement2.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Il faut donc préciser dans les préférences de publication (menu Fichier) le chemin vers ce répertoire Mezoutils :
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/_detail/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/cheminclasse-2.jpg?id=tutoriaux%3Aflashplatform%3Aprogrammation%3Apoo_bases%3Aclassesqqc%3Aboitesmodales&quot; class=&quot;media&quot; title=&quot;tutoriaux:flashplatform:programmation:poo_bases:classesqqc:boitesmodales:cheminclasse-2.jpg&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/cheminclasse-2.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Et voilà :
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/_detail/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/chemin2.jpg?id=tutoriaux%3Aflashplatform%3Aprogrammation%3Apoo_bases%3Aclassesqqc%3Aboitesmodales&quot; class=&quot;media&quot; title=&quot;tutoriaux:flashplatform:programmation:poo_bases:classesqqc:boitesmodales:chemin2.jpg&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/chemin2.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;em&gt;
&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;verifier&quot; id=&quot;verifier&quot;&gt;Vérifier&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Cette fois c&amp;#039;est bon, on va pouvoir avancer. &lt;br/&gt;

Pour être certains que le compilateur retrouve ses petits, testons l&amp;#039;histoire d&amp;#039;une simple ligne dans le fla : &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; bteAlerte:Mv_BoiteAlerte=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Mv_BoiteAlerte&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;&lt;pre class=&quot;code trace&quot;&gt;passage constructeur BoiteModale 
passage constructeur BoiteAlerte&lt;/pre&gt;
&lt;p&gt;
Je suis bien d&amp;#039;accord, vérifier que ça fonctionne juste en s&amp;#039;extasiant sur quelques lignes dans le panneau de sortie ce n&amp;#039;est toujours pas plus satisfaisant. Temporairement, pour voir ce qu&amp;#039;on fait, on va donc ajouter l&amp;#039;instance de bteAlerte à la liste d&amp;#039;affichage avec un addChild dans le .fla.
&lt;/p&gt;

&lt;p&gt;
Puisque l&amp;#039;objectif est de fabriquer une boite modale qui en s&amp;#039;affichant proscrira l&amp;#039;accès aux autres éléments de l&amp;#039;animation, profitons en pour ajouter sur la scène quelques boutons et un champ de saisie. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/_detail/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/illustrsceneboitemode.jpg?id=tutoriaux%3Aflashplatform%3Aprogrammation%3Apoo_bases%3Aclassesqqc%3Aboitesmodales&quot; class=&quot;media&quot; title=&quot;tutoriaux:flashplatform:programmation:poo_bases:classesqqc:boitesmodales:illustrsceneboitemode.jpg&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/illustrsceneboitemode.jpg?w=533&quot; class=&quot;media&quot; alt=&quot;&quot; width=&quot;533&quot; /&gt;&lt;/a&gt;&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; bteAlerte:Mv_BoiteAlerte=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Mv_BoiteAlerte&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
addChild&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;bteAlerte&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Pour l&amp;#039;instant ça ne proscrit rien du tout, c&amp;#039;est le contraire qui aurait été étonnant on n&amp;#039;a rien fait pour &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt; &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;500&quot; height=&quot;200&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/btealerte1.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;500&quot; height=&quot;200&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/btealerte1.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;
&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;la_classe_mere&quot; id=&quot;la_classe_mere&quot;&gt;La classe mère&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Il s&amp;#039;agit, pour toutes les boites modales, de fabriquer - quoiqu&amp;#039;il arrive - un écran (une forme) aux dimensions de la scène et de l&amp;#039;ajouter. Ça concerne donc la classe BoiteModale dont dériveront (hériteront) toutes les autres, et ça se passe dans le constructeur.&lt;br/&gt;

Avant même de se lancer dans les grandes manœuvres, une chose est sûre : pour dessiner un truc aux dimensions de la scène, il faut les avoir, les dimensions. Trop facile ! C&amp;#039;est stage.stageWidth, et stage.stageHeight, clame Ronchon dans un élan de bonne humeur retrouvée.&lt;br/&gt;

Bonne humeur qui ne dure pas car justement, si on teste stage.width dans le constructeur on est désappointé : l&amp;#039;éternelle erreur 1009 (&lt;em&gt;Il est impossible d&amp;#039;accéder à la propriété ou à la méthode d&amp;#039;une référence d&amp;#039;objet nul&lt;/em&gt;) est renvoyée.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;proprietes_stage_root_et_parent_d_une_instance&quot; id=&quot;proprietes_stage_root_et_parent_d_une_instance&quot;&gt;propriétés stage, root, et parent d&amp;#039;une instance&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Regardons ça de plus près, c&amp;#039;est qui le nul ?  
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; BoiteModale&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;passage constructeur BoiteModale &amp;quot;&lt;/span&gt;+&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;scène &amp;quot;&lt;/span&gt;+&lt;span class=&quot;kw3&quot;&gt;stage&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code trace&quot;&gt;passage constructeur BoiteModale [object Mv_BoiteAlerte]
scène null
passage constructeur BoiteAlerte&lt;/pre&gt;
&lt;p&gt;
Et bien c&amp;#039;est la scène semble-t-il… Comment ça ??&lt;br/&gt;

En fait c&amp;#039;est logique, souvenons nous : le constructeur est invoqué à la création de l&amp;#039;instance, avant donc que la-dite instance soit ajoutée. D&amp;#039;ailleurs, le premier test on l&amp;#039;a fait sans même invoquer un addChild. &lt;code&gt;var monObjet:MaClasse = new MaClasse()&lt;/code&gt; hop ! ça invoque le constructeur, et à ce moment là l&amp;#039;objet n&amp;#039;étant pas dans liste d&amp;#039;affichage les propriétés, parent, root, et stage renvoient tout naturellement null…&lt;br/&gt;

Zutalors, comment faire ?&lt;br/&gt;

Tout bêtement en attendant que l&amp;#039;instance soit ajoutée pour utiliser ses propriétés parent, root ou stage. Dès qu&amp;#039;une instance est ajoutée, l&amp;#039;événement ADDED_TO_STAGE est diffusé (l&amp;#039;instance &lt;em&gt;crie&lt;/em&gt; “Ayé ! Je suis dans la liste d&amp;#039;affichage”). Pour nous il suffit donc d&amp;#039;écouter cet événement (importez le package flash.events.Event) 
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;	&lt;span class=&quot;kw3&quot;&gt;import&lt;/span&gt; flash.&lt;span class=&quot;me1&quot;&gt;events&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Event&lt;/span&gt;;&lt;/pre&gt;&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; BoiteModale&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;passage constructeur BoiteModale &amp;quot;&lt;/span&gt;+&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Event.&lt;span class=&quot;me1&quot;&gt;ADDED_TO_STAGE&lt;/span&gt;,QdAjouté&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; QdAjouté&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;e&lt;/span&gt;:Event&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;qd ajouté &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;stage&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;stageWidth&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code trace&quot;&gt;passage constructeur BoiteModale [object Mv_BoiteAlerte]
passage constructeur BoiteAlerte
qd ajouté 
500&lt;/pre&gt;
&lt;p&gt;
&lt;span class=&quot;wrap_tip&quot;&gt;
Notez bien qui est &lt;code&gt;this&lt;/code&gt; &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;
&lt;/span&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;dessiner_dans_une_forme&quot; id=&quot;dessiner_dans_une_forme&quot;&gt;Dessiner dans une forme&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Pour dessiner dans une forme il faut d&amp;#039;abord créer une forme &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt; :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; uneForme:Shape=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Shape  ;&lt;/pre&gt;
&lt;p&gt;
… puis utiliser sa propriété graphics qui permet d&amp;#039;avoir recours à un ensemble de méthodes pour dessiner des formes vectorielles. Par exemple pour dessiner un rectangle rouge et opaque (alpha=1) de 300 sur 100 (largeur/hauteur) on écrirait :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;co1&quot;&gt;// remplissage rouge opaque&lt;/span&gt;
uneForme.&lt;span class=&quot;me1&quot;&gt;graphics&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;beginFill&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;0xFF0000,&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;co1&quot;&gt;// dessiner un rectangle en 0/0 300 large, 100 haut&lt;/span&gt;
uneForme.&lt;span class=&quot;me1&quot;&gt;graphics&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;drawRect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;0,0,&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
Appliqué à ce qui nous préoccupe ça donne :&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
• Créer (et ajouter) une forme dans le constructeur, une bonne fois pour toutes.&lt;br/&gt;

• Dessiner dans la forme une fois l&amp;#039;instance ajoutée à la liste d&amp;#039;affichage pour avoir accès aux dimensions de scène.
&lt;/p&gt;

&lt;p&gt;
Puisque la forme destinée à faire écran sera crée dans une fonction et utilisée (pour y dessiner) dans une autre, il nous faut ne variable globale privée, nommons la _ecran.
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;	&lt;span class=&quot;kw3&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt; BoiteModale &lt;span class=&quot;kw3&quot;&gt;extends&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;kw3&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; _ecran:Shape;
&amp;nbsp;
         &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code actionscript&quot;&gt;		&lt;span class=&quot;kw3&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; BoiteModale&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                        &lt;span class=&quot;co1&quot;&gt;// a l'initialisation, créer la forme&lt;/span&gt;
			_ecran=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Shape&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
                        &lt;span class=&quot;co1&quot;&gt;// ajouter _ecran à liste d'affichage (tout en bas)&lt;/span&gt;
			addChildAt&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;_ecran,0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
                        &lt;span class=&quot;co1&quot;&gt;// attendre que this soit ajouté sur la scène &lt;/span&gt;
                        &lt;span class=&quot;co1&quot;&gt;// pour avoir accès à ses dimensions  &lt;/span&gt;
			&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Event.&lt;span class=&quot;me1&quot;&gt;ADDED_TO_STAGE&lt;/span&gt;,qdAjouté&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
		&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
On a bien pris soin d&amp;#039;utiliser &lt;strong&gt;addChildAt&lt;/strong&gt; avec une profondeur &lt;strong&gt;0&lt;/strong&gt;, un addChild (tout court) aurait placé la forme au dessus de tout le reste, et proscrit aussi l&amp;#039;accès aux boutons de la boite…
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; QdAjouté&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;e&lt;/span&gt;:Event&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;qd ajouté &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;stage&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;stageWidth&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span class=&quot;co1&quot;&gt;// gris en alpha 0.1&lt;/span&gt;
	ecran.&lt;span class=&quot;me1&quot;&gt;graphics&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;beginFill&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;0x333333,&lt;span class=&quot;nu0&quot;&gt;0.1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	ecran.&lt;span class=&quot;me1&quot;&gt;graphics&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;drawRect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;0,0,&lt;span class=&quot;kw3&quot;&gt;stage&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;stageWidth&lt;/span&gt;,&lt;span class=&quot;kw3&quot;&gt;stage&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;stageHeight&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;			
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;500&quot; height=&quot;200&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/btealerte2.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;500&quot; height=&quot;200&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/btealerte2.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;initialiser_et_modifier_les_caracteristiques_de_l_ecran&quot; id=&quot;initialiser_et_modifier_les_caracteristiques_de_l_ecran&quot;&gt;Initialiser et modifier les caractéristiques de l&amp;#039;écran&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Au point où on en est, autant permettre à l&amp;#039;utilisateur de définir la couleur et l&amp;#039;opacité (l&amp;#039;alpha) de l&amp;#039;écran. Il suffit de sortir deux variables.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Soit on les déclare publiques et globales, et hop le tour est joué ; soit on décide d&amp;#039;utiliser des accesseurs…&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
C&amp;#039;est le cas de conscience typique.&lt;br/&gt;

Définir des accesseurs qui ne feront rien d&amp;#039;autres que modifier la valeur d&amp;#039;une variable globale (certes privée)…&lt;br/&gt;

Mouais…&lt;br/&gt;

Arguer que oui mais ça permettrait de modifier la couleur de l&amp;#039;écran après l&amp;#039;affichage…&lt;br/&gt;

Je réponds à nouveau d&amp;#039;un borborygme pas convaincu. Ça n&amp;#039;a pas grand sens, ce sont des boites destinées à être affichées pour prévenir de toute autre action utilisateur que celle qu&amp;#039;on attend… Quand va-t-on avoir besoin de modifier la couleur ou l&amp;#039;alpha, ou ce qu&amp;#039;on voudra, après l&amp;#039;affichage de la dite boite, pendant que l&amp;#039;utilisateur n&amp;#039;a d&amp;#039;autre recours que cliquer sur le bouton OK ?&lt;br/&gt;

En plus, pour ceux qui s&amp;#039;y essaieront quand même (si, si, c&amp;#039;est de bonne guerre), il y aura des surprises, pas incontournables, mais des surprises. Alors écrire une usine pour offrir une fonctionnalité inutile, sur ce coup là, c&amp;#039;est sans moi &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;
&lt;/p&gt;

&lt;p&gt;
Donc deux globales publiques ! &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_smile.gif&quot; class=&quot;middle&quot; alt=&quot;:)&quot; /&gt;
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;	&lt;span class=&quot;kw3&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt; BoiteModale &lt;span class=&quot;kw3&quot;&gt;extends&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
&amp;nbsp;
		&lt;span class=&quot;kw3&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; coulEcran:uint=0x333333;
		&lt;span class=&quot;kw3&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; alphaEcran:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0.1&lt;/span&gt;;
&amp;nbsp;
		&lt;span class=&quot;kw3&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; _ecran:Shape;
&amp;nbsp;
                &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;...&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code actionscript&quot;&gt;		&lt;span class=&quot;kw3&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; qdAjouté&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;e&lt;/span&gt;:Event&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
			_ecran.&lt;span class=&quot;me1&quot;&gt;graphics&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;beginFill&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;coulEcran,alphaEcran&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
			_ecran.&lt;span class=&quot;me1&quot;&gt;graphics&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;drawRect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;0,0,&lt;span class=&quot;kw3&quot;&gt;stage&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;stageWidth&lt;/span&gt;,&lt;span class=&quot;kw3&quot;&gt;stage&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;stageHeight&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
		&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;strong&gt;Appel depuis le fla :&lt;/strong&gt;
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; bteAlerte:Mv_BoiteAlerte=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Mv_BoiteAlerte&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
bteAlerte.&lt;span class=&quot;me1&quot;&gt;coulEcran&lt;/span&gt;=0xFF0000;
bteAlerte.&lt;span class=&quot;me1&quot;&gt;alphaEcran&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0.5&lt;/span&gt;
addChild&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;bteAlerte&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;500&quot; height=&quot;200&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/moboitesmodalesr1.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;500&quot; height=&quot;200&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/moboitesmodalesr1.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;determiner_les_coordonnees_de_la_boite&quot; id=&quot;determiner_les_coordonnees_de_la_boite&quot;&gt;Déterminer les coordonnées de la boite&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Cette fois ça suffit, notre boite de dialogue toute coincée là haut, ça ne peut plus durer.&lt;br/&gt;

Il faut pouvoir disposer la boite de dialogue là où on veut sur la scène à l&amp;#039;aide des propriétés x et y :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;bteAlerte.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
Si ce n&amp;#039;est qu&amp;#039;en l&amp;#039;état ça descend tout en 50. La boite et l&amp;#039;écran.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;500&quot; height=&quot;200&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/moboitesmodalesr2.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;500&quot; height=&quot;200&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/moboitesmodalesr2.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;

&lt;/p&gt;

&lt;p&gt;
Normal.&lt;br/&gt;

L&amp;#039;écran est ajouté à l&amp;#039;instance - via la classe mère  - il est déplacé avec elle
&lt;/p&gt;

&lt;p&gt;
reprenons le processus :&lt;br/&gt;

1) on crée une instance (&lt;code&gt;new Mv_Alerte()&lt;/code&gt;)&lt;br/&gt;

2) on invoque affiche –&amp;gt; passage dans qdAjouté –&amp;gt; dessin d&amp;#039;un rectangle dans de _ecran en 0/0 :&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;_ecran.&lt;span class=&quot;me1&quot;&gt;graphics&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;drawRect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;0,0,&lt;span class=&quot;kw3&quot;&gt;stage&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;stageWidth&lt;/span&gt;,&lt;span class=&quot;kw3&quot;&gt;stage&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;stageHeight&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;

Dans le cas qui nous occupe il faudrait qu&amp;#039;il soit créé en 0/-50, pour compenser le décalage vertical. - 50, c&amp;#039;est -y… Pour x c&amp;#039;est même combat… Modifions donc :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;		&lt;span class=&quot;kw3&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; qdAjouté&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;e&lt;/span&gt;:Event&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
			_ecran.&lt;span class=&quot;me1&quot;&gt;graphics&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;clear&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
			_ecran.&lt;span class=&quot;me1&quot;&gt;graphics&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;beginFill&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;coulEcran,alphaEcran&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
                        &lt;span class=&quot;co1&quot;&gt;// répercuter le décalage x/y&lt;/span&gt;
			_ecran.&lt;span class=&quot;me1&quot;&gt;graphics&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;drawRect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;-x,-y,&lt;span class=&quot;kw3&quot;&gt;stage&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;stageWidth&lt;/span&gt;,&lt;span class=&quot;kw3&quot;&gt;stage&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;stageHeight&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
		&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;500&quot; height=&quot;200&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/moboitesmodalesr3.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;500&quot; height=&quot;200&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales/moboitesmodalesr3.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
C&amp;#039;est un bon début. Maintenant on va faire en sorte que la boite s&amp;#039;auto-affiche : on veut pouvoir l&amp;#039;utiliser comme suit :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; bteAlerte:Mv_BoiteAlerte=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Mv_BoiteAlerte&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
bteAlerte.&lt;span class=&quot;me1&quot;&gt;affiche&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
… ou presque… Bon d&amp;#039;accord on va rencontrer deux trois subtilités… Et, je sais pas vous, mais moi je ferais bien une pause, alors &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/poo_bases/classesqqc/boitesmodales1&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:poo_bases:classesqqc:boitesmodales1&quot;&gt;on se retrouve là&lt;/a&gt; tout de suite après ?
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>Nataly</author>
        <category>tutoriaux:flashplatform:programmation:poo_bases:classesqqc</category>
            <pubDate>Mon, 23 Apr 2012 13:08:51 +0200</pubDate>
        </item>
        <item>
            <title>Mode7</title>
            <link>http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/jeux/mode7</link>
            <description>&lt;noscript class=&quot;datambplugin_pageinfo&quot;&gt;Activez JavaScript pour une utilisation optimale.&lt;/noscript&gt;
&lt;div id=&quot;datambplugin_pageinfo&quot;&gt;&lt;div id=&quot;pageinfo__header&quot;&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/aide/compatibilite&quot; class=&quot;wikiMarker&quot; rel=&quot;lightbox&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/compatibilite/as3.png&quot; alt=&quot;Compatible ActionScript 3. Cliquer pour en savoir plus sur les compatibilités.&quot; title=&quot;Compatible ActionScript 3. Cliquer pour en savoir plus sur les compatibilités.&quot; width=&quot;27&quot; /&gt;&lt;/a&gt;&lt;span&gt;Par Monsieur Spi, le 24 septembre 2010&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;wrap_todo wrap_bg&quot; style=&quot;width:400px;&quot;&gt;
&lt;strong&gt;EN CHANTIER&lt;/strong&gt;&lt;br/&gt;

Cette page n&amp;#039;est pas terminée et est en cours d&amp;#039;écriture.&lt;br/&gt;

Merci de votre patience.
&lt;/div&gt;
&lt;p&gt;
Discussion:
&lt;/p&gt;

&lt;p&gt;
( désolé mais il manque l&amp;#039;option discussion dans le wiki alors en attendant je la crée ici )
&lt;/p&gt;

&lt;p&gt;
J&amp;#039;ai relevé deux erreurs dans cet article:
&lt;/p&gt;

&lt;p&gt;
1/ Une erreur de vocabulaire: confusion entre mode 7 et z-mapping. (pourtant c&amp;#039;est bien expliqué dans wikipedia)
&lt;/p&gt;

&lt;p&gt;
Ce qu&amp;#039;on appelait le “mode7” sur la console snes c&amp;#039;était l&amp;#039;équivalent de la classe Matrix() dans flash, c&amp;#039;est à dire qu&amp;#039;un des calques de tuiles - contrairement à ses petits camarades qui n&amp;#039;étaient rendus que selon un vecteur de scrolling x/y - pouvait être rendu avec une matrice à 6 chiffres qui permet de faire des zoom, des rotations, et des inclinaisons
&lt;/p&gt;

&lt;p&gt;
Pourquoi donc on appelait ça “mode7” et pas “mode6” alors qu&amp;#039;il y&amp;#039;a 6 chiffres dans la matrice ? Parce qu&amp;#039;on passait à la carte vidéo une 7ème variable qui servait à renseigner un index d&amp;#039;effet spécial (miroir, etc).
&lt;/p&gt;

&lt;p&gt;
Bref cette appelation “mode7” était propre à la supernes et ne concerne pas les jeux micro.
&lt;/p&gt;

&lt;p&gt;
Ensuite il y&amp;#039;avait un deuxième effet spécial propre à ces machines c&amp;#039;était le rendu par scanline, c&amp;#039;est ce qui permettait de faire onduler les fonds aquatiques par exemple, pour chaque scanline on pouvait choisir la valeur de scrolling x/y. Et pour rendre le z-mapping de mariokart, on utilisait le calque de tuiles mode 7 et pour chaque scanline on modifiait la matrice 2d à 6 chiffres.
&lt;/p&gt;

&lt;p&gt;
Voilà… puisse cet éclaircissement vous aider à trouver les bons calculs.
&lt;/p&gt;

&lt;p&gt;
2/ une erreur de méthode: lire un bitmap plutôt qu&amp;#039;un tableau pour la collisionmap
&lt;/p&gt;

&lt;p&gt;
Ca ne change rien en fait, un bitmap étant déjà un tableau.
&lt;/p&gt;

&lt;p&gt;
Cependant, si l&amp;#039;on recherche la rapidité maximale d&amp;#039;exécution du code, il faut lire un Vector&amp;lt;int&amp;gt; à une dimension qui code une grille 2d avec la formule suivante: pixel = [ x + ( y « indexdepuissance2correspondantalalargeur ) ];
&lt;/p&gt;

&lt;p&gt;
Pour lire les collisions ça ne va pas changer grand chose au niveau des perfs, mais si l&amp;#039;on souhaite rendre la zmap pixel par pixel ça va faire une grosse différence de vitesse d&amp;#039;exécution.
&lt;/p&gt;

&lt;p&gt;
Voilà… bon code.
&lt;/p&gt;

&lt;h1&gt;&lt;a name=&quot;mode7&quot; id=&quot;mode7&quot;&gt;Mode7&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;menu_general&quot; id=&quot;menu_general&quot;&gt;Menu général&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://ressources.mediabox.fr/tutoriaux/flashplatform/jeux/mode7&quot;&gt;&lt;b&gt;01-Introduction&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://ressources.mediabox.fr/tutoriaux/flashplatform/jeux/mode7/02-definir_le_monde&quot;&gt;&lt;b&gt;02-Définir le monde&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://ressources.mediabox.fr/tutoriaux/flashplatform/jeux/mode7/03-concept&quot;&gt;&lt;b&gt;03-Concept&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://ressources.mediabox.fr/tutoriaux/flashplatform/jeux/mode7/04-Horizon-et-arriere-plan&quot;&gt;&lt;b&gt;04-Horizon et arriere plan&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://ressources.mediabox.fr/tutoriaux/flashplatform/jeux/mode7/05-definir-le-terrain-de-jeu&quot;&gt;&lt;b&gt;05-Définir le terrain de jeu&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://ressources.mediabox.fr/tutoriaux/flashplatform/jeux/mode7/06-sprites_et_objets&quot;&gt;&lt;b&gt;06-Sprites et objets&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;preface&quot; id=&quot;preface&quot;&gt;Préface&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;

&lt;table&gt;&lt;tr&gt;
&lt;td&gt;&lt;img src=&quot;http://ressources.mediabox.fr/_media/tutoriaux/flashplatform/jeux/mode7/intro.jpg&quot;&gt;&lt;/img&gt;&lt;/td&gt;
&lt;td width=5&gt;&lt;/td&gt;
&lt;td valign=top&gt;
Vous avez sans doute déjà entendu parler de Mode7 quelque part, et si ce n’est pas le cas vous en avez forcément au moins déjà vu. 
&lt;br&gt;&lt;br&gt;
Il s’agit d’une technique qui a pris naissance à la fin des années 80 et qui permet d'obtenir une vue en perspective à partir d’une surface en deux dimensions. 
&lt;br&gt;&lt;br&gt;
Si aujourd’hui des noms comme F-Zéro n’évoquent plus rien à la jeune génération, il faudrait avoir vécu dans une grotte sur la lune ces 20 dernières années pour ne pas avoir entendu parler de Mario Kart. 
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;

&lt;/p&gt;

&lt;p&gt;
Le Mode 7 est une toute première approche de la 3D qui aborde des notions de projection, de caméra, de plan et de transformations dans l’espace à trois dimensions. C’est un moyen rapide de prendre en main des processus communs aux applications 3D et de monter des jeux ou des effets efficaces.
&lt;/p&gt;

&lt;p&gt;
Il y deux grandes notions qu’il est impératif de retenir lorsque l’on veut aborder le Mode 7, les opérations géométriques appliquées sur une surface à deux dimensions (communément appelée un plan) et le principe de la projection.
&lt;/p&gt;

&lt;p&gt;
Mais commençons par nous rafraîchir la mémoire.
&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;definition&quot; id=&quot;definition&quot;&gt;Définition&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

&lt;a href=&quot;http://forums.mediabox.fr/wiki/_detail/tutoriaux/flashplatform/jeux/mode7/illustre-mode-7.jpg?id=tutoriaux%3Aflashplatform%3Ajeux%3Amode7&quot; class=&quot;media&quot; title=&quot;tutoriaux:flashplatform:jeux:mode7:illustre-mode-7.jpg&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/jeux/mode7/illustre-mode-7.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Voyons ce que dit Wikipedia (&lt;a href=&quot;http://fr.wikipedia.org/wiki/Mode_7&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://fr.wikipedia.org/wiki/Mode_7&quot;  rel=&quot;nofollow&quot;&gt;http://fr.wikipedia.org/wiki/Mode_7&lt;/a&gt;)
&lt;/p&gt;
&lt;div class=&quot;wrap_quote wrap_green&quot;&gt;
Le Mode 7, apparu initialement sur la console de jeu Super Nintendo, est un mode graphique d&amp;#039;application de texture qui permet à un arrière-plan d&amp;#039;être pivoté et redimensionné par des procédés de rotation et de zoom. En modifiant à chaque ligne horizontale (Scanline) l&amp;#039;échelle et l&amp;#039;angle de ce plan, un effet de perspective peut être créé, transformant ainsi le plan en un sol incliné et texturé.
&lt;p&gt;
L&amp;#039;effet de Mode 7 est généralement utilisé sur des systèmes avec de fortes capacités 2D mais pas de gestion de la 3D car il permet en fait de simuler une impression de profondeur en utilisant uniquement des fonctions 2D. Parmi les jeux de la Super NES utilisant le Mode 7, on trouve F-Zero et Super Mario Kart, tout deux ayant été par la suite adaptés sur Game Boy Advance, tout en gardant cet effet, rendu possible par le circuit 2D de la console.
&lt;/p&gt;

&lt;p&gt;
De nombreux jeux PC, notamment Wacky Wheels, ont un effet de Mode 7 généré entièrement de manière logicielle, les cartes VGA de l&amp;#039;époque ne comprenant pas de tel circuit d&amp;#039;affichage 2D avancé permettant la rotation et le zoom.

&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Dans la suite de ce dossier nous allons essayer de détailler un peu ce procédé, d&amp;#039;abord théoriquement, puis par une petite mise en application, mais tout commence toujours par une histoire.
&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;un_peu_d_histoire&quot; id=&quot;un_peu_d_histoire&quot;&gt;Un peu d’histoire&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

En 1990 naît la Super Nintendo, console 16 bits digne successeur de la Nintendo Entertainment System. Outre les améliorations habituelles qui sont inhérentes aux nouvelles technologies, la SNES a été la première console à posséder du hardware dédié aux graphismes permettant des transformations linéaires (comme la rotation et le changement d’échelle) sur des fonds et des sprites.
&lt;/p&gt;

&lt;p&gt;

« &lt;a href=&quot;http://fr.wikipedia.org/wiki/F-Zero&quot; target=_blank&gt;&lt;b&gt;F-Zero&lt;/b&gt;&lt;/a&gt; » &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/_detail/tutoriaux/flashplatform/jeux/mode7/f_zerojpg.jpg?id=tutoriaux%3Aflashplatform%3Ajeux%3Amode7&quot; class=&quot;media&quot; title=&quot;tutoriaux:flashplatform:jeux:mode7:f_zerojpg.jpg&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/jeux/mode7/f_zerojpg.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
On a coutume de dire que c’est Super Mario Kart qui est l’initiateur du Mode 7, mais en fait ce jeu est simplement plus connu que le véritable papa du Mode 7 qu’est F-Zero. Pour la première fois le circuit n’est plus vu de haut mais à l’horizontale, les jeux de circuit prennent alors leur envol.
&lt;/p&gt;

&lt;p&gt;

« &lt;a href=&quot;http://fr.wikipedia.org/wiki/Super_Mario_Kart&quot; target=_blank&gt;&lt;b&gt;super Mario Kart&lt;/b&gt;&lt;/a&gt; »&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/_detail/tutoriaux/flashplatform/jeux/mode7/super-mario.jpg?id=tutoriaux%3Aflashplatform%3Ajeux%3Amode7&quot; class=&quot;media&quot; title=&quot;tutoriaux:flashplatform:jeux:mode7:super-mario.jpg&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/jeux/mode7/super-mario.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
C’est le jeu qui reste dans toutes les mémoires, il a marqué à tel point les esprits qu’on lui attribue souvent, à tort, la paternité du Mode 7.
&lt;/p&gt;

&lt;p&gt;

« &lt;a href=&quot;http://fr.wikipedia.org/wiki/Pilotwings&quot; target=_blank&gt;&lt;b&gt;Pilotwings&lt;/b&gt;&lt;/a&gt; »&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/_detail/tutoriaux/flashplatform/jeux/mode7/pilotwings.jpg?id=tutoriaux%3Aflashplatform%3Ajeux%3Amode7&quot; class=&quot;media&quot; title=&quot;tutoriaux:flashplatform:jeux:mode7:pilotwings.jpg&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/jeux/mode7/pilotwings.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Dans PilotWings le joueur est aux commandes d’un simulateur de vol et de saut en parachute. Les mouvements dans les 3 dimensions sont permis, ce jeu est souvent considéré comme une démo technique des possibilités du Mode 7.
&lt;/p&gt;

&lt;p&gt;

« &lt;a href=&quot;http://fr.wikipedia.org/wiki/Super_Castlevania_IV&quot; target=_blank&gt;&lt;b&gt;Super Castlevania IV&lt;/b&gt;&lt;/a&gt; »&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/_detail/tutoriaux/flashplatform/jeux/mode7/castlevania.jpg?id=tutoriaux%3Aflashplatform%3Ajeux%3Amode7&quot; class=&quot;media&quot; title=&quot;tutoriaux:flashplatform:jeux:mode7:castlevania.jpg&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/jeux/mode7/castlevania.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Cette fois on se sert du Mode 7 pour afficher des fonds animés, par exemple dans l’image d’illustration un tunnel. C’est une autre manière d’utiliser une projection d’un plan sur lequel on ajoute à présent des déformations.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Page suivante &amp;gt;&lt;/strong&gt; « &lt;a href=&quot;http://ressources.mediabox.fr/tutoriaux/flashplatform/jeux/mode7/02-definir_le_monde&quot;&gt;&lt;b&gt;02-Définir le monde&lt;/b&gt;&lt;/a&gt; »&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>papwal</author>
        <category>tutoriaux:flashplatform:jeux</category>
            <pubDate>Tue, 03 Apr 2012 22:29:39 +0200</pubDate>
        </item>
        <item>
            <title>Fabriquer un coloriage : couleur et ColorPicker</title>
            <link>http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/gui/interactivite/coloriage</link>
            <description>
&lt;p&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;680&quot; height=&quot;586&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/gui/interactivite/coloriage/coloriagebpcs4.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;680&quot; height=&quot;586&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/gui/interactivite/coloriage/coloriagebpcs4.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;
&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;h1&gt;&lt;a name=&quot;fabriquer_un_coloriage_couleur_et_colorpicker&quot; id=&quot;fabriquer_un_coloriage_couleur_et_colorpicker&quot;&gt;Fabriquer un coloriage : couleur et ColorPicker&lt;/a&gt;&lt;/h1&gt;&lt;noscript class=&quot;datambplugin_pageinfo&quot;&gt;Activez JavaScript pour une utilisation optimale.&lt;/noscript&gt;
&lt;div id=&quot;datambplugin_pageinfo&quot;&gt;&lt;div id=&quot;pageinfo__header&quot;&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/aide/compatibilite&quot; class=&quot;wikiMarker&quot; rel=&quot;lightbox&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/compatibilite/as3.png&quot; alt=&quot;Compatible ActionScript 3. Cliquer pour en savoir plus sur les compatibilités.&quot; title=&quot;Compatible ActionScript 3. Cliquer pour en savoir plus sur les compatibilités.&quot; width=&quot;27&quot; /&gt;&lt;/a&gt;&lt;span&gt;Par Nataly, le 08 août 2011&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Une carte à colorier c&amp;#039;est une vingtaine de lignes de code, pas plus, et pourtant ça en arrête plus d&amp;#039;un. Probablement parce que ça met en œuvre des classes d&amp;#039;utilité ponctuelle et une vague ruse quant à l&amp;#039;écoute d&amp;#039;événement… &lt;br/&gt;

Je dis ruse pour vous allécher, mais il s&amp;#039;agit d&amp;#039;une technique tout à fait conventionnelle &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

Ce tuto se propose donc avec l&amp;#039;alibi d&amp;#039;une carte à colorier de &lt;br/&gt;

&lt;br/&gt;

• mettre en œuvre la classe ColorTransform&lt;br/&gt;

• faire connaissance avec le composant ColorPicker&lt;br/&gt;

• illustrer l&amp;#039;intérêt de la phase de capture dans l&amp;#039;écoute d&amp;#039;événements&lt;br/&gt;

• accessoirement apporter réponse à une question souvent croisée sur le forum : comment fabriquer un coloriage… &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;-)&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_prerequis&quot;&gt;
Puisqu&amp;#039;il s&amp;#039;agit ici de couleur, autant que RVB vous dise quelque chose et que vous sachiez reconnaitre et assigner une couleur via l&amp;#039;environnement de création Flash. &lt;br/&gt;

Pour le reste une pratique courante de AS3 suffira : syntaxe, événements, variables… rien que de très basique &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_smile.gif&quot; class=&quot;middle&quot; alt=&quot;:)&quot; /&gt;
&lt;/div&gt;
&lt;p&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_info&quot;&gt;
&lt;strong&gt;POU&lt;/strong&gt;&lt;sup&gt;&lt;a href=&quot;#fn__1&quot; name=&quot;fnt__1&quot; id=&quot;fnt__1&quot; class=&quot;fn_top&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; :&lt;br/&gt;

Affin d&amp;#039;alléger le discours j&amp;#039;aurai recours à l&amp;#039;abus de langage qui consiste à parler de clip en lieu et place d&amp;#039;instance de symbole, mais vous n&amp;#039;êtes pas dupes : dans la bibliothèque, des symboles ; sur l&amp;#039;animation, des instances (ou occurrences). Ce sont ces instances qu&amp;#039;on manipule et que j&amp;#039;appelle clip quand il s&amp;#039;agit d&amp;#039;une occurrence de symbole &lt;em&gt;de type&lt;/em&gt; Clip.&lt;br/&gt;

&lt;strong&gt;Conventions d&amp;#039;écriture&lt;/strong&gt; :&lt;br/&gt;

Je précise entre crochets les raccourcis clavier. Utilisateurs de PC remplacez cmd par ctrl.
&lt;/div&gt;
&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;la_classe_colortransform_rappels&quot; id=&quot;la_classe_colortransform_rappels&quot;&gt;La classe ColorTransform, rappels&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Utiliser la classe ColorTransform c&amp;#039;est, vous le savez, l&amp;#039;équivalent codé de ce qu&amp;#039;on obtient en manipulant la liste couleur du panneau propriétés.&lt;br/&gt;
 
&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/gui/interactivite/coloriage/couleurscs3.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/gui/interactivite/coloriage/couleurscs5.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

Et dans l&amp;#039;exemple qui nous préoccupe, c&amp;#039;est l&amp;#039;option Teinte que nous aurions manipulée, puisque il s&amp;#039;agit d&amp;#039;appliquer une couleur unie à chacun des clips composant l&amp;#039;image.&lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/gui/interactivite/coloriage/teintecs3-1.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/gui/interactivite/coloriage/teintecs5.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

Pour changer la couleur d&amp;#039;un pétale - par exemple - depuis l&amp;#039;environnement création de Flash, on sélectionnerait le clip et via le panneau propriétés on appliquerait une teinte à 100%.&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;appliquer_une_teinte&quot; id=&quot;appliquer_une_teinte&quot;&gt;Appliquer une teinte&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

&lt;br/&gt;

Appliquer une &lt;strong&gt;teinte&lt;/strong&gt;, en code, c&amp;#039;est :&lt;br/&gt;

• &lt;strong&gt;fabriquer&lt;/strong&gt; une teinte avec la classe &lt;strong&gt;ColorTransform&lt;/strong&gt; et sa propriété &lt;strong&gt;color&lt;/strong&gt; &lt;br/&gt;

• puis l&amp;#039;&lt;strong&gt;appliquer&lt;/strong&gt; en passant par les propriétés &lt;strong&gt;transform&lt;/strong&gt; et &lt;strong&gt;colorTransform&lt;/strong&gt;.&lt;br/&gt;

&lt;br/&gt;

Par exemple, en imaginant un clip nommé &lt;code&gt;fleur&lt;/code&gt;, pour lui appliquer une teinte &lt;em&gt;unie&lt;/em&gt; verte on écrirait :&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;co1&quot;&gt;// un Objet ColorTransform&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; coulVert:ColorTransform= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; ColorTransform&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
coulVert.&lt;span class=&quot;kw3&quot;&gt;color&lt;/span&gt;=0x00FF00; &lt;span class=&quot;co1&quot;&gt;// on précise une couleur &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// on applique la couleur&lt;/span&gt;
fleur.&lt;span class=&quot;me1&quot;&gt;transform&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;colorTransform&lt;/span&gt;=coulVert;&lt;/pre&gt;
&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;restituer_la_teinte_d_origine&quot; id=&quot;restituer_la_teinte_d_origine&quot;&gt;Restituer la teinte d&amp;#039;origine&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Retrouver la teinte d&amp;#039;origine - rien donc - c&amp;#039;est appliquer, toujours via &lt;code&gt;transform.colorTransform&lt;/code&gt;, une “non-teinte” :&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;co1&quot;&gt;// un Objet colorTransform &amp;quot;vierge&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; coulSans:ColorTransform= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; ColorTransform&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;co1&quot;&gt;// on applique la non couleur&lt;/span&gt;
fleur.&lt;span class=&quot;me1&quot;&gt;transform&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;colorTransform&lt;/span&gt;=coulSans;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

Pas plus, pas moins. Ce n&amp;#039;est pas plus compliqué que ça &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_smile.gif&quot; class=&quot;middle&quot; alt=&quot;:)&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;le_composant_colorpicker&quot; id=&quot;le_composant_colorpicker&quot;&gt;Le composant ColorPicker&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Nous approchons de l&amp;#039;objectif à grands pas. S&amp;#039;il s&amp;#039;agissait d&amp;#039;appliquer la toujours même couleur aux différents clips composant le coloriage, on y serait déjà. &lt;br/&gt;

Reste à proposer une palette de couleurs.&lt;br/&gt;

&lt;br/&gt;

Flash, dans sa grande générosité nous fournit le composant dédié : ColorPicker.&lt;br/&gt;

&lt;br/&gt;

• Affichez le panneau Composants (Menu Fenêtres ou [cmd-F7])&lt;br/&gt;

• Glissez le ColorPicker sur la scène, le symbole correspondant sera automatiquement ajouté à la bibliothèque.&lt;br/&gt;

• Nommez l&amp;#039;instance comme il vous convient (pour moi ce sera cp comme colorPicker &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;).&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/gui/interactivite/coloriage/compo_colorpicker.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/gui/interactivite/coloriage/nommer.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/gui/interactivite/coloriage/nommercs3.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

Nous voilà prêts à faire connaissance avec cette petite merveille de composant !
&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;propriete_selectedcolor&quot; id=&quot;propriete_selectedcolor&quot;&gt;Propriété selectedColor&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

La première des choses qu&amp;#039;on attend d&amp;#039;une palette c&amp;#039;est connaitre le choix de l&amp;#039;utilisateur…&lt;br/&gt;

En français on parlerait de la couleur sélectionnée, on trouve donc sans surprise une propriété &lt;code&gt;selectedColor&lt;/code&gt; en lecture écriture. On va pouvoir aussi bien lire la couleur sélectionnée par l&amp;#039;utilisateur que forcer le composant à afficher une couleur de notre choix, ce qui est utile à l&amp;#039;initialisation si on souhaite que soit affiché autre-chose que le noir par défaut.&lt;br/&gt;

&lt;br/&gt;

Vous pouvez régler cette couleur de départ, directement via l&amp;#039;interface en utilisant &lt;strong&gt;l&amp;#039;inspecteur de composants&lt;/strong&gt;.&lt;br/&gt;

Sous CS3 vous devez passer par le menu Fenêtre. Sous CS4 et suivants un bouton vous y donne accès directement depuis le panneau propriétés :&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/gui/interactivite/coloriage/inspecteurcs3-1.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/_detail/tutoriaux/flashplatform/gui/interactivite/coloriage/inspecteurcs4.jpg?id=tutoriaux%3Aflashplatform%3Agui%3Ainteractivite%3Acoloriage&quot; class=&quot;media&quot; title=&quot;tutoriaux:flashplatform:gui:interactivite:coloriage:inspecteurcs4.jpg&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/gui/interactivite/coloriage/inspecteurcs4.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br/&gt;

&lt;br/&gt;

Initialiser le composant en code nous donnerait donc (pour rouge) :

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;cp.&lt;span class=&quot;me1&quot;&gt;selectedColor&lt;/span&gt;=0xFF0000;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

Ce qui est d&amp;#039;utilité plus courante, c&amp;#039;est lire la couleur sélectionnée.&lt;br/&gt;

&lt;br/&gt;

Pour appliquer à un clip une teinte unie telle que choisie via un un composant ColorPicker, il suffit donc de valoriser la propriété &lt;code&gt;color&lt;/code&gt; d&amp;#039;un objet &lt;code&gt;ColorTransform&lt;/code&gt; avec ce que renvoie la propriété &lt;code&gt;selectedColor&lt;/code&gt; du composant :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;co1&quot;&gt;// un Objet ColorTransform&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; coul_c:ColorTransform= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; ColorTransform&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;co1&quot;&gt;//lire la couleur sélectionnée&lt;/span&gt;
coul_c.&lt;span class=&quot;kw3&quot;&gt;color&lt;/span&gt;=cp.&lt;span class=&quot;me1&quot;&gt;selectedColor&lt;/span&gt;;
&lt;span class=&quot;co1&quot;&gt;// appliquer la couleur&lt;/span&gt;
fleur.&lt;span class=&quot;me1&quot;&gt;transform&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;colorTransform&lt;/span&gt;=coulVert;&lt;/pre&gt;
&lt;p&gt;
 
&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;l_evenement_change&quot; id=&quot;l_evenement_change&quot;&gt;L&amp;#039;événement CHANGE&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

Le plus souvent on utilise la couleur choisie aussitôt la sélection effectuée. Il s&amp;#039;agit donc d&amp;#039;écouter l&amp;#039;événement idoine. C&amp;#039;est l&amp;#039;événement &lt;strong&gt;CHANGE&lt;/strong&gt; de la classe &lt;strong&gt;ColorPickerEvent&lt;/strong&gt;.
&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;co1&quot;&gt;// importation requise&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;import&lt;/span&gt; fl.&lt;span class=&quot;me1&quot;&gt;events&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ColorPickerEvent&lt;/span&gt;;
&amp;nbsp;
cp.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ColorPickerEvent.&lt;span class=&quot;me1&quot;&gt;CHANGE&lt;/span&gt;, appliqueModif&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; appliqueModif&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;e&lt;/span&gt;:ColorPickerEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
&amp;nbsp;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Valeur hexa : &amp;quot;&lt;/span&gt;+&lt;span class=&quot;kw3&quot;&gt;e&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;target&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;hexValue&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Valeur  (uint) &amp;quot;&lt;/span&gt;+ &lt;span class=&quot;kw3&quot;&gt;e&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
   &lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; coul_c:ColorTransform= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; ColorTransform&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
   coul_c.&lt;span class=&quot;kw3&quot;&gt;color&lt;/span&gt;=&lt;span class=&quot;kw3&quot;&gt;e&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;target&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;selectedColor&lt;/span&gt;;
   fleur.&lt;span class=&quot;me1&quot;&gt;transform&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;colorTransform&lt;/span&gt;=coul_c;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_info&quot;&gt;
Notez au passage la propriété &lt;strong&gt;hexValue&lt;/strong&gt; qui vous donne la valeur hexadécimale de la couleur sélectionnée du composant.&lt;br/&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;span class=&quot;wrap_important&quot;&gt;
&lt;strong&gt;Ne confondez pas&lt;/strong&gt; la propriété &lt;code&gt;hexValue&lt;/code&gt; du composant et la propriété &lt;code&gt;color&lt;/code&gt; de l&amp;#039;événement, qui elle, renvoie la couleur en uint
&lt;/span&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;autres_methodes_et_proprietes_parfois_utiles&quot; id=&quot;autres_methodes_et_proprietes_parfois_utiles&quot;&gt;Autres méthodes et propriétés parfois utiles&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Histoire de finir de faire le tour du propriétaire, sachez que vous pouvez modifier les dimensions du composant via la méthode &lt;strong&gt;&lt;code&gt;setSize&lt;/code&gt;&lt;/strong&gt; (héritée de UIComposant) qui admet deux paramètres : largeur, hauteur. A votre disposition aussi les &lt;code&gt;width&lt;/code&gt; et &lt;code&gt;height&lt;/code&gt; qui nous sont familiers&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;cp.&lt;span class=&quot;me1&quot;&gt;setSize&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cp.&lt;span class=&quot;kw3&quot;&gt;width&lt;/span&gt;+=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;,cp.&lt;span class=&quot;kw3&quot;&gt;height&lt;/span&gt;+=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Vous pouvez afficher ou non le champ texte du composant qui donne la valeur hexadécimale de la couleur sélectionnée. C&amp;#039;est une propriété booléenne : &lt;strong&gt;&lt;code&gt;showTextField&lt;/code&gt;&lt;/strong&gt;. &lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;co1&quot;&gt;// Le champ texte n'est pas affiché&lt;/span&gt;
cp.&lt;span class=&quot;me1&quot;&gt;showTextField&lt;/span&gt; = &lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

Enfin, sachez que vous pouvez afficher ou masquer la palette des couleur à l&amp;#039;aide des méthodes &lt;strong&gt;&lt;code&gt;open&lt;/code&gt;&lt;/strong&gt; et &lt;strong&gt;&lt;code&gt;close&lt;/code&gt;&lt;/strong&gt;.
&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;co1&quot;&gt;// le composant est affiché ouvert avec une largeur de 100 et une hauteur de 50&lt;/span&gt;
cp.&lt;span class=&quot;me1&quot;&gt;setSize&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
cp.&lt;span class=&quot;me1&quot;&gt;selectedColor&lt;/span&gt;=0xFF0000;
cp.&lt;span class=&quot;me1&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;a href=&quot;http://forums.mediabox.fr/wiki/_detail/tutoriaux/flashplatform/gui/interactivite/coloriage/cpproprietes.jpg?id=tutoriaux%3Aflashplatform%3Agui%3Ainteractivite%3Acoloriage&quot; class=&quot;media&quot; title=&quot;tutoriaux:flashplatform:gui:interactivite:coloriage:cpproprietes.jpg&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/gui/interactivite/coloriage/cpproprietes.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;une_palette_aux_couleurs_personnalisee&quot; id=&quot;une_palette_aux_couleurs_personnalisee&quot;&gt;Une palette aux couleurs personnalisée&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Par défaut ColorPicker propose 216 couleurs mais on peut faire ce qui nous chante (dans la limite de 1024 couleurs). &lt;br/&gt;

C&amp;#039;est la propriété colors qui permet de définir un choix de couleurs personnalisée.&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;wrap_important&quot;&gt;
&lt;strong&gt;Attention&lt;/strong&gt; colors avec un s !&lt;br/&gt;

Ne confondez pas avec color - sans s - propriété de l&amp;#039;objet ColorTransform
&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;colors&lt;/strong&gt; renvoie et définit un &lt;strong&gt;tableau&lt;/strong&gt; des couleurs affichées par le composant. Pour proposer seulement rouge vert et bleu on écrirait par exemple :&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;cp.&lt;span class=&quot;me1&quot;&gt;colors&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;0xFF0000,0x00FF00,0x0000FF&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

Pour afficher cette palette ouverte :&lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/gui/interactivite/coloriage/tableaucoul.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; lesCouleurs:&lt;span class=&quot;kw3&quot;&gt;Array&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;0xFF0000,0x00FF00,0x0000FF&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
cp.&lt;span class=&quot;me1&quot;&gt;colors&lt;/span&gt;=lesCouleurs;
cp.&lt;span class=&quot;me1&quot;&gt;showTextField&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;;
cp.&lt;span class=&quot;me1&quot;&gt;setSize&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
cp.&lt;span class=&quot;me1&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
Pour &lt;strong&gt;ajouter&lt;/strong&gt; une ou plusieurs couleurs à la palette existante utilisez tout bonnement la méthode &lt;strong&gt;&lt;code&gt;push&lt;/code&gt;&lt;/strong&gt;.&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;cp.&lt;span class=&quot;me1&quot;&gt;colors&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;0xCCCCCC&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;&lt;pre class=&quot;code actionscript&quot;&gt;cp.&lt;span class=&quot;me1&quot;&gt;colors&lt;/span&gt;=cp.&lt;span class=&quot;me1&quot;&gt;colors&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;0xAAAAAA,0xCCCCCC,0xEEEEEE&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;

&lt;a href=&quot;http://forums.mediabox.fr/wiki/_detail/tutoriaux/flashplatform/gui/interactivite/coloriage/persocolors.jpg?id=tutoriaux%3Aflashplatform%3Agui%3Ainteractivite%3Acoloriage&quot; class=&quot;media&quot; title=&quot;tutoriaux:flashplatform:gui:interactivite:coloriage:persocolors.jpg&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/gui/interactivite/coloriage/persocolors.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;

De toutes façons puisque &lt;code&gt;colors&lt;/code&gt; renvoie un tableau, si vous savez &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/tableaux&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:tableaux&quot;&gt;manipuler un tableau&lt;/a&gt;, vous en ferez ce que vous voudrez &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;monsieur_plus&quot; id=&quot;monsieur_plus&quot;&gt;Monsieur Plus&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Si vous preniez goût à l&amp;#039;utilisation de ce composant, sachez qu&amp;#039;on peut intervenir sur sur son aspect (dimensions des cases de couleur et autre nombre de colonnes de la palette) via la méthode&lt;strong&gt; setStyle&lt;/strong&gt;.&lt;br/&gt;

Vous en trouverez la liste &lt;a href=&quot;http://help.adobe.com/fr_FR/FlashPlatform/reference/actionscript/3/fl/controls/ColorPicker.html?filter_flash=cs5&amp;amp;filter_flashplayer=10.2&amp;amp;filter_air=2.6#event:change&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://help.adobe.com/fr_FR/FlashPlatform/reference/actionscript/3/fl/controls/ColorPicker.html?filter_flash=cs5&amp;amp;filter_flashplayer=10.2&amp;amp;filter_air=2.6#event:change&quot;  rel=&quot;nofollow&quot;&gt;à l&amp;#039;entrée Style&lt;/a&gt;.
&lt;br/&gt;

&lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;200&quot; height=&quot;100&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/gui/interactivite/coloriage/colorpicker_demo.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;200&quot; height=&quot;100&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/gui/interactivite/coloriage/colorpicker_demo.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;
&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;import&lt;/span&gt; fl.&lt;span class=&quot;me1&quot;&gt;events&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ColorPickerEvent&lt;/span&gt;;
&lt;span class=&quot;kw3&quot;&gt;import&lt;/span&gt; fl.&lt;span class=&quot;me1&quot;&gt;controls&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ColorPicker&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// un dictionnaire pour stocker les correspondances valeur/nom&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; corres:Dictionary= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Dictionary&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
corres&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;0xE67E30&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; = &lt;span class=&quot;st0&quot;&gt;&amp;quot;Abricot&amp;quot;&lt;/span&gt;;
corres&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;0xAD390E&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; = &lt;span class=&quot;st0&quot;&gt;&amp;quot;Aquilain&amp;quot;&lt;/span&gt;;
corres&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;0xAE642D&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; = &lt;span class=&quot;st0&quot;&gt;&amp;quot;Baillet&amp;quot;&lt;/span&gt;;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; cp:ColorPicker = &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; ColorPicker  ;
cp.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt; = cp.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt; = &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;;
&amp;nbsp;
cp.&lt;span class=&quot;me1&quot;&gt;setSize&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span class=&quot;co1&quot;&gt;// dimensions du bouton&lt;/span&gt;
cp.&lt;span class=&quot;me1&quot;&gt;colors&lt;/span&gt; = &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;0xE67E30,0xAD390E,0xAE642D&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// trois couleurs&lt;/span&gt;
cp.&lt;span class=&quot;me1&quot;&gt;selectedColor&lt;/span&gt; = 0xE67E30;             &lt;span class=&quot;co1&quot;&gt;// couleur de départ&lt;/span&gt;
cp.&lt;span class=&quot;kw3&quot;&gt;setStyle&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;swatchWidth&amp;quot;&lt;/span&gt;, &lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;          &lt;span class=&quot;co1&quot;&gt;// largeur des nuanciers&lt;/span&gt;
cp.&lt;span class=&quot;kw3&quot;&gt;setStyle&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;swatchHeight&amp;quot;&lt;/span&gt;, &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;         &lt;span class=&quot;co1&quot;&gt;// hauteur des nuanciers      &lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
cp.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Event.&lt;span class=&quot;me1&quot;&gt;OPEN&lt;/span&gt;, init&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;   &lt;span class=&quot;co1&quot;&gt;// écrire la couleur d'init ds le chp texte&lt;/span&gt;
cp.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ColorPickerEvent.&lt;span class=&quot;me1&quot;&gt;ITEM_ROLL_OVER&lt;/span&gt;,majChamp&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span class=&quot;co1&quot;&gt;// afficher le nom de la couleur&lt;/span&gt;
&amp;nbsp;
addChild&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cp&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// - - - - - Rappels - - - - - - - - - - - -&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; majChamp&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ce:ColorPickerEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	ce.&lt;span class=&quot;kw3&quot;&gt;target&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;textField&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt; = corres&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;ce.&lt;span class=&quot;kw3&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; init&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;e&lt;/span&gt;:Event&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// une fois seulement&lt;/span&gt;
	ColorPicker&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;e&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;textField&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt; = &lt;span class=&quot;st0&quot;&gt;&amp;quot;Abricot&amp;quot;&lt;/span&gt;;
&lt;span class=&quot;co1&quot;&gt;// suprimer l'écouteur&lt;/span&gt;
	ColorPicker&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;e&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;removeEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Event.&lt;span class=&quot;me1&quot;&gt;OPEN&lt;/span&gt;, init&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

A titre de démo et sans plus de détail… &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;  
&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;coloriage_c_est_parti&quot; id=&quot;coloriage_c_est_parti&quot;&gt;Coloriage, c&amp;#039;est parti !&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Cette fois on y est, vous avez tout ce qu&amp;#039;il faut pour réaliser le coloriage proposé.&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;construction_graphique&quot; id=&quot;construction_graphique&quot;&gt;Construction graphique&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

&lt;br/&gt;

Le “dessin” lui même est un bête clip composé de plusieurs occurrences de symboles que j&amp;#039;utilise comme les gommettes de mon enfance. Vous pouvez être plus courageux et vous déchirer d&amp;#039;un vrai beau dessin, la seule chose qui importe c&amp;#039;est que chaque élément coloriable soit un clip (dans l&amp;#039;idée de lui “appliquer une teinte” via colorTransform).&lt;br/&gt;

&lt;br/&gt;

&lt;a href=&quot;http://forums.mediabox.fr/wiki/_detail/tutoriaux/flashplatform/gui/interactivite/coloriage/constructcoloriage.jpg?id=tutoriaux%3Aflashplatform%3Agui%3Ainteractivite%3Acoloriage&quot; class=&quot;media&quot; title=&quot;tutoriaux:flashplatform:gui:interactivite:coloriage:constructcoloriage.jpg&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/gui/interactivite/coloriage/constructcoloriage.jpg&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;br/&gt;

Vous l&amp;#039;avez constaté : le propre de la “teinte” - propriété color d&amp;#039;un objet ColorTransform - c&amp;#039;est de tout barbouiller d&amp;#039;une couche unie, plus de nuances ni de contours. Le moyen de contourner le problème pour, dans l&amp;#039;exemple qui nous occupe, conserver un liseré noir autour des pétales des fleurs c&amp;#039;est tout bonnement de tricher d&amp;#039;un ou plusieurs calque(s) dédié(s) qui ne porteront que des bordures et qui sont “par dessus” les objets colorisés.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_tip&quot;&gt;
Ne vous compliquez pas trop pour obtenir ce résultat :&lt;br/&gt;

• sélectionner l&amp;#039;ensemble des clips dont on veut conserver le contour,&lt;br/&gt;

• copier [cmd-C],&lt;br/&gt;

• coller en place sur le calque dédié [cmd-maj-V],&lt;br/&gt;

• tout sélectionner [cmd-A],&lt;br/&gt;

• séparer [cmd-B],&lt;br/&gt;

• sélectionner et virer les remplissages (pff… pas de raccourcis &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_sad.gif&quot; class=&quot;middle&quot; alt=&quot;:(&quot; /&gt;/&lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;),&lt;br/&gt;

&lt;/div&gt;
&lt;p&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;code&quot; id=&quot;code&quot;&gt;Code&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

&lt;br/&gt;

Le code, on est d&amp;#039;accord que c&amp;#039;est tout benêt dans le principe :&lt;br/&gt;

On écoute le clic (MouseEvent.CLICK) sur chaque clip à colorier et on lui applique la couleur choisie dans la palette.&lt;br/&gt;

&lt;br/&gt;

EnooOOoorme soupir dans l&amp;#039;assistance : “bon sang de bon d&amp;#039;là ! Il faut donc nommer chacun des clips et leur ajouter un écouteur ? Mais c&amp;#039;est du Stakhanovisme !”&lt;br/&gt;

&lt;br/&gt;

Non ! Ne dressez pas un piquet de grève tout de suite &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt; Il y a bien plus malin.&lt;br/&gt;

Vous vous souvenez de &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/addeventlistener#associer_un_meme_ecouteur_a_plusieurs_objets&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:addeventlistener&quot;&gt;la différence entre &amp;#039;&amp;#039;target&amp;#039;&amp;#039; et &amp;#039;&amp;#039;currentTarget&amp;#039;&amp;#039;&lt;/a&gt; ? &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_idea.gif&quot; class=&quot;middle&quot; alt=&quot;:idea:&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

Ici, l&amp;#039;idée c&amp;#039;est d&amp;#039;écouter sur le clip contenant (je l&amp;#039;ai nommé &lt;code&gt;tableau&lt;/code&gt; ds le code reproduit) et de traiter non pas &lt;code&gt;currentTarget&lt;/code&gt; (le “tableau” lui même) mais &lt;code&gt;target&lt;/code&gt; (chacun des symboles le composant).&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;tableau.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;CLICK&lt;/span&gt;, qdClic&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; qdClic&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me.&lt;span class=&quot;me1&quot;&gt;currentTarget&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me.&lt;span class=&quot;kw3&quot;&gt;target&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;co1&quot;&gt;// ici ce n'est pas le clip tableau dont on modifie la couleur&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;// mais les clips dont il est constitué&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;// on écoute donc target et non currentTarget&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; coul:ColorTransform= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; ColorTransform&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	coul.&lt;span class=&quot;kw3&quot;&gt;color&lt;/span&gt; = cp.&lt;span class=&quot;me1&quot;&gt;selectedColor&lt;/span&gt;;
	me.&lt;span class=&quot;kw3&quot;&gt;target&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;transform&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;colorTransform&lt;/span&gt; = coul;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

Tout irait bien si d&amp;#039;aucuns ne s&amp;#039;avisaient d&amp;#039;ajouter un joli cadre au symbole lui même - comme sur la démo d&amp;#039;intro quoi…&lt;br/&gt;

Et là, catastrophe… Quand on clique sur ce cadre, c&amp;#039;est tout le tableau qui est barbouillé de la couleur sélectionnée, on se retrouve avec un splendide rectangle uni O.o &lt;br/&gt;

&lt;br/&gt;

Normal, aussi longtemps que le symbole n&amp;#039;était composé que d&amp;#039;autres symboles (le fond lui même est un symbole), &lt;code&gt;target&lt;/code&gt; était immanquablement un enfant du “tableau”. Maintenant qu&amp;#039;il y a un dessin qui déborde du fond, quand on clique, target c&amp;#039;est le clip tableau, et du coup… Ça ne fait plus ce qu&amp;#039;on veut…&lt;br/&gt;

&lt;br/&gt;

Nous voici poussés dans nos dernier retranchement c&amp;#039;est le moment de dégoupiller &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/addeventlistener#eventphase&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:addeventlistener&quot;&gt; la phase de capture&lt;/a&gt;, et de profiter de l&amp;#039;exemple pour se mettre les idées aux clair.&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;tableau.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;CLICK&lt;/span&gt;, qdClic,&lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Ouf ! On s&amp;#039;en est bien sortis, sur ce coup là. Ne reste plus qu&amp;#039;à régler le sort du bouton Effacer.&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;effacer&quot; id=&quot;effacer&quot;&gt;Effacer&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Un bout de code vaudra mieux qu&amp;#039;un long discours :&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;btEfface.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;CLICK&lt;/span&gt;,efface&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; efface&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;//var sansCoul:ColorTransform= new ColorTransform();&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;max&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt; = tableau.&lt;span class=&quot;me1&quot;&gt;numChildren&lt;/span&gt;;
	&lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; i:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;=0; i&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;max; i++&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
&amp;nbsp;
		&lt;span class=&quot;co1&quot;&gt;//tableau.getChildAt(i).transform.colorTransform = sansCoul;&lt;/span&gt;
		&lt;span class=&quot;co1&quot;&gt;// sur ce coup là, on peut faire l'économie d'une variable, le code est tout aussi lisible&lt;/span&gt;
		tableau.&lt;span class=&quot;me1&quot;&gt;getChildAt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;i&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;transform&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;colorTransform&lt;/span&gt; = &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; ColorTransform&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;colorpicker_pour_flex&quot; id=&quot;colorpicker_pour_flex&quot;&gt;ColorPicker pour Flex&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

Et voilà, c&amp;#039;en est fini du coloriage.&lt;br/&gt;

Si vous utilisez Flex vous y retrouverez ce (quasi) même composant, et &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/gui/composants_flex/colorpicker-personnalisation&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:gui:composants_flex:colorpicker-personnalisation&quot;&gt;Tannoy a traduit la doc pour nous&lt;/a&gt; _o_&lt;br/&gt;

&lt;br/&gt;

Il ne reste plus qu&amp;#039;à vous dire à bientôt pour d&amp;#039;autres aventures &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;les_sources&quot; id=&quot;les_sources&quot;&gt;Les sources&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;div class=&quot;wrap_download&quot;&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/gui/interactivite/coloriage/coloriagebpcs3.fla&quot; class=&quot;media mediafile mf_fla&quot; title=&quot;tutoriaux:flashplatform:gui:interactivite:coloriage:coloriagebpcs3.fla&quot;&gt;CS3&lt;/a&gt;&lt;br/&gt;

&lt;a href=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/gui/interactivite/coloriage/coloriagebpcs4.fla&quot; class=&quot;media mediafile mf_fla&quot; title=&quot;tutoriaux:flashplatform:gui:interactivite:coloriage:coloriagebpcs4.fla&quot;&gt;CS4&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;footnotes&quot;&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__1&quot; id=&quot;fn__1&quot; name=&quot;fn__1&quot; class=&quot;fn_bot&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; 
Précautions Oratoires d&amp;#039;Usage&lt;/div&gt;
&lt;/div&gt;
</description>
            <author>Nataly</author>
        <category>tutoriaux:flashplatform:gui:interactivite</category>
            <pubDate>Thu, 15 Mar 2012 15:18:44 +0200</pubDate>
        </item>
        <item>
            <title>Communautés PAO</title>
            <link>http://forums.mediabox.fr/wiki/liens/pao/communaute</link>
            <description>
&lt;h1&gt;&lt;a name=&quot;communautes_pao&quot; id=&quot;communautes_pao&quot;&gt;Communautés PAO&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;francophones&quot; id=&quot;francophones&quot;&gt;Francophones&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://forums.mediabox.fr/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://forums.mediabox.fr/&quot;  rel=&quot;nofollow&quot;&gt;Forums Mediabox&lt;/a&gt; : Vous pouvez accèder à nos forums en cliquant sur ce lien.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.cfsl.net/forum/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.cfsl.net/forum/&quot;  rel=&quot;nofollow&quot;&gt;cfsl&lt;/a&gt; : Café Salé&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.1dcafe.com/modules.php?op=modload&amp;amp;name=pnphpbb2&amp;amp;file=index&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.1dcafe.com/modules.php?op=modload&amp;amp;name=pnphpbb2&amp;amp;file=index&quot;  rel=&quot;nofollow&quot;&gt;1dcafe&lt;/a&gt;: 1DCafé&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.colorimetrie.be/forum/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.colorimetrie.be/forum/&quot;  rel=&quot;nofollow&quot;&gt;colorimetrie&lt;/a&gt; : Forum sur la Colorimétrie&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.lalogotheque.com/forumde/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.lalogotheque.com/forumde/&quot;  rel=&quot;nofollow&quot;&gt;lalogotheque&lt;/a&gt; : Forum LaLogothèque&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;anglophones&quot; id=&quot;anglophones&quot;&gt;Anglophones&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.24-7media.de/forum/&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://www.24-7media.de/forum/&quot;  rel=&quot;nofollow&quot;&gt;24-7media&lt;/a&gt; :  24-7 Media Forum&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
</description>
            <author>Pierre GIRARD</author>
        <category>liens:pao</category>
            <pubDate>Fri, 09 Mar 2012 16:47:10 +0200</pubDate>
        </item>
        <item>
            <title>Ajouter et supprimer des clips dynamiquement</title>
            <link>http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild</link>
            <description>&lt;noscript class=&quot;datambplugin_pageinfo&quot;&gt;Activez JavaScript pour une utilisation optimale.&lt;/noscript&gt;
&lt;div id=&quot;datambplugin_pageinfo&quot;&gt;&lt;div id=&quot;pageinfo__header&quot;&gt;&lt;span&gt;Par nataly (Nataly), le 31 décembre 2011&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;
• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/as3premierspas&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:as3premierspas&quot;&gt;Variables, fonctions, syntaxe&lt;/a&gt;&lt;br/&gt;

• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/parenthese&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:parenthese&quot;&gt;Objets, méthodes, propriétés…&lt;/a&gt;&lt;br/&gt;

• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/addeventlistener&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:addeventlistener&quot;&gt;Clics et événements souris sur les boutons et les clips&lt;/a&gt; &lt;br/&gt;

• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/stringchamptexte&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:stringchamptexte&quot;&gt;Champs texte et objet String&lt;/a&gt;&lt;br/&gt;

• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/structuredecontrole&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:structuredecontrole&quot;&gt;Structures de contrôle alternatives : if&lt;/a&gt;&lt;br/&gt;

• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:movieclipmethodesproprietes&quot;&gt;Manipuler un movieClip&lt;/a&gt;&lt;br/&gt;

• Structures de contrôle alternatives : switch&lt;br/&gt;

• Structures de contrôle répétitives : for - while&lt;br/&gt;

• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/listeaffichageimbrication&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:listeaffichageimbrication&quot;&gt;Liste d&amp;#039;affichage, imbrication et profondeur des objets&lt;/a&gt;&lt;br/&gt;

• &lt;strong&gt;Liste d&amp;#039;affichage, gestion dynamique des objets (ici)&lt;/strong&gt;&lt;br/&gt;

• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/tableaux&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:tableaux&quot;&gt;Les tableaux&lt;/a&gt;&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;wrap_todo wrap_bg&quot; style=&quot;width:400px;&quot;&gt;
&lt;strong&gt;EN CHANTIER&lt;/strong&gt;&lt;br/&gt;

Cette page n&amp;#039;est pas terminée et est en cours d&amp;#039;écriture.
&lt;/div&gt;
&lt;h1&gt;&lt;a name=&quot;ajouter_et_supprimer_des_clips_dynamiquement&quot; id=&quot;ajouter_et_supprimer_des_clips_dynamiquement&quot;&gt;Ajouter et supprimer des clips dynamiquement&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Parfait ! On sait maintenant manipuler les enfants d&amp;#039;un clip (et de n&amp;#039;importe quel objet de type DisplayConteneur \o/) reste à pouvoir les supprimer ou en ajouter et on va commencer à pouvoir jouer, &lt;em&gt;vraiment&lt;/em&gt;… &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;
&lt;/p&gt;

&lt;p&gt;
Ajouter une instance de symbole à un clip en cours d&amp;#039;exécution du code - dynamiquement donc, selon la terminologie en vigueur - c&amp;#039;est l&amp;#039;équivalent codé de glisser un symbole, “à la main”, depuis la bibliothèque jusqu&amp;#039;au clip ouvert dans le panneau scène.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
J&amp;#039;ai dit “glisser un symbole” pour aller vite, mais on est d&amp;#039;accord que les symboles de bibliothèque ne sont que des moules - en quelque sorte - à partir desquels on fabrique autant de clips semblables qu&amp;#039;il nous chante.&lt;br/&gt;

Dans le panneau Propriétés, ces clips sont appelés de façon générique &lt;strong&gt;occurrence&lt;/strong&gt;, c&amp;#039;est absolument &lt;strong&gt;synonyme de instance&lt;/strong&gt;.
&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;ajouter_un_enfant_addchild&quot; id=&quot;ajouter_un_enfant_addchild&quot;&gt;Ajouter un enfant : addChild&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Avant d&amp;#039;ajouter un enfant à un clip, encore faut-il que cet enfant existe… Ben oui, pardon d&amp;#039;énoncer des évidences [pas taper]. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Pour ajouter une instance de symbole on va donc commencer par la créer puis, &lt;em&gt;quand ça nous dira&lt;/em&gt;, on l&amp;#039;ajoutera.&lt;br/&gt;

J&amp;#039;insiste dès tout de suite sur ce non-détail, parce qu&amp;#039;il est important d&amp;#039;avoir en tête qu&amp;#039;un objet existant n&amp;#039;est pas forcément affiché &lt;sup&gt;&lt;a href=&quot;#fn__1&quot; name=&quot;fnt__1&quot; id=&quot;fnt__1&quot; class=&quot;fn_top&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt;. Inversement un objet sorti de la liste d&amp;#039;affichage n&amp;#039;est pas pour autant supprimé… Eh oui &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_confused.gif&quot; class=&quot;middle&quot; alt=&quot;:-?&quot; /&gt; On y reviendra… 
&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;exporter_pour_actionscript&quot; id=&quot;exporter_pour_actionscript&quot;&gt;Exporter pour ActionScript&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Pour créer, dynamiquement, une instance de symbole il faut avoir préparé le terrain via le &lt;strong&gt;panneau propriété du symbole&lt;/strong&gt; en question, en cochant la case &amp;#039;Exporter pour ActionScript&amp;#039;
&lt;/p&gt;

&lt;p&gt;
&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/exporterpouras.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;
&lt;/p&gt;

&lt;p&gt;

Voilà, mieux que Jourdain, on vient de fabriquer une classe qui hérite de MovieClip. Rappelez-vous &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes#l_arbre_d_heritage_des_objets_d_affichage&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:movieclipmethodesproprietes&quot;&gt;l&amp;#039;arbre d&amp;#039;héritage des objets d&amp;#039;affichage&lt;/a&gt;.&lt;br/&gt;

Quand on coche la fameuse case, Flash tout seul comme un grand et sans rien nous en dire de plus, fabrique en arrière boutique une &lt;strong&gt;classe portant le nom saisi dans le champ Classe&lt;/strong&gt; qui hérite de la classe MovieClip (qui elle même appartient à la grande famille des objets d&amp;#039;affichage de flash : flash.displayObject).
&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;creer_l_instance_new&quot; id=&quot;creer_l_instance_new&quot;&gt;Créer l&amp;#039;instance : new&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Créer une instance de n&amp;#039;importe quelle classe ça se fait toujours pareil (c&amp;#039;est ce qui est reposant avec le code, quand on a compris un principe on le décline pour tout &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;) :&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
• 1) &lt;strong&gt;Déclarer&lt;/strong&gt; et &lt;strong&gt;typer&lt;/strong&gt; la variable qui va représenter l&amp;#039;objet :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; nomDeLinstance:NomDeLaClasse;&lt;/pre&gt;
&lt;p&gt;
• 2) Valoriser la variable d&amp;#039;un nouvel objet.&lt;br/&gt;

C&amp;#039;est le mot clef &lt;strong&gt;new&lt;/strong&gt; qui permet de générer un nouvel objet, suivit du &lt;strong&gt;nom de la classe&lt;/strong&gt; dont l&amp;#039;objet est issu :

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;nomDeLinstance = &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; NomDeLaClasse&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
Souvent on écrit tout sur la même ligne, c&amp;#039;est ce qu&amp;#039;on va faire avec notre cercle :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; leCercle:Mv_Cercle= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Mv_Cercle&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;strong&gt;A ce stade&lt;/strong&gt;, si on teste le fichier, &lt;em&gt;apparemment&lt;/em&gt; rien ne se passe. Ne vous y laissez pas prendre : l&amp;#039;instance a bien été &lt;strong&gt;créée&lt;/strong&gt;, seulement elle n&amp;#039;est &lt;strong&gt;pas encore affichée&lt;/strong&gt;. &lt;br/&gt;

Le clip représenté par la variable &lt;strong&gt;leCercle existe&lt;/strong&gt; pour flash, il “vit” dans les limbes &lt;strong&gt;mais&lt;/strong&gt; on ne le voit pas parce qu&amp;#039;il n&amp;#039;a &lt;strong&gt;pas encore&lt;/strong&gt; été &lt;strong&gt;ajouté à la liste d&amp;#039;affichage&lt;/strong&gt;.&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h5&gt;&lt;a name=&quot;pour_les_st_thomas&quot; id=&quot;pour_les_st_thomas&quot;&gt;Pour les St Thomas&lt;/a&gt;&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;

Et si le dire, le répéter, l&amp;#039;affirmer ne suffit pas à vous convaincre (ce que je comprends bien &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;), alors tentez l&amp;#039;expérience suivante : fabriquez un autre symbole qui joue un son. Ne vous compliquez pas : une forme répétée sur quelques images (histoire d&amp;#039;y voir quelque chose le cas échéant) et un son très court joué sur une image quelconque, ça par exemple (&amp;#039;pô pu m&amp;#039;empêcher de jouer avec l&amp;#039;outil déco).&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/scenarfeu.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Si vous en posez une instance sur la scène (et que vous testez) ça fait du bruit au rythme de la boucle. 
&lt;/p&gt;

&lt;p&gt;
&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;160&quot; height=&quot;100&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/boulefeu.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;160&quot; height=&quot;100&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/boulefeu.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;

&lt;/p&gt;

&lt;p&gt;
Très bien, supprimons cette instance, c&amp;#039;était juste pour être sûrs - et créons une instance en code, comme de normal &lt;sup&gt;&lt;a href=&quot;#fn__2&quot; name=&quot;fnt__2&quot; id=&quot;fnt__2&quot; class=&quot;fn_top&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt; :&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; c:Mv_Feu= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Mv_Feu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
Quand on teste, on ne voit pas la boule de feu mais… on l&amp;#039;entend ! Preuve est faite &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;ajouter_l_instance_addchild_addchildat&quot; id=&quot;ajouter_l_instance_addchild_addchildat&quot;&gt;Ajouter l&amp;#039;instance : addChild, addChildAt&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Pour ajouter une instance à la liste d&amp;#039;affichage d&amp;#039;un conteneur (DisplayObjectContener), on utilise sa méthode addChild :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;unDisplayObjectContener.&lt;span class=&quot;me1&quot;&gt;addChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;unObjetDaffichage&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
Appliqué au symbole Mv_Cercle, ça donnera donc pour en ajouter une instance sur le scénario principal : (code complet)
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; leCercle:Mv_Cercle= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Mv_Cercle&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
leCercle.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// tant qu'à faire, autant le disposer où on veut tout de suite&lt;/span&gt;
leCercle.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;= &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;;
&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;addChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;leCercle&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;&lt;div class=&quot;wrap_tip&quot;&gt;
Ici, je valorise les propriétés x et y avant d&amp;#039;ajouter la nouvelle instance, on aurait pu le faire après sans que ça change quoi que ce soit, mais profitez en pour vous convaincre du fait que, affiché ou non, un objet d&amp;#039;affichage expose toutes ses propriétés&lt;sup&gt;&lt;a href=&quot;#fn__3&quot; name=&quot;fnt__3&quot; id=&quot;fnt__3&quot; class=&quot;fn_top&quot;&gt;3)&lt;/a&gt;&lt;/sup&gt;.
&lt;/div&gt;
&lt;p&gt;
Vous l&amp;#039;avez noté, la méthode &lt;strong&gt;addChild&lt;/strong&gt; ajoute un enfant au plus haut niveau disponible du conteneur ce qui revient à dire au &lt;strong&gt;premier plan&lt;/strong&gt;. Vous pouvez choisir d&amp;#039;ajouter un enfant dans un conteneur au niveau de &lt;b&gt;&lt;font color=&quot;#006600&quot;&gt;profondeur de votre choix&lt;/font&gt;&lt;/b&gt;, il faut alors avoir recours à la méthode &lt;b&gt;&lt;font color=&quot;#006600&quot;&gt;addChildAt&lt;/font&gt;&lt;/b&gt;, en lui passant un objet d&amp;#039;affichage et une profondeur :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;unDisplayObjectContener.&lt;span class=&quot;me1&quot;&gt;addChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;unObjetDaffichage, niveauProfondeur&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
Par exemple le code ci-dessous ajoute une instance du symbole Mv_Arbre en arrière plan d&amp;#039;un clip nommé foret :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; unArbre:Mv_Arbre= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Mv_Arbre&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
unArbre.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=… &lt;span class=&quot;co1&quot;&gt;// coordonnée x&lt;/span&gt;
unArbre.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=… &lt;span class=&quot;co1&quot;&gt;// coordonnée y&lt;/span&gt;
foret.&lt;span class=&quot;me1&quot;&gt;addChildAt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;unArbre, 0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;pour_vous_degourdir_les_doigts&quot; id=&quot;pour_vous_degourdir_les_doigts&quot;&gt;Pour vous dégourdir les doigts&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Dans la série qui ne sert à rien, facile :&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;450&quot; height=&quot;250&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/cerclesuitsouris.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;450&quot; height=&quot;250&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/cerclesuitsouris.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;
&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;wrap_tip&quot;&gt;
&lt;strong&gt;Indices :&lt;/strong&gt;&lt;br/&gt;

N&amp;#039;allez pas chercher des choses qu&amp;#039;on n&amp;#039;aurait pas vues encore&lt;sup&gt;&lt;a href=&quot;#fn__4&quot; name=&quot;fnt__4&quot; id=&quot;fnt__4&quot; class=&quot;fn_top&quot;&gt;4)&lt;/a&gt;&lt;/sup&gt;, il suffit ici d&amp;#039;&lt;strong&gt;écouter, sur la scène, les événements souris&lt;/strong&gt;. On a vu ensemble les célèbres CLICK et autres ROLL_OVER, mais n&amp;#039;hésitez pas à vous reporter à &lt;a href=&quot;http://help.adobe.com/fr_FR/FlashPlatform/reference/actionscript/3/flash/display/InteractiveObject.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://help.adobe.com/fr_FR/FlashPlatform/reference/actionscript/3/flash/display/InteractiveObject.html&quot;  rel=&quot;nofollow&quot;&gt; la doc&lt;/a&gt; (ou au panneau action de l&amp;#039;environnement auteur) pour voir si il n&amp;#039;y en aurait pas d&amp;#039;autres tout aussi intéressants&lt;sup&gt;&lt;a href=&quot;#fn__5&quot; name=&quot;fnt__5&quot; id=&quot;fnt__5&quot; class=&quot;fn_top&quot;&gt;5)&lt;/a&gt;&lt;/sup&gt;.&lt;br/&gt;

&lt;br/&gt;

Au nombre des propriétés bien utiles des DisplayObjects (donc du scénario principal, donc de &amp;#039;this&amp;#039;) il y a &lt;strong&gt;mouseX et mouseY&lt;/strong&gt; qui donnent les coordonnées du pointeur sur l&amp;#039;objet considéré.
&lt;/div&gt;
&lt;p&gt;
Dans la même série (presque) aussi facile :&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Si vous savez ajouter un cercle à l&amp;#039;endroit où se trouve la souris, vous savez ajouter un cercle qui change de couleur… Sans se compliquer, avec ce qu&amp;#039;on sait… &lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;450&quot; height=&quot;250&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/cerclesuitsouriscouleurs.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;450&quot; height=&quot;250&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/cerclesuitsouriscouleurs.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;
&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;wrap_tip&quot;&gt;
&lt;strong&gt;Indices :&lt;/strong&gt;&lt;br/&gt;

Un clip peut comporter plusieurs images (c&amp;#039;est même l&amp;#039;intérêt &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;) et on sait envoyer la tête de lecture où on veut.&lt;br/&gt;

Une variable compteur (int) pourrait très bien stocker un numéro d&amp;#039;image courante…
&lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;creer_un_clip_vide&quot; id=&quot;creer_un_clip_vide&quot;&gt;Créer un clip vide&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Non, ce n&amp;#039;est pas absurde de créer un clip vide, c&amp;#039;est même souvent bien utile pour gérer l&amp;#039;ajout et la suppression dynamique d&amp;#039;instances. En effet, il est bien plus simple de supprimer un conteneur et tous ses enfants que supprimer, une par une, une armée d&amp;#039;instances.&lt;br/&gt;

Vous voulez distribuer des cartes sur un plateau (des pions, des personnages, des éléments de décors…) et les supprimer à chaque nouvelle partie ? Plutôt qu&amp;#039;identifier une par une les instances concernées et leur appliquer la méthode qui va bien (on y arrive, juste après) il est franchement plus simple d&amp;#039;avoir pris le temps de fabriquer un conteneur dédié et de le supprimer avec tous ses enfants au moment opportun.&lt;br/&gt;

Créer un conteneur dédié, c&amp;#039;est fabriquer une instance de clip vide et l&amp;#039;ajouter (où bon nous semblera).&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Un clip vide, c&amp;#039;est un clip “tout court”, donc une instance de l&amp;#039;objet (classe) MovieClip, et vous savez déjà vous y prendre : &lt;strong&gt;déclarer&lt;/strong&gt; la variable, la &lt;strong&gt;typer&lt;/strong&gt;, la valoriser d&amp;#039;un nouvel objet à l&amp;#039;aide du mot clé &lt;strong&gt;new&lt;/strong&gt;, puis l&amp;#039;&lt;strong&gt;ajouter&lt;/strong&gt; :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; plateau:&lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt;= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span class=&quot;co1&quot;&gt;// une instance de MovieClip (forcément vide ;))&lt;/span&gt;
addChild&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;plateau&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span class=&quot;co1&quot;&gt;// équivalent à this.addChild(plateau)&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;supprimer_un_enfant_removechild&quot; id=&quot;supprimer_un_enfant_removechild&quot;&gt;Supprimer un enfant : removeChild&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Pas utile de ménager plus longtemps un suspens insoutenable : pour supprimer (retirer) une instance de l&amp;#039;affichage on utilise la méthode removeChild appliquée à son conteneur&lt;sup&gt;&lt;a href=&quot;#fn__6&quot; name=&quot;fnt__6&quot; id=&quot;fnt__6&quot; class=&quot;fn_top&quot;&gt;6)&lt;/a&gt;&lt;/sup&gt; :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;leConteneur.&lt;span class=&quot;me1&quot;&gt;removeChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;unEnfant&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;&lt;div class=&quot;wrap_important&quot;&gt;
&lt;strong&gt;Attention :&lt;/strong&gt;&lt;br/&gt;

&lt;strong&gt;removeChild ne supprime pas&lt;/strong&gt; une instance, au sens où l&amp;#039;objet n&amp;#039;est pas détruit, il se contente de l&amp;#039;ôter de l&amp;#039;affichage.&lt;br/&gt;

&lt;br/&gt;

Si vous voulez vous en convaincre, ressortez la boule-de-feu-qui-fait-du-bruit et vérifiez que même une fois un removeChild appliqué à son contenant, on l&amp;#039;entend toujours exploser (même si on ne la voit plus)
&lt;/div&gt;
&lt;p&gt;
Oui, mais alors… Comment supprimer &lt;em&gt;vraiment&lt;/em&gt; une instance ?&lt;br/&gt;

On ne peut pas.&lt;br/&gt;

Voilà, c&amp;#039;est comme ça. Il faut laisser flash s&amp;#039;en charger, quand ça lui chantera O.O&lt;br/&gt;

C&amp;#039;est le ramasse-miettes&lt;sup&gt;&lt;a href=&quot;#fn__7&quot; name=&quot;fnt__7&quot; id=&quot;fnt__7&quot; class=&quot;fn_top&quot;&gt;7)&lt;/a&gt;&lt;/sup&gt;, un processus interne sur lequel on n&amp;#039;a pas la main qui s&amp;#039;en charge quand les ressources viennent à manquer.&lt;br/&gt;

&lt;br/&gt;

La seule chose qu&amp;#039;on puisse faire, c&amp;#039;est sortir les poubelles &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt; comprendre donner toutes les chances à l&amp;#039;objet en question d&amp;#039;être supprimé, et pour ça il faut qu&amp;#039;il ne soit plus attaché à rien et que plus rien n&amp;#039;y soit attaché. Je dis attaché, ça n&amp;#039;a pas de sens informatique, le parler juste voudrait que je conjugue les verbes référencer et souscrire.&lt;br/&gt;

Allez je le fais (parler juste &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;) : &lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;wrap_important&quot;&gt;
&lt;b&gt;Un objet est éligible au &lt;font color=&quot;#A41111&quot;&gt;ramasse miettes&lt;/font&gt; quand plus &lt;font color=&quot;#A41111&quot;&gt;aucune variable&lt;/font&gt; ne le référence et quand plus &lt;font color=&quot;#A41111&quot;&gt;aucun écouteur&lt;/font&gt; n'y est souscrit.&lt;/b&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;une_variable_c_est_une_laisse&quot; id=&quot;une_variable_c_est_une_laisse&quot;&gt;Une variable c&amp;#039;est une laisse&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Les variables c&amp;#039;est la première chose qu&amp;#039;on a vue, il y a bien longtemps déjà, et - forcément - je n&amp;#039;ai pas tout dit à leur sujet. C&amp;#039;est le principe de la mayonnaise : ne pas verser toute l&amp;#039;huile d&amp;#039;un coup, sans quoi ça s&amp;#039;effondre en une pitoyable soupe. Pareil pour les connaissances, il faut y aller molo sans quoi, la soupe c&amp;#039;est dans la tête qu&amp;#039;on la fait &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Je vous ai donc raconté qu&amp;#039;une variable &lt;em&gt;représente&lt;/em&gt; quelque chose et qu&amp;#039;elle peut être utilisée en lieu et place de ce quelque chose - ce qui est toujours vrai… ouf ! &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Une autre analogie que j&amp;#039;emploie souvent c&amp;#039;est celle de la laisse : une variable c&amp;#039;est une ficelle accrochée à une donnée (objet, valeur), je tire la ficelle, je chope la donnée ou l&amp;#039;objet. &lt;br/&gt;

Bien sûr je peux y accrocher successivement différentes choses - pourvu que ce soit toujours du même type - et je peux aussi ne rien avoir du tout au bout de la laisse.&lt;br/&gt;

Quand on écrit :

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; unClip:&lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
On a une “laisse à clips”, avec rien au bout. D&amp;#039;ailleurs ça nous le dit si on “trace” :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;unClip&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;&lt;pre class=&quot;code trace&quot;&gt;null&lt;/pre&gt;
&lt;p&gt;
Pour revenir à ce qui nous intéresse : quand vous avez retiré de l&amp;#039;affichage une instance (removeChild), pour qu&amp;#039;elle soit éligible au ramasse-miettes encore faut-il la détacher de sa “laisse”. Ça se fait en affectant à la variable considérée la valeur &lt;code&gt;null&lt;/code&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; unClip:Mv_Truc= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Mv_truc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
conteneur.&lt;span class=&quot;me1&quot;&gt;addChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;unClip&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// traitements&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// un peu plus loin :&lt;/span&gt;
&amp;nbsp;
conteneur.&lt;span class=&quot;me1&quot;&gt;removeChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;unClip&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span class=&quot;co1&quot;&gt;// plus affiché mais toujours existant&lt;/span&gt;
unClip=&lt;span class=&quot;kw2&quot;&gt;null&lt;/span&gt;; &lt;span class=&quot;co1&quot;&gt;// toujours existant, mais pourra être nettoyé quand le ramasse-miettes passera ds le coin&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;a_vous_de_jouer&quot; id=&quot;a_vous_de_jouer&quot;&gt;A vous de jouer&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;450&quot; height=&quot;250&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/cerclesuitsourisefface.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;450&quot; height=&quot;250&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/cerclesuitsourisefface.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;

&lt;/p&gt;

&lt;p&gt;
C&amp;#039;est quoi le principe ?&lt;br/&gt;

J&amp;#039;ai déjà éventé la ruse : vous vous doutez bien que pour effacer on ne va pas parcourir toute la liste d&amp;#039;affichage pour en supprimer les instances colorées. Le plus simple c&amp;#039;est encore de les &lt;strong&gt;ajouter&lt;/strong&gt;, non pas au scénario principal comme on l&amp;#039;avait précédemment fait, mais &lt;strong&gt;à un clip dédié&lt;/strong&gt; (vide à l&amp;#039;origine). &lt;strong&gt;Le bouton effacer se contente de supprimer le clip en question&lt;/strong&gt; et d&amp;#039;en créer un autre, tout prêt à se voir ajouter à son tour des pastilles colorées…
&lt;/p&gt;

&lt;p&gt;
Extraits :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; conteneur:&lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt;= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// un clip vide pour &amp;quot;y dessiner&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;addChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;conteneur&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// on l'ajoute tout de suite&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; ajoutePiece&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; c:Mv_Cercle= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Mv_Cercle&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	cpt = cpt&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;200+&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;;
	c.&lt;span class=&quot;kw3&quot;&gt;gotoAndStop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cpt&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	c.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt; = mouseX;
	c.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt; = mouseY;
	conteneur.&lt;span class=&quot;me1&quot;&gt;addChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// la suele différence avec la version précédente c'est qu'on ajoute au conteneur dédié&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Le bouton Effacer :&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
• La première ligne supprime de la liste d&amp;#039;affichage le clip référencé par la variable conteneur.  &lt;br/&gt;

• La deuxième ligne associe un &lt;strong&gt;nouveau clip&lt;/strong&gt; vide à la &lt;strong&gt;même variable&lt;/strong&gt;, l&amp;#039;ancien est donc déréférencé (attention, le clip et tous ses enfants existe toujours, on l&amp;#039;a juste “lâché dans les limbes”), et comme il n&amp;#039;est plus “accroché à sa laisse” il sera supprimé par le ramasse-miettes.&lt;br/&gt;

• La troisième ligne ajoute ce clip vide au scénario principal. Puisqu&amp;#039;il est référencé par la variable conteneur, le la fonction &lt;code&gt;ajoutePiece&lt;/code&gt; continue de “fonctionner”.
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;btEfface.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;CLICK&lt;/span&gt;,qdEfface&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; qdEfface&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;removeChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;conteneur&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// supprimer de l'affichage le clip référencé par la variable&lt;/span&gt;
	conteneur= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span class=&quot;co1&quot;&gt;// associer un nouveau clip (un autre, le précédent existe toujours)&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;addChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;conteneur&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Oui, mais non !, s&amp;#039;énerve Ronchon, ça ne marche pas ! 
&lt;/p&gt;

&lt;p&gt;
&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;450&quot; height=&quot;250&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/marchepo.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;450&quot; height=&quot;250&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/marchepo.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;

&lt;/p&gt;

&lt;p&gt;
Hé oui… Il y a un piège &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_razz.gif&quot; class=&quot;middle&quot; alt=&quot;:-P&quot; /&gt;&lt;br/&gt;

Que se passe-t-il ? Le survol du bouton est bien reconnu (il change de couleur), c&amp;#039;est le clic qui n&amp;#039;est pas pris, d&amp;#039;ailleurs ça se voit aussi : le bouton ne devient jamais noir (couleur de l&amp;#039;état enfoncé). C&amp;#039;est bien normal : au moment où on clique c&amp;#039;est d&amp;#039;abord un événement &lt;code&gt;mouseDown&lt;/code&gt; qui est diffusé par le bouton. La scène - sur laquelle on a monté un écouteur - “l&amp;#039;entend”, la fonction &lt;code&gt;enfonce&lt;/code&gt; est invoquée et c&amp;#039;est une pastille qui vient se mettre sous le pointeur empêchant le bouton de diffuser un événement &lt;code&gt;click&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
Il faut donc invalider la fonction &lt;code&gt;enfonce&lt;/code&gt; quand l&amp;#039;événement mouseDown est diffusé par le bouton, dit autrement : savoir sur qui on a cliqué et empêcher enfonce de faire son boulot si c&amp;#039;est le bouton qui a reçu le clic…&lt;br/&gt;

La propriété &lt;code&gt;eventPhase&lt;/code&gt;… &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/addeventlistener#eventphase&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:addeventlistener&quot;&gt;ça vous dit quelque chose ?&lt;/a&gt;  &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;
&lt;/p&gt;

&lt;p&gt;
Dans notre cas on a accroché un écouteur à &lt;code&gt;Stage&lt;/code&gt;.&lt;br/&gt;

Le croquis illustre l&amp;#039;imbrication des objets d&amp;#039;affichage de l&amp;#039;animation.&lt;br/&gt;

Cliquez sur la scène ou sur le bouton pour voir la propagation de l&amp;#039;événement.
&lt;/p&gt;

&lt;p&gt;
&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;650&quot; height=&quot;350&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/eventphase.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;650&quot; height=&quot;350&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/eventphase.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;

&lt;/p&gt;

&lt;p&gt;
• Quand on clique &lt;strong&gt;n&amp;#039;importe où sur la scène&lt;/strong&gt;, d&amp;#039;abord l&amp;#039;événement descend (phase 1) et n&amp;#039;est pas écouté (argument capture vaut faux par défaut), il arrive à la scène qui a diffusé l&amp;#039;événement (on est en phase 2), il est entendu (l&amp;#039;écouteur est sur Stage) : &lt;strong&gt;eventPhase vaut 2&lt;/strong&gt;.&lt;br/&gt;

&lt;br/&gt;

• Quand on clique &lt;strong&gt;sur le bouton&lt;/strong&gt;, d&amp;#039;abord l&amp;#039;événement descend (phase 1) et n&amp;#039;est pas écouté (argument capture vaut faux par défaut), il arrive sur le bouton qui l&amp;#039;a diffusé (phase 2) “rebondit” et remonte (phase 3) en arrivant à la scène il est entendu : &lt;strong&gt;eventPhase vaut 3&lt;/strong&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; enfonce&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me.&lt;span class=&quot;me1&quot;&gt;eventPhase&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me.&lt;span class=&quot;me1&quot;&gt;eventPhase&lt;/span&gt;==&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;// phase de remontée (bubble) ce n'est donc pas la scène qui diffuse l'événement mais un enfant (le bouton donc)&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;stage&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;MOUSE_MOVE&lt;/span&gt;,bouge&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	ajoutePiece&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;attention_aux_ressources&quot; id=&quot;attention_aux_ressources&quot;&gt;Attention aux ressources&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Si maintenant je vous propose ça :&lt;br/&gt;

&lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;450&quot; height=&quot;250&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/etincelles.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;450&quot; height=&quot;250&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/etincelles.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;
&lt;br/&gt;

&lt;br/&gt;

voire ça :&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;450&quot; height=&quot;250&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/etincelles2.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;450&quot; height=&quot;250&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/etincelles2.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;
&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;br/&gt;

Woho ! Trop facile &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_smile.gif&quot; class=&quot;middle&quot; alt=&quot;:)&quot; /&gt;&lt;br/&gt;

C&amp;#039;est exactement la même chose que le cercle un peu plus haut, s&amp;#039;exclame un enthousiaste, si ce n&amp;#039;est qu&amp;#039;au lieu de contenir un bête cercle sur une image, le clip cette fois porte une étoile interpolée. La belle affaire ! &lt;br/&gt;

&lt;br/&gt;

Et zou c&amp;#039;est parti, on duplique/modifie le fichier et …&lt;br/&gt;

&lt;br/&gt;

Voilà que pour certains, ça ne fait pas tout à fait ce qu&amp;#039;on attendait :&lt;br/&gt;

&lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;450&quot; height=&quot;250&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/etincellesefface.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;450&quot; height=&quot;250&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/etincellesefface.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;

&lt;br/&gt;

En soi c&amp;#039;est rigolo, mais c&amp;#039;est pas ce qu&amp;#039;on attendait…
&lt;/p&gt;

&lt;p&gt;
Il faut, bien sûr penser à mettre un stop() après la dernière image de l&amp;#039;interpolation afin que la lecture du clip ne boucle pas indéfiniment.
&lt;/p&gt;

&lt;p&gt;
Mais ça ne suffit pas, loin de là.
Tous ces clips, qu&amp;#039;on ne voit plus et qui s&amp;#039;accumulent, c&amp;#039;est pas propre du tout, ça va finir par tenir de la place, pour rien. Le mieux c&amp;#039;est de les supprimer, puisqu&amp;#039;on n&amp;#039;en veut plus.&lt;br/&gt;

Quand je dis les supprimer, j&amp;#039;entends utiliser un removeChild, et bien entendu que vous n&amp;#039;allez pas écrire, après la dernière image de l&amp;#039;interpolation : &lt;code&gt;conteneur.removeChild(this);&lt;/code&gt; ce serait bien trop “rigide” : ça implique qu&amp;#039;on les ajoute obligatoirement à un clip nommé conteneur…&lt;br/&gt;

Somme toute, le clip conteneur, c&amp;#039;est surtout - et systématiquement par la force même des choses - le parent du clip considéré… On écrira donc :&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;parent.&lt;span class=&quot;me1&quot;&gt;removeChild&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Non, non. On ne remplace pas le stop() par la ligne en question. Il faut les deux, mon capitaine. &lt;br/&gt;

Rappelez vous la boule de feu qu&amp;#039;on entendait exploser même si elle n&amp;#039;était pas affichée… “pas encore affiché” ou “plus affiché”, c&amp;#039;est pareil &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt; &lt;br/&gt;

Un objet, qu&amp;#039;il soit dans la liste d&amp;#039;affichage ou non, mène sa vie dès lors qu&amp;#039;il a été créé, et du coup consomme des ressources aussi longtemps que le ramasse miettes n&amp;#039;est pas passé. C&amp;#039;est pourquoi il convient de ne pas laisser “tourner” inutilement des processus, pas plus la lecture du scenario que d&amp;#039;éventuels appels récurrents à coup d&amp;#039;enterFrame par exemple, dont vous avez peut-être déjà entendu parler.
&lt;/p&gt;
&lt;div class=&quot;wrap_important&quot;&gt;
Quand vous supprimez un objet d&amp;#039;affichage via &lt;strong&gt;removeChild&lt;/strong&gt;, arrêtez systématiquement la lecture (&lt;strong&gt;stop&lt;/strong&gt;) et supprimez les écouteurs qui y sont associés (&lt;strong&gt;removeEventListener&lt;/strong&gt;).
&lt;/div&gt;
&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;un_objet_classe_depuis_une_chaine_de_caracteres&quot; id=&quot;un_objet_classe_depuis_une_chaine_de_caracteres&quot;&gt;Un objet classe depuis une chaîne de caractères&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Une autre chose qui peut être bien utile, c&amp;#039;est créer une instance de classe depuis le nom de la classe considérée, une chaîne donc.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
On utilisera la fonction getDefinitionByName :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; classCercle:&lt;span class=&quot;kw2&quot;&gt;Class&lt;/span&gt; = getDefinitionByName&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Mv_Cercle&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; as &lt;span class=&quot;kw2&quot;&gt;Class&lt;/span&gt;;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; cercle= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; classCercle&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
addChild&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cercle&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
Pour aller vite illustrons de l&amp;#039;exemple basique d&amp;#039;un damier. On veut distribuer des clips en lignes/colonnes pour faire un damier. Dit du point de vue qui nous intéresse, il faut ajouter une fois une instance d&amp;#039;un symbole Mv_Case0, la fois suivante une instance de Mv_Case1, et recommencer…&lt;br/&gt;

S&amp;#039;il s&amp;#039;agissait toujours du même symbole, disons Mv_Case0, vous sauriez faire :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; nbCol:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; nbLig:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; nbTot:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;=nbLig&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;nbCol;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; i:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;=0; i&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;nbTot; i++&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; laCase:Mv_Case0=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Mv_Case0&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	laCase.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;i&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nbCol&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;laCase.&lt;span class=&quot;kw3&quot;&gt;height&lt;/span&gt;;
	laCase.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=i&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;nbCol&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;laCase.&lt;span class=&quot;kw3&quot;&gt;width&lt;/span&gt;;
	addChild&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;laCase&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Bien sûr, avec cette consigne minimaliste vous pourriez être tentés d&amp;#039;utiliser un if et de valoriser dans chacune de ses branches la variable laCase, genre :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;i&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;2==0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		 laCase=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Mv_Case0&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  ;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		 laCase=&lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; Mv_Case1&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  ;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
… mais ce n&amp;#039;est pas le but &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_biggrin.gif&quot; class=&quot;middle&quot; alt=&quot;:D&quot; /&gt;, je vous laisse faire utiliser notre nouvel outil : &lt;code&gt;getDefinitionByName&lt;/code&gt; &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; nbCol:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; nbLig:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; nbTot:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;=nbLig&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;nbCol;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; i:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;=0; i&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;nbTot; i++&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; classRef:&lt;span class=&quot;kw2&quot;&gt;Class&lt;/span&gt;=getDefinitionByName&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Mv_Case&amp;quot;&lt;/span&gt;+i&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;2&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; as &lt;span class=&quot;kw2&quot;&gt;Class&lt;/span&gt;;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; laCase= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; classRef&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;co1&quot;&gt;//var laCase:Mv_Case0=new Mv_Case0();&lt;/span&gt;
	laCase.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;i&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nbCol&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;laCase.&lt;span class=&quot;kw3&quot;&gt;height&lt;/span&gt;;
	laCase.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=i&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;nbCol&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;laCase.&lt;span class=&quot;kw3&quot;&gt;width&lt;/span&gt;;
	addChild&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;laCase&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;retrouver_le_nom_de_classe_d_une_instance&quot; id=&quot;retrouver_le_nom_de_classe_d_une_instance&quot;&gt;Retrouver le nom de classe d&amp;#039;une instance&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Quelle est la classe dont est issue une instance ? C&amp;#039;est une question dont la réponse peut nous être utile quand on souhaite dupliquer une instance.&lt;br/&gt;

Imaginez que vous souhaitiez dupliquer une instance en cliquant dessus, par exemple.&lt;br/&gt;

&lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;425&quot; height=&quot;350&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/dupliquesansfin.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;425&quot; height=&quot;350&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild/dupliquesansfin.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;

&lt;br/&gt;

En fin de compte il s&amp;#039;agit ni plus ni moins que de créer une nouvelle instance depuis la même classe que celle du clip considéré, il suffit donc de la connaître, cette classe.
&lt;br/&gt;

La classe dont est issu un objet, on l&amp;#039;obtient avec la fonction &lt;strong&gt;getQualifiedClassName&lt;/strong&gt; à qui on passe le clip considéré. Elle renvoie une chaine et comme maintenant on est outillés de la fonction &lt;code&gt;getDefinitionByName&lt;/code&gt; pour récupérer la classe elle même&lt;sup&gt;&lt;a href=&quot;#fn__8&quot; name=&quot;fnt__8&quot; id=&quot;fnt__8&quot; class=&quot;fn_top&quot;&gt;8)&lt;/a&gt;&lt;/sup&gt;.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Vous avez tout ce qu&amp;#039;il faut pour vous essayer&lt;/strong&gt; &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_smile.gif&quot; class=&quot;middle&quot; alt=&quot;:)&quot; /&gt;&lt;br/&gt;

Indice :&lt;br/&gt;

Soyez économes de votre énergie (et des ressources), n&amp;#039;allez pas ajouter un écouteur par instance…
 
&lt;/p&gt;

&lt;p&gt;

Remarquez que sur la démo j&amp;#039;ai appliqué quelques propriétés de base aux instances, la coccinelle est rétrécie, une bestiole est inclinée, l&amp;#039;autre encore est un peu transparente… et les duplicatas sont aussi affectés des mêmes modifications.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Si on ne fait rien de particulier (en code) le duplicata ne reflète pas l&amp;#039;état du clip modèle, il a ses dimensions d&amp;#039;origine par exemple, et c&amp;#039;est bien normal, les dimensions et autre inclinaison, en langage AS ce sont des propriétés : scaleX, scaleY, rotation, alpha…. &lt;br/&gt;

Quand je parle de dupliquer, c&amp;#039;est pour aller vite, mais ce qu&amp;#039;on fait c&amp;#039;est seulement créer une nouvelle instance, on ne recopie pas la première, on lit tout bêtement son nom de classe pour l&amp;#039;utiliser… Pensez donc à appliquer à la nouvelle instance toutes les propriétés de son “modèle” que vous souhaitez reproduire.
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;stage&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;MOUSE_DOWN&lt;/span&gt;,enfonce,&lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// on écoute la phase de capture sur la scène, donc ses enfants&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;stage&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;MOUSE_UP&lt;/span&gt;,lache&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; clip_c:&lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// le clip courant (le duplicata)&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; enfonce&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; leClip:&lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt;=&lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me.&lt;span class=&quot;kw3&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// le modèle&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; nomClasse:&lt;span class=&quot;kw3&quot;&gt;String&lt;/span&gt;=getQualifiedClassName&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;leClip&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// le nom de la classe en chaine&lt;/span&gt;
	&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; classRef:&lt;span class=&quot;kw2&quot;&gt;Class&lt;/span&gt;=getDefinitionByName&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;nomClasse&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; as &lt;span class=&quot;kw2&quot;&gt;Class&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// l'objet Classe&lt;/span&gt;
	clip_c= &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; classRef&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	clip_c.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=mouseX; &lt;span class=&quot;co1&quot;&gt;// sous la souris&lt;/span&gt;
	clip_c.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=mouseY;
	clip_c.&lt;span class=&quot;me1&quot;&gt;scaleX&lt;/span&gt;=leClip.&lt;span class=&quot;me1&quot;&gt;scaleX&lt;/span&gt;; &lt;span class=&quot;co1&quot;&gt;// dimensions&lt;/span&gt;
	clip_c.&lt;span class=&quot;me1&quot;&gt;scaleY&lt;/span&gt;=leClip.&lt;span class=&quot;me1&quot;&gt;scaleY&lt;/span&gt;;
	clip_c.&lt;span class=&quot;me1&quot;&gt;rotation&lt;/span&gt;=leClip.&lt;span class=&quot;me1&quot;&gt;rotation&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// inclinaison&lt;/span&gt;
	clip_c.&lt;span class=&quot;me1&quot;&gt;alpha&lt;/span&gt;=leClip.&lt;span class=&quot;me1&quot;&gt;alpha&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// transparence&lt;/span&gt;
&amp;nbsp;
	addChild&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;clip_c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw3&quot;&gt;stage&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;MOUSE_MOVE&lt;/span&gt;,bouge&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; lache&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;stage&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;removeEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;MOUSE_MOVE&lt;/span&gt;,bouge&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; bouge&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// suit la souris&lt;/span&gt;
	clip_c.&lt;span class=&quot;me1&quot;&gt;x&lt;/span&gt;=mouseX;
	clip_c.&lt;span class=&quot;me1&quot;&gt;y&lt;/span&gt;=mouseY;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;addchild_d_autres_cordes_a_son_arc&quot; id=&quot;addchild_d_autres_cordes_a_son_arc&quot;&gt;addChild, d&amp;#039;autres cordes à son arc&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;deplacer_d_un_conteneur_a_un_autre&quot; id=&quot;deplacer_d_un_conteneur_a_un_autre&quot;&gt;Déplacer d&amp;#039;un conteneur à un autre&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;deplacer_au_premier_plan_ou_a_l_arriere_plan&quot; id=&quot;deplacer_au_premier_plan_ou_a_l_arriere_plan&quot;&gt;Déplacer au premier plan ou à l&amp;#039;arrière plan&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
 
• distribuer damier&lt;br/&gt;

• prédominance des propriétés du conteneur&lt;br/&gt;

• barre d&amp;#039;inventaire (panier)&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
• les soluces ? où ?
&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;a_retenir&quot; id=&quot;a_retenir&quot;&gt;A retenir&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

On manipule les clips depuis leur parent
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;footnotes&quot;&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__1&quot; id=&quot;fn__1&quot; name=&quot;fn__1&quot; class=&quot;fn_bot&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; 
on peut le stocker avec des copains dans un tableau par exemple et ne l&amp;#039;utiliser - afficher, ajouter - que plus tard&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__2&quot; id=&quot;fn__2&quot; name=&quot;fn__2&quot; class=&quot;fn_bot&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt; 
sans oublier de cocher la case exporter pour Action script &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt; &lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__3&quot; id=&quot;fn__3&quot; name=&quot;fn__3&quot; class=&quot;fn_bot&quot;&gt;3)&lt;/a&gt;&lt;/sup&gt; 
comprendre on y a “accès”&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__4&quot; id=&quot;fn__4&quot; name=&quot;fn__4&quot; class=&quot;fn_bot&quot;&gt;4)&lt;/a&gt;&lt;/sup&gt; 
genre Timer ou EnterFrame&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__5&quot; id=&quot;fn__5&quot; name=&quot;fn__5&quot; class=&quot;fn_bot&quot;&gt;5)&lt;/a&gt;&lt;/sup&gt; 
genre MouseDown, MouseMove, MouseUp…&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__6&quot; id=&quot;fn__6&quot; name=&quot;fn__6&quot; class=&quot;fn_bot&quot;&gt;6)&lt;/a&gt;&lt;/sup&gt; 
et on parle bien du conteneur direct, donc du parent&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__7&quot; id=&quot;fn__7&quot; name=&quot;fn__7&quot; class=&quot;fn_bot&quot;&gt;7)&lt;/a&gt;&lt;/sup&gt; 
garbage collector&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__8&quot; id=&quot;fn__8&quot; name=&quot;fn__8&quot; class=&quot;fn_bot&quot;&gt;8)&lt;/a&gt;&lt;/sup&gt; 
l&amp;#039;objet, pas le nom sus forme de chaine de caractères &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt; &lt;/div&gt;
&lt;/div&gt;
</description>
            <author>Nataly</author>
        <category>tutoriaux:flashplatform:programmation:generalites</category>
            <pubDate>Tue, 21 Feb 2012 18:08:28 +0200</pubDate>
        </item>
        <item>
            <title>Manipuler un MovieClip</title>
            <link>http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes</link>
            <description>&lt;noscript class=&quot;datambplugin_pageinfo&quot;&gt;Activez JavaScript pour une utilisation optimale.&lt;/noscript&gt;
&lt;div id=&quot;datambplugin_pageinfo&quot;&gt;&lt;div id=&quot;pageinfo__header&quot;&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/aide/compatibilite&quot; class=&quot;wikiMarker&quot; rel=&quot;lightbox&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/compatibilite/as3.png&quot; alt=&quot;Compatible ActionScript 3. Cliquer pour en savoir plus sur les compatibilités.&quot; title=&quot;Compatible ActionScript 3. Cliquer pour en savoir plus sur les compatibilités.&quot; width=&quot;27&quot; /&gt;&lt;/a&gt;&lt;span&gt;Par Nataly, le 19 octobre 2011&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;
• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/as3premierspas&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:as3premierspas&quot;&gt;Variables, fonctions, syntaxe&lt;/a&gt;&lt;br/&gt;

• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/parenthese&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:parenthese&quot;&gt;Objets, méthodes, propriétés…&lt;/a&gt;&lt;br/&gt;

• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/addeventlistener&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:addeventlistener&quot;&gt;Clics et événements souris sur les boutons et les clips&lt;/a&gt; &lt;br/&gt;

• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/stringchamptexte&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:stringchamptexte&quot;&gt;Champs texte et objet String&lt;/a&gt;&lt;br/&gt;

• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/structuredecontrole&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:structuredecontrole&quot;&gt;Structures de contrôle alternatives : if&lt;/a&gt;&lt;br/&gt;

• &lt;strong&gt;MovieClip : manipuler (ici)&lt;/strong&gt;&lt;br/&gt;

• Structures de contrôle alternatives : switch&lt;br/&gt;

• Structures de contrôle répétitives : for - while&lt;br/&gt;

• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/listeaffichageaddchild&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:listeaffichageaddchild&quot;&gt;Liste d&amp;#039;affichage, gestion dynamique des objets&lt;/a&gt;&lt;br/&gt;

• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/tableaux&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:tableaux&quot;&gt;Les tableaux&lt;/a&gt;&lt;br/&gt;

&lt;/p&gt;

&lt;h1&gt;&lt;a name=&quot;manipuler_un_movieclip&quot; id=&quot;manipuler_un_movieclip&quot;&gt;Manipuler un MovieClip&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
L&amp;#039;objet phare, la vedette de Flash, c&amp;#039;est le clip, c&amp;#039;est donc par là que nous allons attaquer les choses vraiment sérieuses (ou rigolotes c&amp;#039;est selon l&amp;#039;état d&amp;#039;esprit).&lt;br/&gt;

&lt;br/&gt;

Un clip, quand on parle vite, c&amp;#039;est une instance d&amp;#039;un symbole de bibliothèque de type Clip.
&lt;/p&gt;

&lt;p&gt;

Dans un premier temps on va manipuler des instances (occurrences) de symbole déjà présentes sur la scène, on verra plus tard comment les ajouter en cours d&amp;#039;exécution (à la volée) - on dit dynamiquement.
&lt;/p&gt;

&lt;p&gt;

Fabriquons donc un symbole de type Clip, animé - puisque c&amp;#039;est LA caractéristique principale de ces objets.&lt;br/&gt;

&lt;br/&gt;

Tiens on va faire un ballon qui vole (ou une soucoupe volante pour les garçons &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_mrgreen.gif&quot; class=&quot;middle&quot; alt=&quot;:mrgreen:&quot; /&gt;) :&lt;br/&gt;

Une instance de graphique Gr_Ballon animée sur un guide mouvement (pour CS3 et comme vous voulez après).&lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/constructballon.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

On en glisse une occurrences sur la scène et nous voilà prêts à tester les principales méthodes et propriétés&lt;sup&gt;&lt;a href=&quot;#fn__1&quot; name=&quot;fnt__1&quot; id=&quot;fnt__1&quot; class=&quot;fn_top&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; des objets de type MovieClip.&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_info&quot;&gt;
Et puisque je vient de lâcher le mot, &lt;strong&gt;ne confondez pas&lt;/strong&gt; le type MovieClip, qui est le nom de la classe que nous allons de fait manipuler avec le “type” Clip que vous choisissez dans l&amp;#039;environnement auteur. Le “type” Clip qui apparait dans le panneau Propriétés ou dans la bibliothèque, n&amp;#039;existe pas pour AS3, pas plus que le type Bouton ou Graphique&lt;sup&gt;&lt;a href=&quot;#fn__2&quot; name=&quot;fnt__2&quot; id=&quot;fnt__2&quot; class=&quot;fn_top&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt; &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;
&lt;/div&gt;
&lt;p&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;manipuler_la_tete_de_lecture&quot; id=&quot;manipuler_la_tete_de_lecture&quot;&gt;Manipuler la tête de lecture&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Les méthodes caractéristiques de la classe MovieClip vous les connaissez certainement - au moins de réputation - ce sont celles qui permettent de manipuler la tête de lecture, et quand je disais tout à l&amp;#039;heure un peu vite que &lt;strong&gt;la caractéristique principale des MovieClip&lt;/strong&gt; c&amp;#039;est d&amp;#039;être animés, en parler correct c&amp;#039;est : d&amp;#039;avoir &lt;strong&gt;plusieurs images&lt;sup&gt;&lt;a href=&quot;#fn__3&quot; name=&quot;fnt__3&quot; id=&quot;fnt__3&quot; class=&quot;fn_top&quot;&gt;3)&lt;/a&gt;&lt;/sup&gt; et une tête de lecture&lt;/strong&gt;… qu&amp;#039;on peut piloter, donc.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;stop_play_gotoandstop_et_gotoandplay&quot; id=&quot;stop_play_gotoandstop_et_gotoandplay&quot;&gt;stop, play, gotoAndStop et gotoAndPlay&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Ça, on a &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/parenthese#les_methodes&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:parenthese&quot;&gt;déjà vu&lt;/a&gt; et même pris de l&amp;#039;avance avec l&amp;#039;exercice du skieur.&lt;br/&gt;

&lt;br/&gt;

Je résume tout de même :
&lt;strong&gt;&lt;code&gt;stop&lt;/code&gt; arrête&lt;/strong&gt; la tête de lecture du clip considéré là ou elle se trouve ; &lt;strong&gt;&lt;code&gt;play&lt;/code&gt; démarre&lt;/strong&gt; la lecture depuis l&amp;#039;image courante (actuellement affichée).&lt;br/&gt;

&lt;br/&gt;

&lt;strong&gt;Par exemple pour arrêter la course du ballon en cliquant dessus…&lt;/strong&gt;&lt;br/&gt;
 
&lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;200&quot; height=&quot;275&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/unballoncs3.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;200&quot; height=&quot;275&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/unballoncs3.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;
&lt;br/&gt;

&lt;br/&gt;

Deux possibilités :&lt;br/&gt;

&lt;br/&gt;

• Soit vous nommez l&amp;#039;instance (disons &lt;code&gt;leBallon&lt;/code&gt; pour faire original) et, sur le calque dédié au code du &lt;strong&gt;scénario principal&lt;/strong&gt;&lt;sup&gt;&lt;a href=&quot;#fn__4&quot; name=&quot;fnt__4&quot; id=&quot;fnt__4&quot; class=&quot;fn_top&quot;&gt;4)&lt;/a&gt;&lt;/sup&gt;, vous lui associez un écouteur :&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;leBallon.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;MOUSE_DOWN&lt;/span&gt;,qdClicBallon&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; qdClicBallon&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	me.&lt;span class=&quot;me1&quot;&gt;currentTarget&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;stop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

• Soit vous décidez d&amp;#039;écrire ce bout de code &lt;strong&gt;dans le clip lui même&lt;/strong&gt; image 1 d&amp;#039;un calque dédié.&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;MOUSE_DOWN&lt;/span&gt;,explose&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; explose&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;stop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;em&gt;Ici, avec un seul clip, c&amp;#039;est la première option la meilleure : on a tout le code sous les yeux en ouvrant le .fla, mais vous verrez que quelquefois l&amp;#039;option &amp;#039;code dans le clip&amp;#039; se révèle bien utile&lt;/em&gt;
&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;strong&gt;gotoAndStop&lt;/strong&gt; envoie la tête de lecture à une image considérée, sans lire les autres, la tête de lecture “saute” jusqu&amp;#039;à l&amp;#039;image et y reste ; &lt;strong&gt;gotoAndPlay&lt;/strong&gt; lit depuis l&amp;#039;image en question.&lt;br/&gt;

&lt;br/&gt;

On précise le numéro d&amp;#039;image entre parenthèses comme illustré &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/parenthese#les_methodes&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:parenthese&quot;&gt;là bas&lt;/a&gt;, mais on peut aussi préciser une étiquette d&amp;#039;image en passant une chaîne.
&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;les_etiquettes_d_image&quot; id=&quot;les_etiquettes_d_image&quot;&gt;Les étiquettes d&amp;#039;image&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Pour poser une étiquette d&amp;#039;image il suffit de sélectionner une &lt;strong&gt;image clé&lt;/strong&gt;&lt;sup&gt;&lt;a href=&quot;#fn__5&quot; name=&quot;fnt__5&quot; id=&quot;fnt__5&quot; class=&quot;fn_top&quot;&gt;5)&lt;/a&gt;&lt;/sup&gt; dans le scénario du clip considéré et de saisir un nom dans le &lt;strong&gt;champ &lt;code&gt;Nom&lt;/code&gt; du panneau Propriétés&lt;/strong&gt;.&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/etiquette.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

Il vous suffira par la suite de “passer” ce nom, entre guillemets, à un gotoAnd… pour y envoyer la tête de lecture :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;leClip.&lt;span class=&quot;me1&quot;&gt;gotoAnStop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;uneEtiquette&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;co1&quot;&gt;//ou&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;//leClip.gotoAnPlay(&amp;quot;uneEtiquette&amp;quot;);&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;br/&gt;

Par exemple, sauriez vous faire un ballon qui explose quand on clique dessus ?&lt;br/&gt;

&lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;200&quot; height=&quot;275&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/unballonexplosecs3.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;200&quot; height=&quot;275&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/unballonexplosecs3.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;
&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

Ce n&amp;#039;est qu&amp;#039;une ruse de construction et du code qu&amp;#039;on connait, n&amp;#039;allez pas chercher midi à quatorze heure…&lt;br/&gt;

Jusqu&amp;#039;alors on avait un clip (Mv_BallonVole) qui animait un graphique nommé &lt;code&gt;ballon&lt;/code&gt; (instance de Gr_Ballon) sur une guide mouvement. Il vous suffit de remplacer cette instance (bouton Permuter du panneau Propriétés) par un clip présentant image 1 le visuel du ballon et, plus loin, une animation figurant l&amp;#039;explosion à partir d&amp;#039;une image quelconque que vous aurez pris soin de repérer à l&amp;#039;aide d&amp;#039;une étiquette d&amp;#039;image (“paf”, par exemple).&lt;br/&gt;

Un clic sur l&amp;#039;instance de Mv_BallonVole, en arrête la tête de lecture et envoie celle du clip contenu lire depuis l&amp;#039;étiquette “explose” (gotoAndPlay).&lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/mv_ballonexplose.fla.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;em&gt;Prenez soin, si vous avez procédé par permutation, de régler le type sur “Clip” dans le panneau Propriétés.&lt;/em&gt;
&lt;br/&gt;

Toujours les deux mêmes possibilités :&lt;br/&gt;

&lt;br/&gt;

&lt;strong&gt;Sur la première image de Mv_BallonVole :&lt;/strong&gt;

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;MOUSE_DOWN&lt;/span&gt;,explose&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; explose&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;stop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;removeEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;MOUSE_DOWN&lt;/span&gt;,explose&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// plus besoin de l'écouteur on le supprime&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ballon&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;gotoAndPlay&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;paf&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;strong&gt;Sur la première image du scénario principal :&lt;/strong&gt;&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;leBallon.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;MOUSE_DOWN&lt;/span&gt;,explose&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; explose&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	me.&lt;span class=&quot;me1&quot;&gt;currentTarget&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;stop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	me.&lt;span class=&quot;me1&quot;&gt;currentTarget&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;removeEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;MOUSE_DOWN&lt;/span&gt;,explose&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// plus besoin de l'écouteur on le supprime&lt;/span&gt;
	me.&lt;span class=&quot;me1&quot;&gt;currentTarget&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ballon&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;gotoAndPlay&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;paf&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;nextframe_et_prevframe&quot; id=&quot;nextframe_et_prevframe&quot;&gt;nextFrame et prevFrame&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Comme leur nom l&amp;#039;indique, &lt;code&gt;nextFrame&lt;/code&gt; et &lt;code&gt;prevFrame&lt;/code&gt;, permettent d&amp;#039;envoyer la tête de lecture, respectivement, image suivante ou image précédente. On pourrait par exemple fabriquer cette toute petite chose (aussi, ça nous permettra de tester d&amp;#039;autres propriétés par la suite).&lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;130&quot; height=&quot;105&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/defilsimple.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;130&quot; height=&quot;105&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/defilsimple.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;
&lt;br/&gt;

Il s&amp;#039;agit d&amp;#039;un bête clip avec une poignée d&amp;#039;images clés, sur chacune d&amp;#039;elle une illustration différente. Quand on clique, l&amp;#039;image suivante est affichée (la tête de lecture se déplace vers l&amp;#039;avant), si on clique avec la touche majuscule enfoncée c&amp;#039;est l&amp;#039;image précédente qui est affichée (tête de lecture recule d&amp;#039;une image).&lt;br/&gt;

&lt;br/&gt;

C&amp;#039;est une bonne occasion de réviser &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/addeventlistener#etat_du_clavierctrlkey_shiftkey_altkey&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:addeventlistener&quot;&gt;les propriétés du paramètre de la fonction de rappel&lt;/a&gt; ainsi que l&amp;#039;emploi de la structure &lt;code&gt;if&lt;/code&gt; &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_info&quot;&gt;
Notez qu&amp;#039;aucune erreur ne se produit si on invoque &lt;code&gt;nextFrame&lt;/code&gt; sur la dernière image, ou &lt;code&gt;prevFrame&lt;/code&gt; sur la première… Rien ne se passe, c&amp;#039;est tout.
&lt;/div&gt;
&lt;p&gt;
&lt;span class=&quot;wrap_tip&quot;&gt;&lt;/span&gt;
&lt;br/&gt;

Et pour ceux qui se demandent comment faire changer le pointeur en main, tant pis si ce n&amp;#039;est pas le chapitre je le dis quand même : c&amp;#039;est la propriété &lt;code&gt;buttonMode&lt;/code&gt; valorisée à &lt;code&gt;true&lt;/code&gt; qui produit ça.&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;demo.&lt;span class=&quot;me1&quot;&gt;buttonMode&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;br/&gt;

Je vous laisse trouver, et si vous séchez vous trouverez le code à l&amp;#039;occasion du &lt;a href=&quot;#currentframe_et_totalframe&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:movieclipmethodesproprietes &amp;crarr;&quot; class=&quot;wikilink1&quot;&gt;chapitre suivant&lt;/a&gt;.
&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;les_proprietes_bien_utiles_de_movieclip&quot; id=&quot;les_proprietes_bien_utiles_de_movieclip&quot;&gt;Les propriétés bien utiles de MovieClip&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Puisqu&amp;#039;on peut déplacer la tête lecture sur des images de son choix selon leur numéro ou leur nom d&amp;#039;étiquette, voici une poignée de propriétés auxquelles vous aurez souvent recours dès qu&amp;#039;il s&amp;#039;agira de “se” déplacer sur un scénario.
&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;currentframe_et_totalframe&quot; id=&quot;currentframe_et_totalframe&quot;&gt;currentFrame et totalFrame&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Ces deux propriétés renvoient un &lt;strong&gt;int&lt;/strong&gt; qui vaut pour&lt;br/&gt;

&lt;strong&gt;&lt;code&gt;currentFrame&lt;/code&gt;&lt;/strong&gt; le &lt;strong&gt;numéro de l&amp;#039;image en cours&lt;/strong&gt; de lecture, celle sur laquelle se trouve la tête de lecture à l&amp;#039;instant considéré,&lt;br/&gt;

&lt;strong&gt;&lt;code&gt;totalFrame&lt;/code&gt;&lt;/strong&gt; le &lt;strong&gt;nombre d&amp;#039;images&lt;/strong&gt; du clip en question.&lt;br/&gt;

&lt;br/&gt;

Vous pouvez tester en ajoutant deux traces au code que vous venez d&amp;#039;écrire à l&amp;#039;occasion de l&amp;#039;exercice du dessus :&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;demo.&lt;span class=&quot;kw3&quot;&gt;stop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
demo.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;CLICK&lt;/span&gt;,qdClic&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
demo.&lt;span class=&quot;me1&quot;&gt;buttonMode&lt;/span&gt; = &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;; &lt;span class=&quot;co1&quot;&gt;// pointeur en forme de main au survol&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; qdClic&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me.&lt;span class=&quot;me1&quot;&gt;shiftKey&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// touche majuscule du clavier enfoncée&lt;/span&gt;
		me.&lt;span class=&quot;me1&quot;&gt;currentTarget&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;prevFrame&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// reculer d'une image&lt;/span&gt;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		me.&lt;span class=&quot;me1&quot;&gt;currentTarget&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;nextFrame&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// avancer d'une image&lt;/span&gt;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;image courante : &amp;quot;&lt;/span&gt;+me.&lt;span class=&quot;me1&quot;&gt;currentTarget&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;currentFrame&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;nombre d'images du clip : &amp;quot;&lt;/span&gt;+me.&lt;span class=&quot;me1&quot;&gt;currentTarget&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;totalFrames&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;exercices&quot; id=&quot;exercices&quot;&gt;Exercices&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;defiler_et_boucler&quot; id=&quot;defiler_et_boucler&quot;&gt;Défiler et boucler&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;

Histoire d&amp;#039;illustrer l&amp;#039;utilisation de ces deux propriétés, je vous propose la consigne suivante avec le toujours même clip aux bestioles (ou une autre instance, si ça vous arrange) : quand on &lt;strong&gt;clique, on passe à l&amp;#039;image suivante&lt;/strong&gt; et on revient à la première après la dernière. En gros, &lt;strong&gt;ça boucle&lt;/strong&gt;.&lt;br/&gt;

Bien sûr le code doit fonctionner quelque soit le nombre d&amp;#039;images du clip sans qu&amp;#039;on ait à le modifier, et pour corser la chose - sans quoi c&amp;#039;est trop facile &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_mrgreen.gif&quot; class=&quot;middle&quot; alt=&quot;:mrgreen:&quot; /&gt;- j&amp;#039;ajoute la contrainte de ne &lt;strong&gt;pas utiliser de if&lt;/strong&gt;.&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;br/&gt;

En fait il s&amp;#039;agit d&amp;#039;une seule ligne un peu rusée, mais vous avez déjà rencontré tout ce qu&amp;#039;il faut pour faire &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;130&quot; height=&quot;105&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/bestiolesdefilent.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;130&quot; height=&quot;105&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/bestiolesdefilent.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;

&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;wrap_tip&quot;&gt;
&lt;strong&gt;Indices :&lt;/strong&gt;&lt;br/&gt;

• Il y a peut-être &lt;strong&gt;un piège&lt;/strong&gt;… Ce n&amp;#039;est pas parce qu&amp;#039;on vient de voir &lt;code&gt;nextFrame&lt;/code&gt; et &lt;code&gt;prevFrame&lt;/code&gt; qu&amp;#039;il faut forcément vous jeter dessus ^^&lt;br/&gt;

• Parmi les &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/as3premierspas#les_operateurs_mathematiques&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:as3premierspas&quot;&gt;opérateurs mathématiques&lt;/a&gt; il y en a un qu&amp;#039;on a tort de négliger.
&lt;/div&gt;&lt;div class=&quot;wrap_download&quot;&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/bestiolesdefilent.fla&quot; class=&quot;media mediafile mf_fla&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:movieclipmethodesproprietes:bestiolesdefilent.fla&quot;&gt;sources CS4&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h4&gt;&lt;a name=&quot;tout_petit_jeu&quot; id=&quot;tout_petit_jeu&quot;&gt;Tout petit jeu&lt;/a&gt;&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;425&quot; height=&quot;350&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/sourcescs3.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;425&quot; height=&quot;350&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/sourcescs3.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;
&lt;br/&gt;

Ici ce swf illustre la consigne toute entière : vous savez faire en sorte que la partie démarre ou reprenne via majuscule-clic.&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_help&quot;&gt;
Euhhh… nan, il ne se passe rien quand on a gagné… C&amp;#039;est prématuré pour compter les points &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_sad.gif&quot; class=&quot;middle&quot; alt=&quot;:(&quot; /&gt;
&lt;/div&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;em&gt;C&amp;#039;est une cas de figure où on peut trouver préférable d&amp;#039;écrire le code “dans” le symbole, plutôt qu&amp;#039;associer un écouteur à chaque instance.&lt;/em&gt;&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;MOUSE_DOWN&lt;/span&gt;,explose&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; explose&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;stop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;removeEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;MOUSE_DOWN&lt;/span&gt;,explose&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	ballon.&lt;span class=&quot;kw3&quot;&gt;gotoAndPlay&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;paf&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;div class=&quot;wrap_download&quot;&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/sourcescs3.fla&quot; class=&quot;media mediafile mf_fla&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:movieclipmethodesproprietes:sourcescs3.fla&quot;&gt;les sources CS3&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;currentframelabel_et_currentlabel&quot; id=&quot;currentframelabel_et_currentlabel&quot;&gt;currentFrameLabel et currentLabel&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

En ce qui concerne ces deux propriétés, je ne peux que vous renvoyer à &lt;a href=&quot;http://help.adobe.com/fr_FR/FlashPlatform/reference/actionscript/3/index.html#!flash/display/MovieClip.html#currentFrameLabel&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://help.adobe.com/fr_FR/FlashPlatform/reference/actionscript/3/index.html#!flash/display/MovieClip.html#currentFrameLabel&quot;  rel=&quot;nofollow&quot;&gt;la doc &lt;/a&gt;et attirer votre attention sur le fait qu&amp;#039;elles ne sont disponibles que pour &lt;strong&gt;lecteurs 10 et supérieurs&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
Si l&amp;#039;explication vous reste confuse faites le test suivant :&lt;br/&gt;

image 1 : stop()&lt;br/&gt;

image 2 : une étiquette : “etiquette image 2”&lt;br/&gt;

image 5 : une étiquette : “etiquette image 5”&lt;br/&gt;

&lt;br/&gt;

un bouton sur la scène et ce code associé :&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;bt.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;CLICK&lt;/span&gt;,qdClic&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; qdClic&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;nextFrame&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;currentFrame :           &amp;quot;&lt;/span&gt;+&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;currentFrame&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;currentFrameLabel :      &amp;quot;&lt;/span&gt;+&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;currentFrameLabel&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;currentFrame :           &amp;quot;&lt;/span&gt;+&lt;span class=&quot;kw3&quot;&gt;this&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;currentLabel&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;---&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code trace&quot;&gt;currentFrame :           2
currentFrameLabel :      etiquette image 2
currentFrame :           etiquette image 2
---
currentFrame :           3
currentFrameLabel :      null
currentFrame :           etiquette image 2
---
currentFrame :           4
currentFrameLabel :      null
currentFrame :           etiquette image 2
---
currentFrame :           5
currentFrameLabel :      etiquette image 5
currentFrame :           etiquette image 5
---
currentFrame :           6
currentFrameLabel :      null
currentFrame :           etiquette image 5
---&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;wrap_info&quot;&gt;
&lt;strong&gt;Notez&lt;/strong&gt; qu&amp;#039;elles sont en &lt;strong&gt;lecture seule&lt;/strong&gt;, ce qui implique que vous ne pouvez pas définir des étiquettes d&amp;#039;image dynamiquement (à la volée)
&lt;/div&gt;
&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;retrouver_une_instance_par_son_nom_getchildbyname&quot; id=&quot;retrouver_une_instance_par_son_nom_getchildbyname&quot;&gt;Retrouver une instance par son nom : getChildByName&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Vous le savez, quand on veut (s&amp;#039;) adresser (à) un clip posé sur l&amp;#039;animation, on utilise le nom de l&amp;#039;instance tout bonnement (&lt;code&gt;leClip.play();&lt;/code&gt; par exemple).&lt;br/&gt;

La question qui se pose maintenant c&amp;#039;est comment faire quand on dispose d&amp;#039;une chaine de caractère, pour, par exemple, piloter ballon1 ou ballon2 en reconstituant le nom depuis une variable qui vaudrait le suffixe (le chiffre).&lt;br/&gt;

&lt;br/&gt;

Il ne vous viendrait pas à l&amp;#039;esprit d&amp;#039;écrire :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; suffixe:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; leBallon:&lt;span class=&quot;kw3&quot;&gt;String&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;ballon&amp;quot;&lt;/span&gt;+suffixe
leBallon.&lt;span class=&quot;kw3&quot;&gt;play&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span class=&quot;co1&quot;&gt;// Aïe !! depuis quand la classe String expose-t-elle une méthode play ? O.O&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

C&amp;#039;est la méthode &lt;code&gt;getChildByName&lt;/code&gt; qui renvoie l&amp;#039;objet d&amp;#039;affichage (DisplayObject) correspondant à une chaîne.
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; suffixe:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;getChildByName&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ballon&amp;quot;&lt;/span&gt;+suffixe&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;getChildByName&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ballon&amp;quot;&lt;/span&gt;+suffixe&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code trace&quot;&gt;[object Mv_BallonVole]
ballon1&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_info&quot;&gt;
Notez que s&amp;#039;il n&amp;#039;existe &lt;strong&gt;pas d&amp;#039;instance&lt;/strong&gt; du nom considéré getChildByName renvoie &lt;strong&gt;null&lt;/strong&gt;
&lt;/div&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;erreurs_1118_et_1061&quot; id=&quot;erreurs_1118_et_1061&quot;&gt;Erreurs 1118 et 1061&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Je viens d&amp;#039;illustrer la méthode getChildByName dans un trace et en utilisant la propriété name, si de votre côté vous vous y êtes essayé  avec un play ou un stop vous voilà confronté à l&amp;#039;erreur 1118 ou 1061, très célèbres sur le forum &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

C&amp;#039;est le moment de tirer l&amp;#039;embrouille au clair.&lt;br/&gt;

&lt;br/&gt;

Voilà ce qu&amp;#039;on obtient si on a une instance nommée &lt;code&gt;leBallon&lt;/code&gt; et qu&amp;#039;on a le front d&amp;#039;écrire :&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;getChildByName&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;leBallon&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;play&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;&lt;div class=&quot;wrap_quote wrap_grey&quot;&gt;1061: Appel à la méthode play peut-être non définie, via la référence de type static flash.display:&lt;strong&gt;DisplayObject&lt;/strong&gt; &lt;/div&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Si vous essayez de passer par une variable, c&amp;#039;est pas mieux :&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; b:&lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt;= getChildByName&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;leBallon&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;&lt;div class=&quot;wrap_quote wrap_grey&quot;&gt;1118: Contrainte implicite d&amp;#039;une valeur du type statique flash.display:&lt;strong&gt;DisplayObject&lt;/strong&gt; vers un type peut-être sans rapport flash.display:MovieClip&lt;/div&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

Chaque fois il est question de DisplayObject… De fait si vous &lt;a href=&quot;http://help.adobe.com/fr_FR/FlashPlatform/reference/actionscript/3/index.html#!flash/display/DisplayObjectContainer.html#getChildByName%28%29&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://help.adobe.com/fr_FR/FlashPlatform/reference/actionscript/3/index.html#!flash/display/DisplayObjectContainer.html#getChildByName%28%29&quot;  rel=&quot;nofollow&quot;&gt;consultez la doc&lt;/a&gt;, vous constatez que getChildByName renvoie du DisplayObject.&lt;br/&gt;

&lt;br/&gt;

&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/getchilddoc.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

“Euhh… oui et alors”, grommèle le Ronchon de service.&lt;br/&gt;

&lt;br/&gt;

Eh bien, c&amp;#039;est là qu&amp;#039;il devient nécessaire de comprendre l&amp;#039;arbre d&amp;#039;héritage des classes d&amp;#039;affichage.&lt;br/&gt;

&lt;br/&gt;

Reprenons :
&lt;/p&gt;

&lt;p&gt;
Quand on code en AS3 on utilise des &lt;em&gt;objets&lt;/em&gt; - puisque tout est Objet - et il existe des objets de genre différent : clips, boutons, images bitmap, sons… &lt;br/&gt;

On sait que tous les objets d&amp;#039;un même genre s&amp;#039;utilisent pareil. Je veux dire, on leur applique les mêmes méthodes ou propriétés et - partageant les mêmes caractéristiques et compétences&lt;sup&gt;&lt;a href=&quot;#fn__6&quot; name=&quot;fnt__6&quot; id=&quot;fnt__6&quot; class=&quot;fn_top&quot;&gt;6)&lt;/a&gt;&lt;/sup&gt; - on les classe dans la même catégorie.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Eh bien voilà, le mot est lâché, les objets qui ont le même “mode d&amp;#039;emploi”, sont classés dans la même catégorie qu&amp;#039;on appelle classe.
&lt;/p&gt;

&lt;p&gt;
Attention, une classe c&amp;#039;est plus qu&amp;#039;une catégorie, qu&amp;#039;une étiquette pour identifier un objet, c&amp;#039;est aussi ce qui permet de fabriquer les objets en question. Une classe c&amp;#039;est à la fois un “genre” (on dit type vous vous souvenez) et une usine, une fabrique, un moule…
&lt;/p&gt;

&lt;p&gt;
Les objets de même type sont issus de la même classe (au sens où ils sont fabriqués par la même classe).
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;La classe d&amp;#039;un objet c&amp;#039;est à la fois la catégorie dans laquelle le “ranger” et le moule qui permet de le fabriquer.&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;br/&gt;

Ce qui est pratique, c&amp;#039;est que les classes &lt;strong&gt;héritent&lt;/strong&gt; les unes des autres et voilà comment ça peut se comprendre vite fait pour ce qui nous intéresse (la POO c&amp;#039;est l&amp;#039;objet d&amp;#039;un autre tuto) :&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Ça fonctionne un peu comme dans la vraie vie : il y a des parents et des enfants ; en fait des mères et des filles - puisqu&amp;#039;on parle de classes - et les filles héritent de leur mère, génétiquement pour les humains, “codesquement” pour les classes.&lt;br/&gt;

Comme dans la vie biologique les filles héritent de leur mère certaines caractéristiques et compétences et y ajoutent des facultés propres. Ma fille, par exemple, a hérité de mon caractère et de la couleur de mes yeux, mais en plus elle est sportive (caractéristique qui me fait parfaitement défaut &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;). En AS3 c&amp;#039;est pareil si ce n&amp;#039;est qu&amp;#039;il est question de propriétés et de méthodes.&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;l_arbre_d_heritage_des_classes_d_affichage&quot; id=&quot;l_arbre_d_heritage_des_classes_d_affichage&quot;&gt;L&amp;#039;arbre d&amp;#039;héritage des classes d&amp;#039;affichage&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Les classes qui nous intéressent ici, ce sont &lt;strong&gt;les classes des objets affichables&lt;/strong&gt;&lt;sup&gt;&lt;a href=&quot;#fn__7&quot; name=&quot;fnt__7&quot; id=&quot;fnt__7&quot; class=&quot;fn_top&quot;&gt;7)&lt;/a&gt;&lt;/sup&gt;.
&lt;/p&gt;

&lt;p&gt;
D&amp;#039;un point de vue AS3 voilà comment se présente l&amp;#039;arbre &lt;del&gt;généalogique&lt;/del&gt; d&amp;#039;héritage des classes d&amp;#039;affichage :
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/_detail/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/arbreheritage.png?id=tutoriaux%3Aflashplatform%3Aprogrammation%3Ageneralites%3Amovieclipmethodesproprietes&quot; class=&quot;media&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:movieclipmethodesproprietes:arbreheritage.png&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/arbreheritage.png?w=501&amp;amp;h=235&quot; class=&quot;media&quot; alt=&quot;&quot; width=&quot;501&quot; height=&quot;235&quot; /&gt;&lt;/a&gt;&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_important&quot;&gt;
&lt;em&gt;&lt;strong&gt;Attention métonymie&lt;/strong&gt;&lt;br/&gt;

Souvent pour aller vite on opère un glissement sémantique qui nous fait parler de l&amp;#039;objet issu d&amp;#039;une classe en utilisant le nom de la classe elle même. Comme lorsqu&amp;#039;on dit boire un verre ou manger un cornet de frites. Ce n&amp;#039;est pas le verre qu&amp;#039;on boit (mâche ?&lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_mrgreen.gif&quot; class=&quot;middle&quot; alt=&quot;:mrgreen:&quot; /&gt;) mais bien son contenu, de même que vous n&amp;#039;avalez pas le carton du cornet de frites mais les frites elles mêmes. 
C&amp;#039;est ce que je fais ici pour les besoins de la métaphore, quand je dis qu&amp;#039;un objet hérite certaines de ses propriétés de son parent, c&amp;#039;est pour aller vite, c&amp;#039;est bien la classe &lt;/em&gt;dont il est issu&lt;em&gt; qui hérite de sa classe mère.&lt;/em&gt;
&lt;/div&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
• L&amp;#039;aïeule c&amp;#039;est &lt;strong&gt;DisplayObject&lt;/strong&gt;, qui est la classe dont héritent tous les objets affichables, qu&amp;#039;il s&amp;#039;agisse d&amp;#039;une image (Bitmap), d&amp;#039;un objet de dessin (Shape), d&amp;#039;instances de symboles (Sprite, SimpleButton, MovieClip), ou même de chargeurs d&amp;#039;images externes (Loader), de vidéos (Video) ou encore de champs texte (TextField).&lt;br/&gt;

Si vous consultez la doc vous trouverez toutes les méthodes et propriétés qui s&amp;#039;appliquent aux objets d&amp;#039;affichage quels qu&amp;#039;ils soient. &lt;code&gt;name&lt;/code&gt;, par exemple, ou encore x et y&lt;sup&gt;&lt;a href=&quot;#fn__8&quot; name=&quot;fnt__8&quot; id=&quot;fnt__8&quot; class=&quot;fn_top&quot;&gt;8)&lt;/a&gt;&lt;/sup&gt;&lt;br/&gt;

&lt;br/&gt;

• Ensuite il y a les enfants de DisplayObject, au nombre des quels les objets interactifs (&lt;strong&gt;InteractiveObject&lt;/strong&gt;), qui non contents d&amp;#039;être affichables, d&amp;#039;avoir des coordonnées et tout ce qu&amp;#039;on sait, permettent l&amp;#039;interaction. Dit autrement, ils diffusent les célèbres “événements souris” : &lt;strong&gt;&lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/addeventlistener#les_evenements_mouseevent&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:addeventlistener&quot;&gt;MouseEvent&lt;/a&gt;&lt;/strong&gt;&lt;br/&gt;

&lt;br/&gt;

• Les enfants des objets interactifs sont les boutons, les champ texte, et les objets d&amp;#039;affichage pouvant en contenir d&amp;#039;autres (&lt;strong&gt;DisplayObjectContainer&lt;/strong&gt;).&lt;br/&gt;

&lt;br/&gt;

• Héritant de DisplayObjectContainer, vous trouvez la classe Loader (pour charger des fichiers image), la classe &lt;strong&gt;Sprite&lt;/strong&gt; (une seule image donc pas de scénario) et la classe Stage (la scène, qui pour le coup est un conteneur).&lt;br/&gt;

&lt;br/&gt;

• Enfin, tout en bas de l&amp;#039;arbre d&amp;#039;héritage, l&amp;#039;objet le plus aboutis de l&amp;#039;évolution : le (fameux) &lt;strong&gt;MovieClip&lt;/strong&gt; qui est donc : un objet d&amp;#039;affichage avec toutes ses méthodes et propriétés, interactif, pouvant en contenir d&amp;#039;autres, et équipé d&amp;#039;un scénario. &lt;br/&gt;

&lt;br/&gt;

Pour reprendre ma métaphore familiale, ça dit de qui l&amp;#039;enfant en question “tient” ses caractéristiques (il a le don de la musique de sa grand mère, la main verte de sa bisaïeule mais ses talents de cuisiniers il ne les doit qu&amp;#039;à lui). &lt;br/&gt;
 
&lt;br/&gt;

&lt;a href=&quot;http://forums.mediabox.fr/wiki/_detail/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/arbreheritagecomplet.png?id=tutoriaux%3Aflashplatform%3Aprogrammation%3Ageneralites%3Amovieclipmethodesproprietes&quot; class=&quot;media&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:movieclipmethodesproprietes:arbreheritagecomplet.png&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/arbreheritagecomplet.png?w=501&amp;amp;h=235&quot; class=&quot;media&quot; alt=&quot;&quot; width=&quot;501&quot; height=&quot;235&quot; /&gt;&lt;/a&gt;&lt;br/&gt;

&lt;em&gt;cliquer pour grossir&lt;/em&gt;&lt;br/&gt;

&lt;br/&gt;

Certaines classes (type d&amp;#039;objets) ne sont pas instanciables, comprendre elles ne peuvent pas générer un objet (via le mot clé new, on y arrive très bientôt), je ne vais pas pouvoir fabriquer un objet de type DisplayObjet “tout court”. Ces classes n&amp;#039;existent que pour transmettre à leur descendance les méthodes et propriétés qui leurs seront communes.&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_tip&quot;&gt;
Cet arbre d&amp;#039;héritage explique les parenthèses qu&amp;#039;on trouve dans le volet latéral du panneau action à côté de certaines méthodes ou propriétés. Elles précisent pour chacune, la classe “dont elle proviennent”.&lt;br/&gt;

&lt;br/&gt;

Ici j&amp;#039;ai développé MovieClip, depuis flash/DisplayObject :&lt;br/&gt;

&lt;a href=&quot;http://forums.mediabox.fr/wiki/_detail/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/propmovieclip.png?id=tutoriaux%3Aflashplatform%3Aprogrammation%3Ageneralites%3Amovieclipmethodesproprietes&quot; class=&quot;media&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:movieclipmethodesproprietes:propmovieclip.png&quot;&gt;&lt;img src=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/propmovieclip.png&quot; class=&quot;media&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br/&gt;

&lt;/div&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Oui, bon, ronchonne le toujours même, et quel rapport avec l&amp;#039;erreur ?&lt;br/&gt;

&lt;br/&gt;

J&amp;#039;y viens :&lt;br/&gt;

&lt;br/&gt;

Une dernière chose à savoir en ce qui concerne l&amp;#039;héritage, c&amp;#039;est que puisque les enfants savent faire tout comme leurs parent et mieux, &lt;strong&gt;partout où on attend la mère on peut envoyer la fille&lt;/strong&gt;&lt;sup&gt;&lt;a href=&quot;#fn__9&quot; name=&quot;fnt__9&quot; id=&quot;fnt__9&quot; class=&quot;fn_top&quot;&gt;9)&lt;/a&gt;&lt;/sup&gt; (puisqu&amp;#039;elle sait assurément faire la même chose que sa mère).
&lt;/p&gt;

&lt;p&gt;
 
Quand on dit de la méthode getChildByName qu&amp;#039;elle renvoie un objet de type DisplayObject, il faut comprendre “au minimum”.&lt;br/&gt;

Dans notre exemple, on reçoit un clip, c&amp;#039;est bien un DisplayObject (par ascendance), mais on tente d&amp;#039;utiliser la méthode play, qui n&amp;#039;est pas une méthode de la classe en question, le compilateur lui, n&amp;#039;en sait rien si c&amp;#039;est un clip ou un loader ou un TextField ou n&amp;#039;importe quel autre objet d&amp;#039;affichage, et il râle que &lt;em&gt;la méthode play n&amp;#039;existe pas (peut-être non définie), via la la classe DisplayObject&lt;/em&gt;, normal.&lt;br/&gt;

&lt;br/&gt;

Oui mais voilà, nous, dans ce contexte, parce que c&amp;#039;est nous humains qui programmons, on le sait que “leBallon” c&amp;#039;est un clip. On en est sûr, là, voilà !&lt;br/&gt;

On va donc “rassurer Flash”, lui dire “écoute gars, je suis sûre de mon coup, cet objet que je reçois est un MovieClip”.&lt;br/&gt;

En langage Objet on dit qu&amp;#039;on &lt;strong&gt;transtype&lt;/strong&gt; (par delà le type) et on s&amp;#039;y prend comme suit :&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;getChildByName&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;leBallon&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;play&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;co1&quot;&gt;// Ou :&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; ballon:&lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt;=&lt;span class=&quot;kw3&quot;&gt;MovieClip&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;getChildByName&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;leBallon&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
ballon.&lt;span class=&quot;kw3&quot;&gt;play&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Et du coup vous comprenez pourquoi l&amp;#039;exemple que j&amp;#039;avais pris avec la propriété name fonctionnait, lui. Eh oui, &lt;code&gt;name&lt;/code&gt; est une propriété de la classe DisplayObject&lt;sup&gt;&lt;a href=&quot;#fn__10&quot; name=&quot;fnt__10&quot; id=&quot;fnt__10&quot; class=&quot;fn_top&quot;&gt;10)&lt;/a&gt;&lt;/sup&gt;.&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;exercice&quot; id=&quot;exercice&quot;&gt;Exercice&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Maintenant que vous savez piloter la tête de lecture d&amp;#039;une instance dont vous connaissez le nom, vous pouvez sans doute, armés de vos récentes connaissances sur les champs texte, lâcher le ballon de votre choix… &lt;br/&gt;

&lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;640&quot; height=&quot;480&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/lacheballon.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;640&quot; height=&quot;480&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/lacheballon.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_tip&quot;&gt;
Remarquez qu&amp;#039;on peut saisir la couleur du ballon en majuscule, minuscule, voire avec l&amp;#039;initiale seulement en majuscule, ou un peu comme on veut (rOuGe, ça marche aussi).
&lt;/div&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_download&quot;&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes/sourcescs3.fla&quot; class=&quot;media mediafile mf_fla&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:movieclipmethodesproprietes:sourcescs3.fla&quot;&gt;Les sources CS3&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;conclusion_provisoire&quot; id=&quot;conclusion_provisoire&quot;&gt;Conclusion (provisoire)&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Vous l&amp;#039;avez constaté : il existe encore nombre de méthodes et propriétés, dont certaines absolument primordiales. On va les voir, mais pas tout de suite.&lt;br/&gt;

Ce n&amp;#039;est pas que je tienne à ménager un suspens insoutenable &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt; c&amp;#039;est que pour en comprendre au mieux l&amp;#039;intérêt et la mise en œuvre on va avoir besoin de quelques billes supplémentaires, à commencer par les structures de contrôle répétitives (les boucles).&lt;br/&gt;

&lt;br/&gt;

Et c&amp;#039;est par là [lien à venir] que ça se passe…
A tout de suite, donc ! &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_smile.gif&quot; class=&quot;middle&quot; alt=&quot;:)&quot; /&gt; 
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;footnotes&quot;&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__1&quot; id=&quot;fn__1&quot; name=&quot;fn__1&quot; class=&quot;fn_bot&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; 
tout ce qu&amp;#039;on peut en faire (méthodes) et tout ce qu&amp;#039;on peut en savoir (propriétés) &lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__2&quot; id=&quot;fn__2&quot; name=&quot;fn__2&quot; class=&quot;fn_bot&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt; 
Graphics oui, mais c&amp;#039;est autre chose&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__3&quot; id=&quot;fn__3&quot; name=&quot;fn__3&quot; class=&quot;fn_bot&quot;&gt;3)&lt;/a&gt;&lt;/sup&gt; 
potentiellement&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__4&quot; id=&quot;fn__4&quot; name=&quot;fn__4&quot; class=&quot;fn_bot&quot;&gt;4)&lt;/a&gt;&lt;/sup&gt; 
image qui contient le clip, bien sûr…&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__5&quot; id=&quot;fn__5&quot; name=&quot;fn__5&quot; class=&quot;fn_bot&quot;&gt;5)&lt;/a&gt;&lt;/sup&gt; 
F6 au besoin&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__6&quot; id=&quot;fn__6&quot; name=&quot;fn__6&quot; class=&quot;fn_bot&quot;&gt;6)&lt;/a&gt;&lt;/sup&gt; 
propriétés, méthodes&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__7&quot; id=&quot;fn__7&quot; name=&quot;fn__7&quot; class=&quot;fn_bot&quot;&gt;7)&lt;/a&gt;&lt;/sup&gt; 
qu&amp;#039;on peut afficher, donc voir&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__8&quot; id=&quot;fn__8&quot; name=&quot;fn__8&quot; class=&quot;fn_bot&quot;&gt;8)&lt;/a&gt;&lt;/sup&gt; 
effectivement, si un truc peut être affiché, il faut bien qu&amp;#039;on puisse en préciser coordonnées…&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__9&quot; id=&quot;fn__9&quot; name=&quot;fn__9&quot; class=&quot;fn_bot&quot;&gt;9)&lt;/a&gt;&lt;/sup&gt; 
celle-là je l&amp;#039;ai volée à T.Imbert &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_smile.gif&quot; class=&quot;middle&quot; alt=&quot;:)&quot; /&gt; &lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__10&quot; id=&quot;fn__10&quot; name=&quot;fn__10&quot; class=&quot;fn_bot&quot;&gt;10)&lt;/a&gt;&lt;/sup&gt; 
hé hé c&amp;#039;est que je m&amp;#039;étais appliquée de l&amp;#039;exemple &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt; &lt;/div&gt;
&lt;/div&gt;
</description>
            <author>Nataly</author>
        <category>tutoriaux:flashplatform:programmation:generalites</category>
            <pubDate>Tue, 21 Feb 2012 15:49:10 +0200</pubDate>
        </item>
        <item>
            <title>Structures de contrôle : If</title>
            <link>http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/structuredecontrole</link>
            <description>
&lt;h1&gt;&lt;a name=&quot;structures_de_controle_if&quot; id=&quot;structures_de_controle_if&quot;&gt;Structures de contrôle : If&lt;/a&gt;&lt;/h1&gt;&lt;noscript class=&quot;datambplugin_pageinfo&quot;&gt;Activez JavaScript pour une utilisation optimale.&lt;/noscript&gt;
&lt;div id=&quot;datambplugin_pageinfo&quot;&gt;&lt;div id=&quot;pageinfo__header&quot;&gt;&lt;span&gt;Par Nataly, le 21 mai 2011&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/as3premierspas&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:as3premierspas&quot;&gt;Variables, fonctions, syntaxe&lt;/a&gt;&lt;br/&gt;

• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/parenthese&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:parenthese&quot;&gt;Objets, méthodes, propriétés…&lt;/a&gt;&lt;br/&gt;

• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/addeventlistener&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:addeventlistener&quot;&gt;Clics et événements souris sur les boutons et les clips&lt;/a&gt;&lt;br/&gt;

• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/stringchamptexte&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:stringchamptexte&quot;&gt;Champs texte et objet String&lt;/a&gt;&lt;br/&gt;

• &lt;strong&gt;Structures de contrôle alternatives : if (ici)&lt;/strong&gt;&lt;br/&gt;

• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/movieclipmethodesproprietes&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:movieclipmethodesproprietes&quot;&gt;MovieClip : manipuler&lt;/a&gt;&lt;br/&gt;

• Structures de contrôle alternatives : switch&lt;br/&gt;

• Structures de contrôle répétitives : for - while&lt;br/&gt;

• Liste d&amp;#039;affichage, gestion dynamique des objets&lt;br/&gt;

• &lt;a href=&quot;http://forums.mediabox.fr/wiki/tutoriaux/flashplatform/programmation/generalites/tableaux&quot; class=&quot;wikilink1&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:tableaux&quot;&gt;Les tableaux&lt;/a&gt;&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;structures_de_controle_qu_est-ce_que_c_est&quot; id=&quot;structures_de_controle_qu_est-ce_que_c_est&quot;&gt;Structures de contrôle, qu&amp;#039;est-ce que c&amp;#039;est ?&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Comme leur nom l&amp;#039;indique elles sont destinées à contrôler l&amp;#039;exécution du code. &lt;br/&gt;

&lt;br/&gt;

En AS elles sont de deux types : répétitives ou alternatives.&lt;br/&gt;

A peine si je développe, la terminologie est très parlante : les premières permettent d&amp;#039;exécuter la ou les mêmes lignes plusieurs fois, couramment on parle de boucles ; les secondes permettent d&amp;#039;exécuter un bloc de code ou un autre selon les circonstances, ce sont par exemple les fameux if, et c&amp;#039;est par là que nous allons attaquer.
&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;la_syntaxe&quot; id=&quot;la_syntaxe&quot;&gt;La syntaxe&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

 A la fin du mois, s&amp;#039;il me reste des sous je m&amp;#039;offrirai de jolis escarpins (messieurs, remplacez par console de jeu ou accessoire moto &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_mrgreen.gif&quot; class=&quot;middle&quot; alt=&quot;:mrgreen:&quot; /&gt;)&lt;br/&gt;

Ce type de situation, on en gère à longueur de vie et on s&amp;#039;en sort très bien (quoique). La fin de mois arrivée, on regarde le solde de son compte, selon qu&amp;#039;il est positif (supérieur à zéro) &lt;em&gt;ou non&lt;/em&gt;, on défouraille &lt;em&gt;ou pas&lt;/em&gt; la carte bleue. Quelque fois on a prévu une alternative : ce week-end s&amp;#039;il fait beau j&amp;#039;irai à la piscine sinon j&amp;#039;irai au cinéma. Pareil ça nous prend deux secondes de consulter la météo et de foncer à un endroit ou l&amp;#039;autre selon les prévisions.&lt;br/&gt;

&lt;br/&gt;

En code c&amp;#039;est le même principe, on pose une condition et on prévoit ce qui sera fait selon qu&amp;#039;elle sera vérifiée ou pas.&lt;br/&gt;

&lt;br/&gt;

Le plus souvent on présente la syntaxe comme suit :&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;condition&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
     &lt;span class=&quot;co1&quot;&gt;// instruction si condition vérifiée&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;// instruction si condition pas vérifiée&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

Pour peu qu&amp;#039;on soit suffisamment anglophone pour savoir que &lt;font color=&quot;#a41111&quot;&gt;if&lt;/font&gt; signifie &lt;font color=&quot;#a41111&quot;&gt;si&lt;/font&gt; et &lt;font color=&quot;#0000FF&quot;&gt;else sinon&lt;/font&gt;, ça se lit quasi couramment. &lt;br/&gt;

Juste pour le plaisir de traduire en code mon exemple à la noix d&amp;#039;introduction, imaginons une variable soldeDeMonCompte, et posons comme consigne :&lt;br/&gt;

Si soldeDeMonCompte supérieur à 0 on trace “je me fais un cadeau” sinon on trace “dommage”. 
&amp;#039;Supérieur à&amp;#039; s&amp;#039;écrit &amp;gt; en AS (et dans tous les langages que je connaisse), ça nous donne donc.
&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; soldeDeMonCompte:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;//oui bon, on peut rêver… :D&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;soldeDeMonCompte &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; 0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;je me fais un cadeau&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;dommage&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

Changez la valeur de soldeDeMonCompte pour une valeur négative et constatez que dans la fenêtre de sortie c&amp;#039;est dommage qui s&amp;#039;écrit.&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_tip&quot;&gt;
&lt;strong&gt;La séquence de frappe magique :&lt;/strong&gt;&lt;br/&gt;

Si vous tapez successivement la touche esc (échappe) puis i puis f vous aurez le bonheur de voir toute la structure if s&amp;#039;écrire, parenthèses et accolades, vous n&amp;#039;avez plus qu&amp;#039;à “remplir”&lt;br/&gt;

Et… Tada ! chaque fois plus fort : si vous posez le curseur juste avant l&amp;#039;accolade fermante puis tapez [esc e l] eh bien c&amp;#039;est la branche else qui vient prendre place &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;
&lt;/div&gt;
&lt;p&gt;

&lt;br/&gt;

Jusque là ça va j&amp;#039;imagine, débarrassons nous donc de la liste des opérateurs de comparaison et on aura tout ce qu&amp;#039;il faut pour avancer bien tranquillement :&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;
&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 leftalign&quot;&gt; En français                  &lt;/th&gt;&lt;th class=&quot;col1 leftalign&quot;&gt; AS   &lt;/th&gt;&lt;th class=&quot;col2 rightalign&quot;&gt;                                                          &lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; Inférieur (au sens strict)   &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; &amp;lt;    &lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;                                                          &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; Inférieur ou égal            &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; &amp;lt; =  &lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;                                                          &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; Supérieur (au sens strict)   &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; &amp;gt;    &lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;                                                          &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; Supérieur ou égal            &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; &amp;gt;=   &lt;/td&gt;&lt;td class=&quot;col2 rightalign&quot;&gt;                                                          &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; Egal                         &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; ==   &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; &lt;font color=&quot;#A41111&quot;&gt;Piège&lt;/font           &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; Différent                    &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; !=   &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; ! se lit not (en anglais) soit &amp;#039;non&amp;#039; ou &amp;#039;pas&amp;#039; (pas égal) &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;
&lt;br/&gt;

Rien de compliqué mais attention &lt;strong&gt;un piège quand même : l&amp;#039;opérateur d&amp;#039;égalité&lt;/strong&gt;.&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;ne_confondez_pas_et&quot; id=&quot;ne_confondez_pas_et&quot;&gt;Ne confondez pas = et ==&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

En effet l&amp;#039;opérateur &lt;strong&gt;= (égal tout court)&lt;/strong&gt; est un opérateur d&amp;#039;&lt;strong&gt;affectation&lt;/strong&gt;, il permet d&amp;#039;affecter (attribuer) une valeur à une variable. Il ne compare rien du tout.&lt;br/&gt;

&lt;br/&gt;

Pour &lt;strong&gt;comparer&lt;/strong&gt; deux variables (ou données) on utilise &lt;strong&gt;==&lt;/strong&gt; (égal égal).&lt;br/&gt;

&lt;br/&gt;

Par exemple pour vérifier qu&amp;#039;une variable (String) vaut précisément une chaine de caractères (mettons &amp;#039;bonjour&amp;#039; pour faire original), on écrira :&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; uneChaine:&lt;span class=&quot;kw3&quot;&gt;String&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;bonjour&amp;quot;&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;uneChaine==&lt;span class=&quot;st0&quot;&gt;&amp;quot;bonjour&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;la variable vaut 'bonjour'&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;la variable vaut autre chose : &amp;quot;&lt;/span&gt;+uneChaine&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

Vous constatez qu&amp;#039;il suffit que vous écriviez :&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; uneChaine:&lt;span class=&quot;kw3&quot;&gt;String&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Bonjour&amp;quot;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;

… pour que l&amp;#039;égalité ne soit pas reconnue.

&lt;/p&gt;
&lt;pre class=&quot;code trace&quot;&gt;la variable vaut autre chose : Bonjour&lt;/pre&gt;
&lt;p&gt;

Ça ne vous surprend pas, vous savez depuis longtemps que lettre majuscule ou minuscule ce n&amp;#039;est pas du tout la même chose pour AS (lien à venir).&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Oui mais alors pourquoi ça marche quelque fois ? récrimine-t-on dans le fond.&lt;br/&gt;

D&amp;#039;abord, ça ne marche jamais. Au pire ça laisse croire, si on a la malchance de multiplier des tests sournois…&lt;br/&gt;

Bon d&amp;#039;accord, je vous expliquerai, &lt;a href=&quot;#attention_conversion_implicite&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:structuredecontrole &amp;crarr;&quot; class=&quot;wikilink1&quot;&gt;mais tout à l&amp;#039;heure&lt;/a&gt;, il vaut mieux ne pas perdre le fil et retenir le principal : l&amp;#039;opérateur de comparaison d&amp;#039;&lt;b&gt;&lt;font color=&quot;#A41111&quot;&gt;égalité c'est ==&lt;/font&gt;&lt;/b&gt;.&lt;br/&gt;

&lt;br/&gt;

Et c&amp;#039;est le moment d&amp;#039;utiliser nos toutes fraîches connaissances sur les champs texte (lien à venir) pour jouer à en vérifier le contenu.&lt;br/&gt;

&lt;br/&gt;

&lt;strong&gt;Prenons l&amp;#039;alibi de vérifier un mot de passe.&lt;/strong&gt;
&lt;br/&gt;

• Posons sur la scène un champ texte (outil texte, caractéristique “texte de saisie” dans le panneau de propriétés) et nommons le &lt;code&gt;txtSaisie&lt;/code&gt;.&lt;br/&gt;

• Posons un autre champ texte, dynamique cette fois, pour causer à l&amp;#039;utilisateur (&lt;code&gt;txtSortie&lt;/code&gt;).&lt;br/&gt;

• Installons un bouton (&lt;code&gt;btTest&lt;/code&gt;, par exemple)
&lt;br/&gt;

On décide arbitrairement d&amp;#039;un mot de passe (sésame), et je vous laisse écrire les quelques lignes qui traceront dans la fenêtre de sortie “OK pour la suite” quand le mot de passe saisi est correct, et “Mot de passe incorrect” dans &lt;code&gt;txtSortie&lt;/code&gt; dans le cas contraire (au clic sur le bouton, bien sûr).&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;
 
&lt;strong&gt;Une possibilité&lt;/strong&gt; :&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;btTest.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;CLICK&lt;/span&gt;, test&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; test&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;txtSaisie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;sésame&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		txtSortie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Mot de passe incorrect&amp;quot;&lt;/span&gt;;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;OK pour la suite&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
		&lt;span class=&quot;co1&quot;&gt;// suite du traitement potentiellement long&lt;/span&gt;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;strong&gt;une autre&lt;/strong&gt; :&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;btTest.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;CLICK&lt;/span&gt;, test&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; test&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;txtSaisie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;==&lt;span class=&quot;st0&quot;&gt;&amp;quot;sésame&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;OK pour la suite&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
		&lt;span class=&quot;co1&quot;&gt;// suite du traitement potentiellement long&lt;/span&gt;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		txtSortie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Mot de passe incorrect&amp;quot;&lt;/span&gt;;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;else_facultatif&quot; id=&quot;else_facultatif&quot;&gt;Else facultatif&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Et c&amp;#039;est là qu&amp;#039;il devient urgent de se débarrasser du else, pour le moins de se mettre bien d&amp;#039;accord que la branche else est facultative.&lt;br/&gt;

&lt;br/&gt;

Si le mot de passe est mauvais on ne fait rien (si ce n&amp;#039;est prévenir l&amp;#039;utilisateur), s&amp;#039;il est bon on se lance dans les grandes manœuvres, a-t-on dit. On risque donc de se retrouver avec de nombreuses lignes dans une des branches de la structure de contrôle.&lt;br/&gt;

Ce n&amp;#039;est pas mal en soi, mais fort peu lisible, et d&amp;#039;autant moins qu&amp;#039;on risque d&amp;#039;avoir recours à de nouveaux tests, et à imbriquer des if dans des else…&lt;br/&gt;

&lt;br/&gt;

Sachez qu&amp;#039;on peut éviter ça, la branche else est facultative. On peut se contenter de penser : si le mot de passe n&amp;#039;est pas bon je préviens l&amp;#039;utilisateur et j&amp;#039;arrête tout.&lt;br/&gt;

Vous vous en souvenez peut-être (lien à venir) c&amp;#039;est le mot return qui permet d&amp;#039;interrompre l&amp;#039;exécution d&amp;#039;un bloc de code.&lt;br/&gt;
 
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; test&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;txtSaisie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;sésame&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		txtSortie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Mot de passe incorrect&amp;quot;&lt;/span&gt;;
                &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;; &lt;span class=&quot;co1&quot;&gt;// on sort de la fonction le reste du code n'est pas exécuté&lt;/span&gt;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; 
	&lt;span class=&quot;co1&quot;&gt;// un traitement potentiellement long	&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

Et puis pour ceux qui exigent encore plus de lisibilité, vous pouvez tout écrire sur la même ligne :

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; test&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;txtSaisie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;sésame&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; txtSortie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Mot de passe incorrect&amp;quot;&lt;/span&gt;; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;// un traitement potentiellement long	&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;em&gt;Notez que dans ce cas on peut se passer des accolades et qu&amp;#039;il est indispensable de séparer les instruction par un point-virule.&lt;/em&gt;&lt;br/&gt;

&lt;br/&gt;

Moi je n&amp;#039;aime pas du tout, ne serait-ce que parce que ça proscrit l&amp;#039;utilisation de la mise en forme automatique (depuis Flash), mais vous risquez de le rencontrer, n&amp;#039;en soyez pas surpris&lt;sup&gt;&lt;a href=&quot;#fn__1&quot; name=&quot;fnt__1&quot; id=&quot;fnt__1&quot; class=&quot;fn_top&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt;.&lt;br/&gt;

&lt;br/&gt;

Si ça vous perturbe, oubliez : je resterai sur la bonne vieille syntaxe standard (et auto-formatable&lt;sup&gt;&lt;a href=&quot;#fn__2&quot; name=&quot;fnt__2&quot; id=&quot;fnt__2&quot; class=&quot;fn_top&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt;)
&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_info&quot;&gt;
Bien sûr l&amp;#039;histoire du mot de passe, c&amp;#039;est un alibi à s&amp;#039;entrainer. Dans la réalité il est vraiment rare que le mot de passe soit stocké en dur, et le serait-il que pour des questions de sécurité on complique un peu les choses &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;&lt;br/&gt;

Notez malgré tout que c&amp;#039;est le même principe qui est utilisé pour vérifier qu&amp;#039;un champ texte n&amp;#039;est pas vide avant d&amp;#039;en traiter le contenu, ce qui n&amp;#039;est plus du tout de l&amp;#039;ordre de l&amp;#039;alibi.
&lt;/div&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;identifier_les_champs_vides&quot; id=&quot;identifier_les_champs_vides&quot;&gt;identifier les champs vides&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Un champ texte vide contient une chaine vide. &lt;br/&gt;

Une chaine, on l&amp;#039;exprime en entre guillemets.&lt;br/&gt;

Vide c&amp;#039;est rien, et rien entre guillemets ça donne &lt;code&gt;””&lt;/code&gt; (guillemets guillemets) &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;&lt;br/&gt;

Vous pouvez donc écrire :&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; test&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;txtSaisie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;==&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
		txtSortie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Saisissez quelque chose&amp;quot;&lt;/span&gt;;
                &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;; &lt;span class=&quot;co1&quot;&gt;// on sort de la fonction le reste du code n'est pas exécuté&lt;/span&gt;
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; 
	&lt;span class=&quot;co1&quot;&gt;// suite du traitement&lt;/span&gt;
        &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;tout va bien on continue&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;	
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

…voire : &lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; test&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;txtSaisie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;==&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; txtSortie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Saisissez quelque chose&amp;quot;&lt;/span&gt;; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;;
&amp;nbsp;
	&lt;span class=&quot;co1&quot;&gt;// suite du traitement&lt;/span&gt;
        &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;tout va bien on continue&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;	
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Et même si j&amp;#039;ai dit que je n&amp;#039;aime pas bien la syntaxe sur une ligne, force est de reconnaitre que pour vérifier que tous les champs requis d&amp;#039;un formulaire sont remplis ce n&amp;#039;est pas si mal (souvent femme varie, il faut vous y faire &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_razz.gif&quot; class=&quot;middle&quot; alt=&quot;:-P&quot; /&gt;). Imaginez par exemple une poignée de champs : nom, prénom, pseudo, mot de passe… &lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; enregistrement&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;txtNom.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;==&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;     txtSortie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Le champ nom ne peut être vide&amp;quot;&lt;/span&gt;; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;txtPrénom.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;==&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  txtSortie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Le champ prénom ne peut être vide&amp;quot;&lt;/span&gt;; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;txtPseudo.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;==&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  txtSortie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Le champ pseudonyme ne peut être vide&amp;quot;&lt;/span&gt;; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;txtMdP1.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;==&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;     txtSortie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Le champ mot de passe ne peut être vide&amp;quot;&lt;/span&gt;; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;; 
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;txtMdP1.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;= txtMdP2.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
              txtSortie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Attention à vérification du mot de passe&amp;quot;&lt;/span&gt;;
              txtMdP1.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;; &lt;span class=&quot;co1&quot;&gt;// vider les champs mot de passe pour forcer une nouvelle saisie&lt;/span&gt;
              txtMdP2.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;; 
              &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;// suite du traitement&lt;/span&gt;
        &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;tout va bien on continue&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;	
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;span class=&quot;wrap_info&quot;&gt;
&lt;em&gt;Ici j&amp;#039;ai imaginé deux champs de saisie pour le mot de passe, le deuxième étant destiné à éviter les fautes de frappe.&lt;/em&gt;
&lt;/span&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;else_if&quot; id=&quot;else_if&quot;&gt;else if&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Voilà une branche encore plus facultative que le “else tout court”. Je veux dire que quand on en arrive à une structure empilant les else if on peut souvent changer son fusil d&amp;#039;épaule. Mais bon, puisqu&amp;#039;il faut en parler, faisons le (dure, ma vie).&lt;br/&gt;

&lt;br/&gt;

Else if en anglais, &lt;em&gt;sinon si&lt;/em&gt; en français. Vous pourrez ajouter successivement autant de conditions à vérifier que vous le souhaitez, en ajoutant simplement les unes sous les autres des branches qui respectent cette construction.

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;condition&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;//instruction(s)&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;test&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span class=&quot;co1&quot;&gt;//instruction(s) si test vérifié&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;test1&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span class=&quot;co1&quot;&gt;//instruction(s) si test1 vérifié&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;test2&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span class=&quot;co1&quot;&gt;//instruction(s) si test2 vérifié&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;test3&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span class=&quot;co1&quot;&gt;//instruction(s) si test3 vérifié&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;test4&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span class=&quot;co1&quot;&gt;//instruction(s) si test4 vérifié&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;test5&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span class=&quot;co1&quot;&gt;//instruction(s) si test5 vérifié&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;test6&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span class=&quot;co1&quot;&gt;//instruction(s) si test6 vérifié&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;test7&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span class=&quot;co1&quot;&gt;//instruction(s) si test7 vérifié&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span class=&quot;co1&quot;&gt;//instruction(s) dans tous les autres cas&lt;/span&gt;
   &lt;span class=&quot;co1&quot;&gt;// cette branche est bien sûr facultative&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

Aussitôt qu&amp;#039;une condition est vérifiée les instructions de la branche considérée sont exécutées &lt;strong&gt;les branches suivantes sont ignorées&lt;/strong&gt;.&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; laValeur:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt; = &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;laValeur &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;40&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;inf à 40&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;laValeur&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;inf ou égal 100&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;laValeur==&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;égal 100&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;dans else&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code trace&quot;&gt;inf ou égal 100&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Et vous pouvez aussi tester des choses très différentes :&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; laValeur:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt; = &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; uneChaine:&lt;span class=&quot;kw3&quot;&gt;String&lt;/span&gt; = &lt;span class=&quot;st0&quot;&gt;&amp;quot;bonjour&amp;quot;&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;laValeur &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;40&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;inf à 40&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;uneChaine==&lt;span class=&quot;st0&quot;&gt;&amp;quot;bonjour&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;la chaine vaut bonjour&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;laValeur==&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;égal 100&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;dans else&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code trace&quot;&gt;la chaine vaut bonjour&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

Vraiment, je ne m&amp;#039;étends pas sur le thème, très vite on va rencontrer la structure switch qui remplace avantageusement l&amp;#039;empilement de &lt;em&gt;else if&lt;/em&gt; dans l&amp;#039;immense majorité des cas. 
&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;une_meilleure_formulation&quot; id=&quot;une_meilleure_formulation&quot;&gt;Une meilleure formulation&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Pour présenter la structure if, il est de coutume de parler de condition et de présenter la condition en question sous forme de comparaison - entre les parenthèses suivant le mot &lt;code&gt;if&lt;/code&gt;. C&amp;#039;est d&amp;#039;ailleurs ce que j&amp;#039;ai fait &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

Malgré tout il s&amp;#039;agit d&amp;#039;un abus de langage et maintenant qu&amp;#039;on est bien en forme, je vais pratiquer le parler juste. Le vrai du vrai de la réalité programmatique c&amp;#039;est que ce qu&amp;#039;on passe entre parenthèses c&amp;#039;est quelque chose que l&amp;#039;on peut &lt;strong&gt;évaluer&lt;/strong&gt; comme true ou false.&lt;br/&gt;

&lt;br/&gt;

Quand on écrit directement une comparaison entre les parenthèses du if, le programme calcule le résultat et c&amp;#039;est ce résultat qui est traité.&lt;br/&gt;

Vérifions :&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; soldeDeMonCompte:&lt;span class=&quot;kw3&quot;&gt;Number&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt; ;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; soldePositif:&lt;span class=&quot;kw3&quot;&gt;Boolean&lt;/span&gt;=soldeDeMonCompte &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; 0 ;
&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;le solde du compte est-il positif ? &amp;quot;&lt;/span&gt;+ soldePositif&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;soldePositif&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;je me fais un cadeau !&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;dommage&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code trace&quot;&gt;le solde du compte est-il positif ? true
je me fais un cadeau !&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

Ou encore plus indiscutable :

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; verif:&lt;span class=&quot;kw3&quot;&gt;Boolean&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt; ;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;verif&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;la variable vérif vaut vrai&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;la variable vérif vaut faux&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code trace&quot;&gt;la variable vérif vaut vrai&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;br/&gt;

On est donc bien d&amp;#039;accord : la syntaxe du if c&amp;#039;est :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;une_chose_que_l_on_peut_évaluer_comme_true_ou_false&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span class=&quot;co1&quot;&gt;// instruction(s) quand valeurBooléenne vaut true&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span class=&quot;co1&quot;&gt;// instruction(s) quand valeurBooléenne vaut false&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

On parle bien d&amp;#039;une &lt;strong&gt;expression booléenne&lt;/strong&gt; et &lt;strong&gt;pas d&amp;#039;une condition&lt;/strong&gt;.&lt;br/&gt;

Je sais, je me répète, mais ça vous évitera peut-être d&amp;#039;écrire des choses comme celle ci :&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;unClip.&lt;span class=&quot;kw3&quot;&gt;visible&lt;/span&gt;==&lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;//traitement&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
l&amp;#039;expression &lt;code&gt;unClip.visible&lt;/code&gt; vaut true ou false , inutile de comparer une fois de plus &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt; &lt;sup&gt;&lt;a href=&quot;#fn__3&quot; name=&quot;fnt__3&quot; id=&quot;fnt__3&quot; class=&quot;fn_top&quot;&gt;3)&lt;/a&gt;&lt;/sup&gt;&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;utiliser_une_fonction_comme_parametre_de_if&quot; id=&quot;utiliser_une_fonction_comme_parametre_de_if&quot;&gt;Utiliser une fonction comme paramètre de if&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Et du coup, puisqu&amp;#039;on vient de comprendre que if évalue l&amp;#039;expression qu&amp;#039;on passe entre parenthèse, ça doit bien marcher avec les fonctions pensent les petits rusés dans leur coin…&lt;br/&gt;

Et bien oui ! Si une fonction renvoie un booléen alors on peut l&amp;#039;évaluer directement “dans” le if, et par conséquent l&amp;#039;exécuter… &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_idea.gif&quot; class=&quot;middle&quot; alt=&quot;:idea:&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

J&amp;#039;en vois qui me jettent un regard pas convaincu, le mieux c&amp;#039;est un exemple :&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;validation_d_un_formulaire&quot; id=&quot;validation_d_un_formulaire&quot;&gt;Validation d&amp;#039;un formulaire&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Reprenons notre idée de formulaire d&amp;#039;inscription à valider.&lt;br/&gt;

On pourrait charger une fonction des opérations de validation. Si cette fonction a le bon goût de retourner faux quand les conditions de validation ne sont pas remplies, et vrai dans le cas contraire, il ne nous reste plus qu&amp;#039;à l&amp;#039;invoquer pour vérifier le formulaire, et se servir de ce qu&amp;#039;elle renvoie pour continuer ou non le traitement.
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;btOK.&lt;span class=&quot;me1&quot;&gt;addEventListener&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MouseEvent.&lt;span class=&quot;me1&quot;&gt;CLICK&lt;/span&gt;, enregistre&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; enregistre&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;me:MouseEvent&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;valideFormulaire&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// pour évaluer le résultat il faut bien exécuter la fonction&lt;/span&gt;
		&lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;;		   
	&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; 
&lt;span class=&quot;co1&quot;&gt;// suite du traitement &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// si on passe là c'est que la validation a renvoyé vrai&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; valideFormulaire&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:&lt;span class=&quot;kw3&quot;&gt;Boolean&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;txtNom.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;==&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;     txtSortie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Le champ nom ne peut être vide&amp;quot;&lt;/span&gt;; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;txtPrénom.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;==&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  txtSortie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Le champ prénom ne peut être vide&amp;quot;&lt;/span&gt;; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;txtPseudo.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;==&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  txtSortie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Le champ pseudonyme ne peut être vide&amp;quot;&lt;/span&gt;; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
	&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;txtMdP1.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;==&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;     txtSortie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Le champ mot de passe ne peut être vide&amp;quot;&lt;/span&gt;; &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;; 
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;txtMdP1.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;= txtMdP2.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
              txtSortie.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Attention à vérification du mot de passe&amp;quot;&lt;/span&gt;;
              txtMdP1.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;; &lt;span class=&quot;co1&quot;&gt;// vider les champs mot de passe pour forcer une nouvelle saisie&lt;/span&gt;
              txtMdP2.&lt;span class=&quot;kw3&quot;&gt;text&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;; 
              &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
	&lt;span class=&quot;co1&quot;&gt;// tour va bien renvoie vrai&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;	
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Si vous voulez vous convaincre du principe, posez un point d&amp;#039;arrêt sur la ligne &lt;code&gt;if (!valideFormulaire())&lt;/code&gt;, et suivez l&amp;#039;exécution du programme au pas à pas à l&amp;#039;aide du débug.&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_tip&quot;&gt;
 N&amp;#039;hésitez pas à faire un détour du côté de ce &lt;strong&gt;&lt;a href=&quot;http://ressources.mediabox.fr/tutoriaux/flashplatform/programmation/generalites/flashdebugger&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://ressources.mediabox.fr/tutoriaux/flashplatform/programmation/generalites/flashdebugger&quot;  rel=&quot;nofollow&quot;&gt;tuto commis par frangois&lt;/a&gt;&lt;/strong&gt; pour notre plus grand bonheur _o_
&lt;/div&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;br/&gt;

Maintenant qu&amp;#039;on est au clair sur le fait que le paramètre qu&amp;#039;on passe à if est évalué, je peux répondre à la question des suspicieux qui se demandaient pourquoi quand on confond l&amp;#039;opérateur d&amp;#039;affection &lt;code&gt;=&lt;/code&gt; avec l&amp;#039;opérateur de comparaison &lt;code&gt;==&lt;/code&gt; il semble quelque fois que ça marche quand même.&lt;br/&gt;

Ça va nous permettre d&amp;#039;aborder la dernière subtilité à connaître : la conversion implicite du paramètre.
&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;attention_conversion_implicite&quot; id=&quot;attention_conversion_implicite&quot;&gt;Attention conversion implicite&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Il faut le savoir : si nécessaire, on peut convertir une donnée d&amp;#039;un type sur un autre.&lt;br/&gt;

Il faut le savoir aussi, à l&amp;#039;exécution, il arrive que le lecteur se charge tout seul comme un grand d&amp;#039;effectuer des conversions, on parle alors de conversions implicites.&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;wrap_quote wrap_green&quot;&gt;Les conversions implicites (ou coercition) sont parfois effectuées par Flash Player ou Adobe AIR lors de l&amp;#039;exécution.&lt;div class=&quot;wrap_origin&quot;&gt; &lt;strong&gt;&lt;a href=&quot;http://help.adobe.com/fr_FR/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f87.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://help.adobe.com/fr_FR/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f87.html&quot;  rel=&quot;nofollow&quot;&gt;Dixit la doc&lt;/a&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;

&lt;br/&gt;

C&amp;#039;est plutôt pratique, et &lt;strong&gt;pour peu qu&amp;#039;on sache bien ce qu&amp;#039;on fait&lt;/strong&gt; (du moins ce que le lecteur&lt;sup&gt;&lt;a href=&quot;#fn__4&quot; name=&quot;fnt__4&quot; id=&quot;fnt__4&quot; class=&quot;fn_top&quot;&gt;4)&lt;/a&gt;&lt;/sup&gt; fera) ça ne pause aucun problème, voire on peut s&amp;#039;appuyer sur ce comportement.&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;conversion_explicite&quot; id=&quot;conversion_explicite&quot;&gt;conversion explicite&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

Sans nous égarer trop, faisons donc un petit détour par les conversions vers un type booléen.&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_quote wrap_green&quot;&gt;
Pour associer un objet à un autre type de données, vous mettez le nom de l&amp;#039;objet entre parenthèses et le faites précéder du nom du nouveau type.
&lt;div class=&quot;wrap_origin&quot;&gt; &lt;strong&gt;&lt;a href=&quot;http://help.adobe.com/fr_FR/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f87.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://help.adobe.com/fr_FR/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f87.html&quot;  rel=&quot;nofollow&quot;&gt;Dixit la doc&lt;/a&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;

Ce qui rapporté à nos préoccupations donne ceci.

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; testB:&lt;span class=&quot;kw3&quot;&gt;Boolean&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; toto:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;=0
testB=&lt;span class=&quot;kw3&quot;&gt;Boolean&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;toto&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;testB&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code trace&quot;&gt;false&lt;/pre&gt;
&lt;p&gt;

Si vous testez avec &lt;code&gt;toto:int=1&lt;/code&gt; vous obtiendrez &lt;code&gt;true&lt;/code&gt; dans la fenêtre de sortie…
&lt;br/&gt;

&lt;span class=&quot;wrap_info&quot;&gt;
Vous trouverez les tableaux de conversion sur la toujours même page de la doc
&lt;/span&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;conversion_implicite&quot; id=&quot;conversion_implicite&quot;&gt;conversion implicite&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;br/&gt;

Ceci implique que si on passe à un if une valeur non pas booléenne, mais un int par exemple, le lecteur va tout bonnement (et implicitement) effectuer la conversion afin d&amp;#039;évaluer la variable de type int &lt;strong&gt;comme si&lt;/strong&gt; il s&amp;#039;agissait d&amp;#039;un Booléen.
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; toto:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;=0
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;toto&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;compris comme true&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;compris comme false&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code trace&quot;&gt;compris comme false&lt;/pre&gt;&lt;div class=&quot;wrap_important&quot;&gt;
Attention qu&amp;#039;on se comprenne bien : la variable considérée (ici toto) n&amp;#039;est pas convertie au sens &lt;em&gt;transformée&lt;/em&gt;, elle vaut toujours ce qu&amp;#039;elle vaut, mais le if l&amp;#039;évalue comme le résultat d&amp;#039;une conversion vers un booléen.&lt;br/&gt;

&lt;/div&gt;
&lt;p&gt;

Preuve :&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; toto:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;toto&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;compris comme true&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;compris comme false&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;mais toto vaut toujours &amp;quot;&lt;/span&gt; + toto&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code trace&quot;&gt;compris comme true
mais toto vaut toujours 1&lt;/pre&gt;
&lt;p&gt;
Par ailleurs, on sait que si on passe à un if autre chose qu&amp;#039;une valeur booléenne (ou convertible), if évalue l&amp;#039;expression. Dit autrement : fait un calcul ou exécute une fonction et utilise le résultat (en le convertissant au besoin).&lt;br/&gt;

&lt;br/&gt;

Si je rappelle que le lecteur lit de droite à gauche… &lt;br/&gt;

…je pense que les choses commencent à vous devenir plus claires &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

Comment ça non ? &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_biggrin.gif&quot; class=&quot;middle&quot; alt=&quot;:D&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

Voici le genre de test qui peut vous faire croire que ça marche quand même si on confond comparaison et affectation :

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; toto:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;toto=0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// ATTENTION erreur !!! c'est une affectation !&lt;/span&gt;
  &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;vrai&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;faux&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code trace&quot;&gt;faux&lt;/pre&gt;
&lt;p&gt;

Ayez la curiosité de tracer toto en sortie de code :

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; toto:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;toto=0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;vrai&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;faux&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;toto vaut &amp;quot;&lt;/span&gt;+toto&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code trace&quot;&gt;faux
toto vaut 0&lt;/pre&gt;
&lt;p&gt;
Je vous laisse vous livrer à différent tests avec des valeurs différentes pour toto, et je finis de raconter ce qu&amp;#039;il se passe pour ceux qui voudraient confirmation de leur intuition : &lt;br/&gt;

&lt;br/&gt;

Le lecteur arrive sur cette ligne :

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;toto=0&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

D&amp;#039;abord, il rencontre zéro.&lt;br/&gt;

Très bien, il “s&amp;#039;en souvient, le garde en tête”.&lt;br/&gt;

Puis il rencontre l&amp;#039;opérateur d&amp;#039;affectation &lt;strong&gt;&lt;code&gt;=&lt;/code&gt; (égal)&lt;/strong&gt;.&lt;br/&gt;

Ah ah ! Il va donc s&amp;#039;agir pour lui de valoriser ce qui est tout de suite à gauche de cet opérateur avec ce qu&amp;#039;il “a en tête”, à savoir zéro.&lt;br/&gt;

Il le fait. &lt;code&gt;toto&lt;/code&gt; vaut maintenant zéro et c&amp;#039;est ce toto qui doit être “traité” par le if.&lt;br/&gt;

C&amp;#039;est un int, qu&amp;#039;à cela ne tienne, hop conversion implicite, et nous voici avec l&amp;#039;équivalent de cette ligne :

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; ...&lt;/pre&gt;
&lt;p&gt;
 
&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_quote wrap_red&quot;&gt;Non seulement ça ne “marche” pas, mais &lt;strong&gt;en plus ça change la valeur de toto&lt;/strong&gt;, ce qui risque de coller un fameux bronks dans le reste du code &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;&lt;/div&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;pause_exo_un_quizz_de_grammaire&quot; id=&quot;pause_exo_un_quizz_de_grammaire&quot;&gt;Pause exo : un quizz de grammaire&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Revenons à nos moutons après cette indispensable digression. C&amp;#039;est le moment de vérifier qu&amp;#039;on a tout bien compris et de se faire la main, sur un exemple un peu concret.&lt;br/&gt;

&lt;br/&gt;

On dirait que … &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

Bénévoles pour association d&amp;#039;aide aux devoirs, nous avons décidé de faire un petit truc destiné à réviser la conjugaison de l&amp;#039;impératif.&lt;br/&gt;

&lt;br/&gt;

&lt;!--[if !IE]&gt; --&gt;
&lt;object class=&quot;media&quot; width=&quot;560&quot; height=&quot;180&quot; type=&quot;application/x-shockwave-flash&quot; data=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/structuredecontrole/if_imperatif.swf&quot; &gt;
&lt;!-- &lt;![endif]--&gt;
&lt;!--[if IE]&gt;
&lt;object class=&quot;media&quot; width=&quot;560&quot; height=&quot;180&quot; classid=&quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&quot; &gt;
    &lt;param name=&quot;movie&quot; value=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/structuredecontrole/if_imperatif.swf&quot; /&gt;
&lt;!--&gt;&lt;!-- --&gt;
  &lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
L&quot;extension &lt;a href=&quot;http://www.adobe.com/products/flashplayer/&quot;&gt;Adobe Flash Plugin&lt;/a&gt; est nécessaire pour afficher ce contenu.
&lt;/object&gt;
&lt;!-- &lt;![endif]--&gt;

&lt;br/&gt;

Regardez bien ce qu&amp;#039;il se passe selon qu&amp;#039;on écrit : chante, chantes, prends, prend, va ou vas…&lt;br/&gt;

Constatez que la casse de caractère importe peu.&lt;br/&gt;

Et dites vous que vous savez le faire &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

Bien sûr il y a de multiples moyens de s&amp;#039;y prendre, mais d&amp;#039;une façon comme d&amp;#039;une autre il va falloir avoir recours aux if, avec ou sans else, sur une ligne ou entre accolades, chacun son goût.&lt;br/&gt;

&lt;br/&gt;

J&amp;#039;ai choisi de ne pas me compliquer pour le corrigé que je vous propose : &lt;br/&gt;

• un bouton (&lt;code&gt;btOK&lt;/code&gt;), &lt;br/&gt;

• trois clips construits pareil&lt;sup&gt;&lt;a href=&quot;#fn__5&quot; name=&quot;fnt__5&quot; id=&quot;fnt__5&quot; class=&quot;fn_top&quot;&gt;5)&lt;/a&gt;&lt;/sup&gt; : un champ de saisie nommé &lt;code&gt;txtSaisie&lt;/code&gt; et le texte statique idoine autours,&lt;br/&gt;

• enfin un champ dynamique nommé &lt;code&gt;txtSortie&lt;/code&gt; pour afficher les commentaires.
&lt;br/&gt;

… et un peu de code &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_mrgreen.gif&quot; class=&quot;middle&quot; alt=&quot;:mrgreen:&quot; /&gt;
&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_download&quot;&gt;
&lt;a href=&quot;http://forums.mediabox.fr/wiki/_media/tutoriaux/flashplatform/programmation/generalites/structuredecontrole/if_imperatif.fla&quot; class=&quot;media mediafile mf_fla&quot; title=&quot;tutoriaux:flashplatform:programmation:generalites:structuredecontrole:if_imperatif.fla&quot;&gt;Essayez à votre sauce et reportez vous aux sources en cas de souci :)&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;wrap_help&quot;&gt;
Pour retrouver les propriétés qui rendent les textes non sélectionnables après que la bonne réponse a été validée et virent la bordure, je vous renvoie &lt;a href=&quot;http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/flash/text/TextField.html&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/flash/text/TextField.html&quot;  rel=&quot;nofollow&quot;&gt;à la doc&lt;/a&gt; &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;les_operateurs_logiques&quot; id=&quot;les_operateurs_logiques&quot;&gt;Les opérateurs logiques&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Dernière ligne droite ! &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_smile.gif&quot; class=&quot;middle&quot; alt=&quot;:)&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;

Ne nous reste plus qu&amp;#039;à voir comment “combiner” plusieurs valeurs booléennes, s&amp;#039;assurer par exemple que plusieurs conditions sont vérifiées à la fois.&lt;br/&gt;

&lt;br/&gt;

On va avoir recours aux opérateurs logiques ET et OU qu&amp;#039;on utilise avec deux opérandes (valeurs) booléens et qui renvoient vrai ou faux selon les valeurs considérées.
&lt;/p&gt;

&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;et&quot; id=&quot;et&quot;&gt;&amp;amp;&amp;amp; (ET)&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Il se note &lt;strong&gt;&lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt;&lt;/strong&gt; et s&amp;#039;utilise comme suit :
&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; resultat:&lt;span class=&quot;kw3&quot;&gt;Boolean&lt;/span&gt;= varBool1 &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; varBool2 ;&lt;/pre&gt;
&lt;p&gt;
Dit à ma façon : pour qu&amp;#039;il &lt;strong&gt;renvoie vrai&lt;/strong&gt; il faut que &lt;strong&gt;les deux&lt;/strong&gt; opérandes vaillent &lt;strong&gt;vrai&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
La doc l&amp;#039;exprime différemment et dresse le tableau  qui va bien, je fais l&amp;#039;économie de le reproduire, &lt;a href=&quot;http://help.adobe.com/fr_FR/FlashPlatform/reference/actionscript/3/operators.html#logical_AND&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://help.adobe.com/fr_FR/FlashPlatform/reference/actionscript/3/operators.html#logical_AND&quot;  rel=&quot;nofollow&quot;&gt;allez le consulter&lt;/a&gt; &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt; &lt;br/&gt;

&lt;br/&gt;

Si vous voulez tester :

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; nomAnimal:&lt;span class=&quot;kw3&quot;&gt;String&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;lapin&amp;quot;&lt;/span&gt;;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; nomPoisson:&lt;span class=&quot;kw3&quot;&gt;String&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;carpe&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;nomAnimal==&lt;span class=&quot;st0&quot;&gt;&amp;quot;lapin&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; nomPoisson==&lt;span class=&quot;st0&quot;&gt;&amp;quot;carpe&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;passe dans vrai&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;passe dans faux&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code trace&quot;&gt;passe dans vrai&lt;/pre&gt;&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; nomAnimal:&lt;span class=&quot;kw3&quot;&gt;String&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;lapin&amp;quot;&lt;/span&gt;;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; nomPoisson:&lt;span class=&quot;kw3&quot;&gt;String&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;carpe&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;nomAnimal==&lt;span class=&quot;st0&quot;&gt;&amp;quot;lion&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; nomPoisson==&lt;span class=&quot;st0&quot;&gt;&amp;quot;carpe&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;passe dans vrai&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;passe dans faux&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code trace&quot;&gt;passe dans faux&lt;/pre&gt;
&lt;/div&gt;

&lt;h3&gt;&lt;a name=&quot;c_est_le_membre_de_gauche_qui_est_evalue_d_abord&quot; id=&quot;c_est_le_membre_de_gauche_qui_est_evalue_d_abord&quot;&gt;C&amp;#039;est le membre de gauche qui est évalué d&amp;#039;abord&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

… me souffle-t-on à l&amp;#039;oreillette…&lt;br/&gt;

&lt;br/&gt;

Opération capilotomie :&lt;br/&gt;

&lt;br/&gt;

On est d&amp;#039;accord : il faut que les deux opérandes vaillent vrai pour que l&amp;#039;opérateur logique ET renvoie lui aussi vrai. Il suffit donc que l&amp;#039;un des deux vaille faux pour que de façon certaine on obtienne faux, quelque soit la valeur du second. Il n&amp;#039;est par conséquent pas utile d&amp;#039;évaluer le deuxième opérande dès lors que le premier vaux faux. Reste à savoir qui est évalué en premier, et bien c&amp;#039;est le membre de gauche.&lt;br/&gt;

&lt;br/&gt;

Vérifions :&lt;br/&gt;

On sait (lien à venir) que la valeur par défaut des objets de type complexe c&amp;#039;est &lt;code&gt;null&lt;/code&gt;. Par conséquent toute opération sur une variable de type TextField (au hasard) va générer une erreur :&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; t:&lt;span class=&quot;kw3&quot;&gt;TextField&lt;/span&gt;; &lt;span class=&quot;co1&quot;&gt;// seulement déclarée, vaut null&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;t.&lt;span class=&quot;kw3&quot;&gt;visible&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;span class=&quot;co1&quot;&gt;// l'éternelle erreur 1009&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;div class=&quot;wrap_quote wrap_grey&quot;&gt;TypeError: Error #1009: Il est impossible d&amp;#039;accéder à la propriété ou à la méthode d&amp;#039;une référence d&amp;#039;objet nul.&lt;/div&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Et maintenant :&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; t:&lt;span class=&quot;kw3&quot;&gt;TextField&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// seulement déclarée, vaut null&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; toto:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;toto&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;89&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; t.&lt;span class=&quot;kw3&quot;&gt;visible&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;// toto&amp;gt;89 évalué d'abord, renvoie faux, l'autre membre n'est pas évalué&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;O_O&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// pour écrire un truc on n'y passera pas, ce n'est pas ce qu'on teste &lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;suite du traitement&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; t:&lt;span class=&quot;kw3&quot;&gt;TextField&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// seulement déclarée, vaut null&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; toto:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;t.&lt;span class=&quot;kw3&quot;&gt;visible&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; toto&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;89&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;// t.visible évalué d'abord, ça crie :D&lt;/span&gt;
	&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;O_O&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;suite du traitement&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Oui, bon, certes, et alors ? Râlerons les plus alertes de ceux qui ont survécu à ce (trop ?) long exposé &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_mrgreen.gif&quot; class=&quot;middle&quot; alt=&quot;:mrgreen:&quot; /&gt;…&lt;br/&gt;

Eh bien d&amp;#039;abord il est bon de le savoir, ça fait de la culture &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt; Et puis aussi, dans les cas où on chasse les performances, si l&amp;#039;un des deux membres est une fonction qui effectue de lourds calculs, on peut toujours choisir qu&amp;#039;elle ne soit invoquée que si ça vaut le coup, à savoir si l&amp;#039;autre opérande vaut vrai…&lt;br/&gt;

&lt;br/&gt;

Privilégiez :

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;toto==&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; laFonctionAuxDixMilliardsDeCalculs&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

à

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; laFonctionAuxDixMilliardsDeCalculs&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; toto==&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;ou&quot; id=&quot;ou&quot;&gt;|| (OU)&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

Il se note &lt;strong&gt;&lt;code&gt;||&lt;/code&gt;&lt;/strong&gt; et s&amp;#039;utilise comme suit :

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; resultat:&lt;span class=&quot;kw3&quot;&gt;Boolean&lt;/span&gt;= varBool1 || varBool2 ;&lt;/pre&gt;
&lt;p&gt;
&lt;span class=&quot;wrap_info&quot;&gt;
Pour obtenir le caractère | c&amp;#039;est alt-maj-L depuis un mac et (à compléter par le premier pécéïste passant dans le coin).
&lt;/span&gt;
&lt;br/&gt;

L&amp;#039;opérateur OU &lt;strong&gt;renvoie vrai&lt;/strong&gt; si l&amp;#039;&lt;strong&gt;un des deux&lt;/strong&gt; opérandes vaut &lt;strong&gt;vrai&lt;/strong&gt;.&lt;br/&gt;

&lt;br/&gt;

Je vous renvoie aussi au &lt;a href=&quot;http://help.adobe.com/fr_FR/FlashPlatform/reference/actionscript/3/operators.html#logical_OR&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;http://help.adobe.com/fr_FR/FlashPlatform/reference/actionscript/3/operators.html#logical_OR&quot;  rel=&quot;nofollow&quot;&gt;beau tableau de la doc&lt;/a&gt;.
&lt;br/&gt;

Si vous voulez tester :&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; nomAnimal:&lt;span class=&quot;kw3&quot;&gt;String&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;lapin&amp;quot;&lt;/span&gt;;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; nomPoisson:&lt;span class=&quot;kw3&quot;&gt;String&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;carpe&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;nomAnimal==&lt;span class=&quot;st0&quot;&gt;&amp;quot;lapin&amp;quot;&lt;/span&gt; || nomPoisson==&lt;span class=&quot;st0&quot;&gt;&amp;quot;carpe&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;passe dans vrai&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;passe dans faux&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code trace&quot;&gt;passe dans vrai&lt;/pre&gt;&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; nomAnimal:&lt;span class=&quot;kw3&quot;&gt;String&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;lapin&amp;quot;&lt;/span&gt;;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; nomPoisson:&lt;span class=&quot;kw3&quot;&gt;String&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;carpe&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;nomAnimal==&lt;span class=&quot;st0&quot;&gt;&amp;quot;lion&amp;quot;&lt;/span&gt; || nomPoisson==&lt;span class=&quot;st0&quot;&gt;&amp;quot;carpe&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;passe dans vrai&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;passe dans faux&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code trace&quot;&gt;passe dans vrai&lt;/pre&gt;
&lt;/div&gt;

&lt;h2&gt;&lt;a name=&quot;not&quot; id=&quot;not&quot;&gt;! (NOT)&lt;/a&gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;

C&amp;#039;est un opérateur logique unaire (comprendre qui admet un seul opérande), il a pour conséquence d&amp;#039;&lt;em&gt;inverser la valeur Booléenne d’une variable ou d’une expression&lt;/em&gt;. Ça, c&amp;#039;est la doc qui le dit, ne vous laissez pas abuser, il &lt;strong&gt;renvoie la valeur inverse&lt;/strong&gt;, mais ne modifie en aucun cas l&amp;#039;opérande considéré &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; b:&lt;span class=&quot;kw3&quot;&gt;Boolean&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;b&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;
&lt;span class=&quot;kw3&quot;&gt;trace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;b&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;span class=&quot;co1&quot;&gt;// b vaut toujours true&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;code trace&quot;&gt;false
true&lt;/pre&gt;
&lt;p&gt;
Imaginons une variable magasinOuvert, booléenne, qui vaut vrai quand le magasin est ouvert et faux dans le cas contraire.&lt;br/&gt;

Imaginons qu&amp;#039;on vous donne la consigne suivante : &lt;strong&gt;si&lt;/strong&gt; le magasin est ouvert on le ferme, &lt;strong&gt;sinon&lt;/strong&gt; (il est fermé) on l&amp;#039;ouvre (je parle bien entendu de mettre la variable à jour)&lt;br/&gt;

&lt;br/&gt;

&lt;strong&gt;Attention piège…&lt;/strong&gt; Ce n&amp;#039;est pas parce qu&amp;#039;on emploie assez spontanément un si, qu&amp;#039;il faut vous précipiter sur le if. Ceci, est une mauvaise idée :&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;magasinOuvert&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   magasinOuvert=&lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   magasinOuvert=&lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

Vous voyez comment vous y prendre plus simplement (donc plus rapidement pour vous et pour le programme) ?&lt;br/&gt;

&lt;br/&gt;

Allez, je le formule différemment, en fait il s&amp;#039;agit d&amp;#039;inverser la valeur de la booléenne… Dit encore autrement je vais affecter à la variable le contraire de ce qu&amp;#039;elle vaut :
&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;magasinOuvert=&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;magasinOuvert;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

Je rappelle que “le processeur lit les lignes d&amp;#039;instruction depuis la droite”. Ce qui se passe, c&amp;#039;est donc la chose suivante : d&amp;#039;abord l&amp;#039;expression &lt;code&gt;!magasinOuvert&lt;/code&gt; est évaluée, puis c&amp;#039;est cette valeur qui est attribuée à la variable.&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;l_operateur_ternaire&quot; id=&quot;l_operateur_ternaire&quot;&gt;L&amp;#039;opérateur ternaire ?:&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Attention, &lt;strong&gt;ce n&amp;#039;est pas une structure de contrôle&lt;/strong&gt; !&lt;br/&gt;

Mais puisqu&amp;#039;il rend quelque fois le même service qu&amp;#039;un if, autant en parler.&lt;br/&gt;

&lt;br/&gt;

On l&amp;#039;utilise quand on veut valoriser une variable différemment selon qu&amp;#039;une condition est vérifiée ou pas. Et puisque ce n&amp;#039;est jamais qu&amp;#039;une alternative à la structure si, je vous la présente, non pas en français mais en AS3… ça changera &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;&lt;br/&gt;

&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; age:&lt;span class=&quot;kw3&quot;&gt;int&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;28&lt;/span&gt;;
&lt;span class=&quot;kw2&quot;&gt;var&lt;/span&gt; commentaire:&lt;span class=&quot;kw3&quot;&gt;String&lt;/span&gt;;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;age&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   commentaire=&lt;span class=&quot;st0&quot;&gt;&amp;quot;pas majeur&amp;quot;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
   commentaire=&lt;span class=&quot;st0&quot;&gt;&amp;quot;majeur&amp;quot;&lt;/span&gt;;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
Ici, la variable &lt;code&gt;commentaire&lt;/code&gt; vaut &lt;em&gt;pas majeur&lt;/em&gt; ou &lt;em&gt;majeur&lt;/em&gt;  selon que âge est inférieur à 18 ou pas. C&amp;#039;est &lt;strong&gt;la même variable qu&amp;#039;on valorise&lt;/strong&gt; dans un cas ou l&amp;#039;autre.&lt;br/&gt;

&lt;br/&gt;

A l&amp;#039;aide de l&amp;#039;opérateur ternaire on écrira :&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt; commentaire=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;age&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;?&lt;span class=&quot;st0&quot;&gt;&amp;quot;pas majeur&amp;quot;&lt;/span&gt;:&lt;span class=&quot;st0&quot;&gt;&amp;quot;majeur&amp;quot;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

En français : commentaire vaut &lt;em&gt;…ummf j&amp;#039;en sais rien, ça dépend…&lt;/em&gt; age est-il inférieur à 18 ? si oui “pas majeur” sinon “majeur”.&lt;br/&gt;

&lt;br/&gt;

bien sûr, libre à vous de l&amp;#039;écrire dans l&amp;#039;autre sens :&lt;br/&gt;


&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt; commentaire=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;age&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;?&lt;span class=&quot;st0&quot;&gt;&amp;quot;majeur&amp;quot;&lt;/span&gt;:&lt;span class=&quot;st0&quot;&gt;&amp;quot;pas majeur&amp;quot;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Quant aux parenthèses elles sont superflues, je les ai mises pour faciliter la lecture.

&lt;/p&gt;
&lt;pre class=&quot;code actionscript&quot;&gt;commentaire=age&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;18&lt;/span&gt;?&lt;span class=&quot;st0&quot;&gt;&amp;quot;majeur&amp;quot;&lt;/span&gt;:&lt;span class=&quot;st0&quot;&gt;&amp;quot;pas majeur&amp;quot;&lt;/span&gt;;&lt;/pre&gt;
&lt;p&gt;

&lt;br/&gt;

&lt;span class=&quot;wrap_tip&quot;&gt;
&lt;code&gt; &lt;/code&gt; Une fois de plus pour m&amp;#039;exprimer rapidement j&amp;#039;ai parlé de condition, vous n&amp;#039;êtes pas dupe : il s&amp;#039;agit bel et bien d&amp;#039;une valeur booléenne &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_wink.gif&quot; class=&quot;middle&quot; alt=&quot;;)&quot; /&gt;
&lt;/span&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h1&gt;&lt;a name=&quot;conclusion&quot; id=&quot;conclusion&quot;&gt;Conclusion&lt;/a&gt;&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;

Et bien voilà, c&amp;#039;en est fini pour ce qui concerne la structure if. Je ne surcharge pas ce tuto d&amp;#039;exercices, on va, à partir de maintenant, y avoir suffisamment recours pour que vous ayez très largement l&amp;#039;occasion de vous faire la main &lt;img src=&quot;http://forums.mediabox.fr/wiki/lib/images/smileys/icon_smile.gif&quot; class=&quot;middle&quot; alt=&quot;:)&quot; /&gt;&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;footnotes&quot;&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__1&quot; id=&quot;fn__1&quot; name=&quot;fn__1&quot; class=&quot;fn_bot&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; 
vous rencontrerez souvent suivi d&amp;#039;une seule instruction&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__2&quot; id=&quot;fn__2&quot; name=&quot;fn__2&quot; class=&quot;fn_bot&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt; 
cmd-Maj-F&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__3&quot; id=&quot;fn__3&quot; name=&quot;fn__3&quot; class=&quot;fn_bot&quot;&gt;3)&lt;/a&gt;&lt;/sup&gt; 
C&amp;#039;est comme si vous demandiez : “Est-ce que vrai est égal à vrai ?” (quand unClip.visible vaut true)&lt;br/&gt;
 Ou : “Est-ce que faux est égal à vrai ?”(quand unClip.visible vaut false) &lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__4&quot; id=&quot;fn__4&quot; name=&quot;fn__4&quot; class=&quot;fn_bot&quot;&gt;4)&lt;/a&gt;&lt;/sup&gt; 
Flash Player&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__5&quot; id=&quot;fn__5&quot; name=&quot;fn__5&quot; class=&quot;fn_bot&quot;&gt;5)&lt;/a&gt;&lt;/sup&gt; 
on duplique les deux derniers, du coup&lt;/div&gt;
&lt;/div&gt;
</description>
            <author>Nataly</author>
        <category>tutoriaux:flashplatform:programmation:generalites</category>
            <pubDate>Tue, 21 Feb 2012 15:10:10 +0200</pubDate>
        </item>
    </channel>
</rss>

