<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>La Fabrick &#187; AS3</title>
	<atom:link href="http://www.lafabrick.com/blog/tag/as3/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lafabrick.com/blog</link>
	<description>Laboratoire d&#039;interfaces riches (Flex, Flash, Air ...)</description>
	<lastBuildDate>Mon, 28 Nov 2011 22:02:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>MdaME, ma résolution 2011 de génération de code AS3</title>
		<link>http://www.lafabrick.com/blog/2011/01/11/2349-mdame-generateur-code-xsd-as3-flex/</link>
		<comments>http://www.lafabrick.com/blog/2011/01/11/2349-mdame-generateur-code-xsd-as3-flex/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 21:50:00 +0000</pubDate>
		<dc:creator>La Fabrick</dc:creator>
				<category><![CDATA[La Fabrick]]></category>
		<category><![CDATA[Logiciels / extensions / plugins...]]></category>
		<category><![CDATA[Nos projets]]></category>
		<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[generateur de code]]></category>
		<category><![CDATA[InMarket]]></category>
		<category><![CDATA[MDA]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[xsd]]></category>

		<guid isPermaLink="false">http://www.lafabrick.com/blog/?p=2349</guid>
		<description><![CDATA[Voilà quelques temps que nous nous activions sans donner de nouvelles&#8230;, il est temps de corriger tout ça. Aussi, pour démarrer cette nouvelle année du bon pied, La Fabrick vous propose une petite application de génération de code AS3 à partir d&#8217;un schéma XSD. Ce petit outil nous a été utile pour pas mal de [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">
<p><a href="http://www.lafabrick.com/blog/wp-content/uploads/2011/01/MdaMe.png"><img class="size-full wp-image-2372 alignnone" title="MdaMe" src="http://www.lafabrick.com/blog/wp-content/uploads/2011/01/MdaMe.png" alt="" width="499" height="64" /></a></p>
<p>Voilà quelques temps que nous nous activions sans donner de nouvelles&#8230;, il est temps de corriger tout ça.<br />
Aussi, pour démarrer cette nouvelle année du bon pied, La Fabrick vous propose une petite application de génération de code AS3 à partir d&#8217;un schéma XSD.</p>
<p>Ce petit outil nous a été utile pour pas mal de projets développés pour nos premiers clients, alors pourquoi ne pas vous en faire profiter ? Peut-être deviendrez-vous aussi MdaME-addict ?</p>
<p>Retrouvez toutes les infos sur <a href="http://mdame.lafabrick.com">http://mdame.lafabrick.com</a>Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2006/12/21/23-api-de-dessin-en-as3/" rel="bookmark" title="21 décembre 2006">API de dessin en AS3</a></li>
<li><a href="http://www.lafabrick.com/blog/2007/03/15/39-cre-ton-navigateur-perso-avec-5-lignes-de-code/" rel="bookmark" title="15 mars 2007">Crée ton navigateur perso avec 5 lignes de code !</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/02/27/309-flex-builder-3-et-le-php/" rel="bookmark" title="27 février 2008">Flex Builder 3 et le PHP ( PDT ) : installation</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/05/10/323-tuto-vido-skiner-un-composant-flex-3-avec-fireworks-cs3/" rel="bookmark" title="10 mai 2008">Skiner un composant Flex 3 avec Fireworks CS3 [Tutoriel Vidéo]</a></li>
</ul>
<p><!-- Similar Posts took 11.236 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2011/01/11/2349-mdame-generateur-code-xsd-as3-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex 4 et les layouts &#8211; Faire une ViewStack &#171;&#160;pure&#160;&#187; Spark</title>
		<link>http://www.lafabrick.com/blog/2010/07/14/1920-flex-4-layouts-viewstack-pure-spark/</link>
		<comments>http://www.lafabrick.com/blog/2010/07/14/1920-flex-4-layouts-viewstack-pure-spark/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 16:06:03 +0000</pubDate>
		<dc:creator>Hervé</dc:creator>
				<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[flex4]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Spark]]></category>
		<category><![CDATA[UI Design]]></category>

		<guid isPermaLink="false">http://www.lafabrick.com/blog/?p=1920</guid>
		<description><![CDATA[Pour ceux d&#8217;entre vous qui ont eu la chance de passer à Flex 4, vous avez peut-être la même tendance que moi à chercher à éviter le préfixe &#60;mx:&#62; dans vos skins&#8230; Spark, quand tu nous tiens&#8230; Quoi qu&#8217;il en soit, certains types de composants n&#8217;ont pas été réécris pour Spark. Pourquoi ? Parce l&#8217;architecture [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-1930" title="layouts" src="http://www.lafabrick.com/blog/wp-content/uploads/2010/07/layouts-300x155.png" alt="layouts" width="300" height="155" /><br />
Pour ceux d&#8217;entre vous qui ont eu la chance de passer à Flex 4, vous avez peut-être la même tendance que moi à chercher à éviter le préfixe &lt;mx:&gt; dans vos skins&#8230; Spark, quand tu nous tiens&#8230; Quoi qu&#8217;il en soit, certains types de composants n&#8217;ont pas été réécris pour Spark. Pourquoi ? Parce l&#8217;architecture Spark propose quelque chose de top : les layouts. Et les layouts, c&#8217;est vaaaachement bien.</p>
<p>Explication&#8230;<br />
<span id="more-1920"></span></p>
<h2>Layouts</h2>
<p>Sans faire un article complet sur les layout (ce qui serait tout à fait possible et intéressant), on peut tout de même rappeler que le Flex 4 se distingue de Flex 3 via Spark par une volonté de mieux séparer le fond de la forme, il amène donc une notion de layout pour, comme son nom le suggère, organiser les composants d&#8217;un conteneur (par exemple un &lt;s:Group&gt;).<br />
Exit donc la <em>VBox</em> ou la <em>HBox</em> (même si le VGroup ou le HGroup permettent de faire une transition en douceur), et bienvenue au <strong>Group</strong> avec layout :</p>
<pre class="brush: xml">
&lt;mx:VBox&gt;
&lt;/mx:VBox&gt;
</pre>
<p>devient donc</p>
<pre class="brush: xml">
&lt;s:Group&gt;
&lt;s:layout&gt;
&lt;s:VerticalLayout /&gt;
&lt;/s:layout&gt;
&lt;/s:Group&gt;
</pre>
<p>Au premier abord on dit : c&#8217;est plus verbeux ! Oui mais&#8230; le layout a cette particularité, en tant que propriété du composant, d&#8217;être modifiable à la volée, contrairement à un composant imposant sa mise en forme. Concrètement, là où la <em>VBox</em> présentera toujours ses enfants verticalement (c&#8217;est son nom !), le <em>Group</em> pourra changer à volonté de layout, donc très facilement passer de <em>HorizontalLayout</em> à <em>VerticalLayout</em> par exemple&#8230; On comprend encore mieux l&#8217;intérêt quand on se met à écrire son propre layout pour faire des choses un peu plus poussées visuellement !</p>
<h2>Créer son layout</h2>
<p>Pour créer un layout, il faut étendre la classe LayoutBase et surcharger a minima la méthode updateDisplayList() et certainement la méthode measure(). Ces méthodes gardent le même rôle qu&#8217;en Flex 3, mais avec l&#8217;adaptation contextuelle au Layout :</p>
<ul>
<li>updateDisplayList : dispose les enfants du conteneur et définit leur taille</li>
<li>measure : donne la taille globale du conteneur</li>
</ul>
<p>Vous pouvez accéder à la propriété &laquo;&nbsp;target&nbsp;&raquo; du layout qui correspond au conteneur auquel est appliqué le layout et travailler sur les enfant via les méthodes getElementAt() ou getVirtualElementAt(). La seconde méthode sert dans le cas où le layout est dit &laquo;&nbsp;virtualisé&nbsp;&raquo;.</p>
<h3>Apparté : virtualisation de layout</h3>
<p>Flex 4 permet, pour des raison de performance, d&#8217;utiliser un layout en mode &laquo;&nbsp;virtualisé&nbsp;&raquo;, c&#8217;est-à-dire ne calculant la disposition des seuls enfants à afficher et non l&#8217;ensemble des enfants. Ce mode de fonctionnement s&#8217;applique particulièrement bien aux composants comprenant une liste de beaucoup d&#8217;enfants, mais ne calculant l&#8217;affichage d&#8217;une poignée à la fois, le reste attendant un scroll ou une action similaire pour être éventuellement affiché.</p>
<h2>Application : création d&#8217;un ViewStackLayout</h2>
<p>Avec les layouts en tête, il est inutile de demander pourquoi le composant ViewStack n&#8217;existe pas dans Spark : il devrait en pratique être un layout applicable à n&#8217;importe quel conteneur ! Même si le <a lang="en" href="http://opensource.adobe.com/wiki/display/flexsdk/Spark+Virtualization">très bon article sur la virtualisation</a> mentionne un prometteur je cite &laquo;&nbsp;(Planned) StackLayout&nbsp;&raquo;, rien ne nous empêche d&#8217;en faire un simple, adapté à l&#8217;architecture Spark, plutôt que d&#8217;attendre (oui on est impatients à la fabrick).</p>
<p>Voici un exemple simple :</p>
<pre class="brush: js">
	import mx.core.IVisualElement;
	import spark.layouts.supportClasses.LayoutBase;

	public class ViewStackLayout extends LayoutBase {
		public function ViewStackLayout() {
			super();
		}

		protected var _index:uint;

		public function get index():Number {
			return _index;
		}

		public function set index(value:Number):void {
			if (_index != value &amp;&amp; target != null &amp;&amp; value &gt;= 0 &amp;&amp; value &lt; target.numElements) {
				_index = value;
				target.invalidateSize();
				target.invalidateDisplayList();
			}
		}

		override public function updateDisplayList(width:Number, height:Number):void {
			var element:IVisualElement = useVirtualLayout ? target.getVirtualElementAt(index) : target.getElementAt(index);

			if (element) {
				element.setLayoutBoundsSize(element.getPreferredBoundsWidth(), element.getPreferredBoundsHeight());
				target.setActualSize(element.getPreferredBoundsWidth(), element.getPreferredBoundsHeight());
				target.setContentSize(element.getPreferredBoundsWidth(), element.getPreferredBoundsHeight());
			}
		}

		override public function measure():void {
			var count:int = target.numElements;

			for (var i:uint = 0; i &lt; count; i++) {
				var element:IVisualElement = useVirtualLayout ? target.getVirtualElementAt(i) : target.getElementAt(i);

				if (i == index) {
					element.visible = true;
					element.includeInLayout = true;
					target.measuredWidth = element.getPreferredBoundsWidth();
					target.measuredHeight = element.getPreferredBoundsHeight();
				} else {
					element.visible = false;
					element.includeInLayout = false;
				}
			}
		}
	}
</pre>
<p>Vous noterez ici l&#8217;usage du getVirtualElementAt, en prévision de la gestion de la virtualisation.<br />
Vous pouvez donc utiliser ce layout dans un DataGroup &laquo;&nbsp;piloté&nbsp;&raquo; par une tabbar par exemple comme ceci :</p>
<pre class="brush: xml">
&lt;s:TabBar id=&quot;tabEditors&quot; /&gt;
&lt;s:DataGroup id=&quot;editors&quot;&gt;
&lt;s:layout&gt;
&lt;mylayouts:ViewStackLayout index=&quot;{tabEditors.selectedIndex}&quot; /&gt;
&lt;/s:layout&gt;
&lt;!-- Enfants... --&gt;
&lt;/s:DataGroup&gt;
</pre>
<p>De cette façon, le jour où vous voudrez présenter ces éléments sous forme de CoverFlow, en mode TimeMachine&#8230; vous n&#8217;aurez pas à modifier le code de votre composant, mais uniquement votre skin.</p>
<p>Alors, on n&#8217;est pas mieux habillé en Spark ?Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2009/01/13/786-reflex-1-une-micro-architecture-pour-flex-simple/" rel="bookmark" title="13 janvier 2009">Reflex #1: une micro-architecture pour Flex&#8230; simple !</a></li>
<li><a href="http://www.lafabrick.com/blog/2009/11/27/1373-flex4-custom-component-skinnig/" rel="bookmark" title="27 novembre 2009">Flex4 : composant personnalisé et skinning</a></li>
<li><a href="http://www.lafabrick.com/blog/2010/05/04/1962-uigfx-practice-a-circularslider-component-2/" rel="bookmark" title="4 mai 2010">UIGFX practice : a CircularSlider component</a></li>
<li><a href="http://www.lafabrick.com/blog/2010/03/05/1675-proches-de-lohio-les-etats-esthetes-de-flex4/" rel="bookmark" title="5 mars 2010">Proches de l&#8217;Ohio??? Les états esthètes de Flex4</a></li>
</ul>
<p><!-- Similar Posts took 16.911 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2010/07/14/1920-flex-4-layouts-viewstack-pure-spark/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Alternativa3D : un petit nouveau dans le monde de la 3D Flash</title>
		<link>http://www.lafabrick.com/blog/2008/06/01/326-et-de-4/</link>
		<comments>http://www.lafabrick.com/blog/2008/06/01/326-et-de-4/#comments</comments>
		<pubDate>Sun, 01 Jun 2008 22:38:01 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[AS3]]></category>

		<guid isPermaLink="false">http://92.243.2.196/lafabrick/blog/?p=326</guid>
		<description><![CDATA[Et de 4&#160;! Après Sandy, Papervision et Away3D, voici Alternativa3D du studio russe GRTOV. Un moteur 3D très prometteur (et performant) aux vues des différentes démos. Une version complète (ça nous changera de PV3D 2.0 &#8230; ) est disponible en téléchargement pour des usages non commerciaux&#8230; A tester&#8230; si vous lisez le russe&#160;! L&#8217;API Doc [...]]]></description>
			<content:encoded><![CDATA[<p>Et de 4&nbsp;! Après <a href="http://www.flashsandy.org/" hreflang="fr">Sandy</a>, <a href="http://blog.papervision3d.org/" hreflang="en">Papervision</a> et <a href="http://away3d.com/" hreflang="en">Away3D</a>, voici <strong><a href="http://blog.alternativaplatform.com/en/" hreflang="en">Alternativa3D</a></strong> du studio russe <a href="http://www.grtov.ru/en/" hreflang="en">GRTOV</a>.<br />
Un moteur 3D très prometteur (et performant) aux vues des <a href="http://alternativaplatform.com/en/alternativa3d/" hreflang="en">différentes démos</a>.<br />
Une version complète (ça nous changera de PV3D 2.0 &#8230; ) est disponible en téléchargement pour des usages non commerciaux&#8230; <br />
A tester&#8230; si vous lisez le russe&nbsp;! L&#8217;<a href="http://help.alternativaplatform.com/en/client/" hreflang="en">API Doc anglaise</a> n&#8217;est pour l&#8217;instant que partiellement traduite&#8230; Faut que je demande à Erick de me traduire ça <img src='http://www.lafabrick.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2006/12/21/23-api-de-dessin-en-as3/" rel="bookmark" title="21 décembre 2006">API de dessin en AS3</a></li>
<li><a href="http://www.lafabrick.com/blog/2006/11/16/19-petit-cour-sur-lapi-de-dessin/" rel="bookmark" title="16 novembre 2006">Petit cours sur l’API de dessin</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/02/20/305-la-claque-en-3d/" rel="bookmark" title="20 février 2008">la claque en 3D</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/07/09/311-lively-la-vie-virtuelle-de-google/" rel="bookmark" title="9 juillet 2008">Lively : la vie virtuelle de Google</a></li>
</ul>
<p><!-- Similar Posts took 11.384 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2008/06/01/326-et-de-4/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Moteur physique : Box2DFlashAS3 , de la concurrence pour APE&#8230;</title>
		<link>http://www.lafabrick.com/blog/2007/11/17/267-box2dflashas3-de-la-concurrence-pour-ape/</link>
		<comments>http://www.lafabrick.com/blog/2007/11/17/267-box2dflashas3-de-la-concurrence-pour-ape/#comments</comments>
		<pubDate>Sat, 17 Nov 2007 03:51:48 +0000</pubDate>
		<dc:creator>Erick</dc:creator>
				<category><![CDATA[Logiciels / extensions / plugins...]]></category>
		<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[physique]]></category>

		<guid isPermaLink="false">http://92.243.2.196/lafabrick/blog/?p=267</guid>
		<description><![CDATA[<p><img src="http://lafabrick.com/blog/images/erick/physics2DBox-20071117-034128.jpg" alt="" /></p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://lafabrick.com/blog/images/erick/physics2DBox-20071117-034128.jpg" alt="" /></p>
<p><span id="more-267"></span></p>
<p><strong><a href="http://box2dflash.sourceforge.net/">Box2DFlashAS3</a></strong> est un portage AS3 <a hreflang="en" href="http://www.box2d.org/"> d&#8217;un __moteur physique__ développé en C++ par Erin Catto&#8217;s Box2D</a> ).</p>
<p> </p>
<p><img src="http://lafabrick.com/blog/images/erick/2DBox_2-20071117-034626.jpg" alt="" /></p>
<p> </p>
<p>Les exemples sont impressionnants !!!</p>
<p><img src="http://lafabrick.com/blog/images/erick/2dbox3-20071117-034909.jpg" alt="" />Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2007/08/22/204-les-frameworks-as3-qui-vont-bien/" rel="bookmark" title="22 août 2007">Les frameworks AS3 qui vont bien !</a></li>
<li><a href="http://www.lafabrick.com/blog/2007/09/28/205-ape-mise-en-pratique/" rel="bookmark" title="28 septembre 2007">APE : mise en pratique</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/06/01/326-et-de-4/" rel="bookmark" title="1 juin 2008">Alternativa3D : un petit nouveau dans le monde de la 3D Flash</a></li>
<li><a href="http://www.lafabrick.com/blog/2011/01/11/2349-mdame-generateur-code-xsd-as3-flex/" rel="bookmark" title="11 janvier 2011">MdaME, ma résolution 2011 de génération de code AS3</a></li>
</ul>
<p><!-- Similar Posts took 15.138 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2007/11/17/267-box2dflashas3-de-la-concurrence-pour-ape/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>APE : mise en pratique</title>
		<link>http://www.lafabrick.com/blog/2007/09/28/205-ape-mise-en-pratique/</link>
		<comments>http://www.lafabrick.com/blog/2007/09/28/205-ape-mise-en-pratique/#comments</comments>
		<pubDate>Fri, 28 Sep 2007 18:18:56 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[Bientôt chez vous]]></category>
		<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[physique]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://92.243.2.196/lafabrick/blog/?p=205</guid>
		<description><![CDATA[<p><img src="/blog/images/APE.jpg" alt="" /></p> <p>Cela fait longtemps qu'un petit test d'APE, le moteur physique AS3, traîne sur mon ordi&#160;: c’est le moment d’en faire un petit tuto. Depuis le temps que Erick me le demande&#160;!</p>]]></description>
			<content:encoded><![CDATA[<p><img src="/blog/images/APE.jpg" alt="" /></p>
<p>Cela fait longtemps qu&#8217;un petit test d&#8217;APE, le moteur physique AS3, traîne sur mon ordi : c’est le moment d’en faire un petit tuto. Depuis le temps que Erick me le demande !</p>
<p><span id="more-205"></span></p>
<h3>Récupération du framework et création du projet</h3>
<ul>
<li>Dans un premier temps, récupérez le framework APE. <a hreflang="en" href="http://www.cove.org/ape/">A cette adresse</a> vous pouvez le télécharger en version archive.</li>
</ul>
<p>Attention : le code source donné via le repository, et la doc associée ne correspondent pas. Le SVN sert uniquement de dépôt pour les futures versions. A récupérer via le SVN si vous êtes vraiment un foufou des frameworks !</p>
<ul>
<li>Créez un nouveau projet ActionScript, nommé APE.</li>
<li>Clic droit sur le projet, et dans les propriétés, allez dans « ActionScript Build Path », et ajoutez le chemin vers APE (pointez sur le répertoire « source »). APE est maintenant disponible.</li>
</ul>
<h3>Un peu de code !</h3>
<ul>
<li>Import des classes</li>
</ul>
<p>Nous allons donc commencer par importer les classes nécessaires. Nous aurons besoin de APE dans son ensemble, ainsi que la classe Event et KeyboardEvent :</p>
<pre class="brush: js">
package
{
     import org.cove.ape.*;
     import flash.display.Sprite;
     import flash.events.Event;
     import flash.events.KeyboardEvent;

     [SWF(width=&quot;1000&quot;, height=&quot;1000&quot;)]
     public class APE extends Sprite
     {
          public function APE()
         {
         }
     }
}
</pre>
<ul>
<li>Implémentation du moteur</li>
</ul>
<p>Placez vous dans le constructeur et déclarez le moteur comme suit (tout est dans le commentaire !) :</p>
<pre class="brush: js">
public function APE()
{
     // On boust un brin le framerate de l&#039;appli
     stage.frameRate = 60;
     // le paramètre donne la vitesse d&#039;execution du moteur.
     //    La classe APEngine préconise 1/3 ou 1/4...
     //    fesons ce qu&#039;on nous dis !
     APEngine.init(1/4);
     // Définition du conteneur du moteur : ici this
     APEngine.container = this;
     // Ajout du vecteur de gravité global au moteur.
     //    ici : force de 3 vers le bas.
     //    Vous pouvez aussi essayer d&#039;autre valeur de vecteur
     APEngine.addMasslessForce(new Vector(0,3));
}
</pre>
<ul>
<li>Création du monde</li>
</ul>
<p>Maintenant nous allons créer un « monde physique ». Toujours dans le constructeur, nous allons créer 3 objets avec des composantes d’élasticité, et 5 objets standards (toujours dans le constructeur) :</p>
<pre class="brush: js">
// Création du groupe référencant les particules et contrraintes
//    le paramètre true indique que ce groupe contient des particules et contraintes
//    dépendantes les une des autres
//    (en gros que les plaques seront le sol de la bébête)
var g:Group = new Group(true); 

// -OBJET ELASTIQUE ------------------------------------------
// Création de la plaque Elastique 1
//     les paramètres donnent la position x et y,
//     la taille width et height,
//     la rotation de l&#039;élément,
//     et si l&#039;objet est fixe ou non
var plElastic1:RectangleParticle = new RectangleParticle(720, 400, 50, 5, 0,true);
// Elasticité de la plaque
plElastic1.elasticity = 2;
// Style de la plaque
plElastic1.setStyle(0, 0x6699aa, 1, 0x996633);
// Ajout de la plaque dans le groupe
g.addParticle(plElastic1); 

// idem pour la plaque 2
var plElastic2:RectangleParticle = new RectangleParticle(745, 300, 5, 200, 0,true);
plElastic2.elasticity = 1;
plElastic2.setStyle(0, 0x6699aa, 1, 0x996633);
g.addParticle(plElastic2); 

// idem pour la plaque 3
var plElastic3:RectangleParticle = new RectangleParticle(80, 360, 100, 5, 45,true);
plElastic3.elasticity = 2;
plElastic3.setStyle(0, 0x6699aa, 1, 0x996633);
g.addParticle(plElastic3); 

// -OBJET STANDARD ------------------------------------------
// idem que précédent sans propriété particulière
var plStd1:RectangleParticle = new RectangleParticle(400, 400, 600, 5, 0,true);
g.addParticle(plStd1); 

var plStd2:RectangleParticle = new RectangleParticle(55, 220, 5, 200, 0,true);
g.addParticle(plStd2); 

var plStd3:RectangleParticle = new RectangleParticle(350, 200, 300, 5, 0,true);
g.addParticle(plStd3); 

var plStd4:RectangleParticle = new RectangleParticle(450, 300, 350, 5, 0,true);
g.addParticle(plStd4); 

var plStd5:RectangleParticle = new RectangleParticle(550, 100, 350, 5, 0,true);
g.addParticle(plStd5);
</pre>
<p>Vous pouvez jouer avec plein d’autres propriétés pour ces objets : mass, friction, … A vous de tester tout ça !</p>
<ul>
<li>Création de la bébête</li>
</ul>
<p>Bon le plus marrant ! La bébête à roulette. Alors là on peut se lâcher complet ! … bon pas trop quand même pour le tuto, je vous laisse le soin de vous amuser. On va créer une bestiole à 4 roues.</p>
<p>Dans un premier temps, on va déclarer les « roues » au niveau de la classe : elle devront être accessibles à l’ensemble des méthodes pour la suite du tuto :</p>
<pre class="brush: js">
[SWF(width=&quot;1000&quot;, height=&quot;1000&quot;)]
public class APE extends Sprite
{
     private var wheelParticleA:WheelParticle;
     private var wheelParticleB:WheelParticle;
     private var wheelParticleC:WheelParticle;
     private var wheelParticleD:WheelParticle;
     public function APE()
     {
          // …
</pre>
<p>La création en elle-même :</p>
<pre class="brush: js">
// Création de la particule Roue A
//     les paramètres donnent la position x et y,
//     le rayon,
//     et si l&#039;objet est fixe ou non,
//     et on peu lui ajouter des propriétés (ici une masse = 2)
wheelParticleA = new WheelParticle(140,10,14,false, 2);
g.addParticle(wheelParticleA); 

// idem pour la roue B
wheelParticleB = new WheelParticle(180,10,14,false, 2);
g.addParticle(wheelParticleB); 

// idem pour la roue C
wheelParticleC = new WheelParticle(180,50,14,false, 2);
g.addParticle(wheelParticleC); 

// idem pour la roue D
wheelParticleD = new WheelParticle(140,50,14,false, 2);
g.addParticle(wheelParticleD); 

// création des connecteurs entre les roues
//     les paramètres : les 2 objets à connecter,
//     le dureté de la connection,
//     et si l&#039;objet est coller ou non,
//     la taille de la connection
var wheelConnector1:SpringConstraint = new SpringConstraint(wheelParticleA,
     wheelParticleB, 0.5, true, 8);
var wheelConnector2:SpringConstraint = new SpringConstraint(wheelParticleB,
     wheelParticleC, 0.5, true, 8);
var wheelConnector3:SpringConstraint = new SpringConstraint(wheelParticleC,
     wheelParticleD, 0.5, true, 8);
var wheelConnector4:SpringConstraint = new SpringConstraint(wheelParticleD,
     wheelParticleA, 0.5, true, 8); 

// Ajout des connecteurs au groupe
g.addConstraint(wheelConnector1);
g.addConstraint(wheelConnector2);
g.addConstraint(wheelConnector3);
g.addConstraint(wheelConnector4); 

// Ajout du groupe au moteur de rendu
APEngine.addGroup(g);
</pre>
<p>Voila pour la bébête !</p>
<ul>
<li>La routine RUN</li>
</ul>
<p>Nous allons maintenant créer la routine EnterFrame qui va mettre à jour tout ça dans le temps :</p>
<pre class="brush: js">
private function run(evt:Event):void {
// on demande au moteur de faire son boulot ...
APEngine.step();
// ... et on affiche le résultat
APEngine.paint();
}
</pre>
<p>Il faut aussi ajouter dans le constructeur le lancement de l’évènement EnterFrame :</p>
<pre class="brush: js">
addEventListener(Event.ENTER_FRAME, run);
</pre>
<ul>
<li>Ajout de la couche  d&#8217;interactivité</li>
</ul>
<p>Plus qu’à faire bouger le biniou ! Pour cela, on ajoute 2 évènements Clavier KEY_DOWN et KEY_UP avec leurs méthodes associées :</p>
<pre class="brush: js">
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
stage.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
</pre>
<p>Et les méthodes :</p>
<pre class="brush: js"> // Quand l&#039;utilisateur presse une touche ...
private function keyDownHandler(keyEvt:KeyboardEvent):void {
     var keySpeed:Number = 0.4;
     // Quand l&#039;utilisateur presse la touche gauche : on change la vitesse angulaire des roues
     if (keyEvt.keyCode == 37) {
          wheelParticleA.angularVelocity = -keySpeed;
          wheelParticleB.angularVelocity = -keySpeed;
          wheelParticleC.angularVelocity = -keySpeed;
          wheelParticleD.angularVelocity = -keySpeed;
     }
     // idem pour la touche droite
     else if (keyEvt.keyCode == 39) {
          wheelParticleA.angularVelocity = keySpeed;
          wheelParticleB.angularVelocity = keySpeed;
          wheelParticleC.angularVelocity = keySpeed;
          wheelParticleD.angularVelocity = keySpeed;
     }
} 

// Quand l&#039;utilisateur relâche une touche ...
private function keyUpHandler(keyEvt:KeyboardEvent):void {
     // On remet les vitesse angulaire des roue a 0
     wheelParticleA.angularVelocity = 0;
     wheelParticleB.angularVelocity = 0;
     wheelParticleC.angularVelocity = 0;
     wheelParticleD.angularVelocity = 0;
}
</pre>
<p>Et voilà !!!!</p>
<p><a hreflang="fr" href="http://lafabrick.free.fr/labo/ape/APE.as">Code source final</a></p>
<p><a hreflang="fr" href="http://lafabrick.free.fr/labo/ape/APE.swf">Aperçu</a></p>
<h3>Ressources</h3>
<ul>
<li><a hreflang="en" href="http://www.cove.org/ape/">Site web APE</a> (à voir les démos et exemples)</li>
<li><a hreflang="en" href="http://www.cove.org/ape/docs/api/">Documentation de l&#8217;API</a></li>
<li><a hreflang="en" href="http://ape.googlecode.com/svn/">repository SVN</a> pour les anciens !</li>
</ul>
<p>Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2006/12/21/23-api-de-dessin-en-as3/" rel="bookmark" title="21 décembre 2006">API de dessin en AS3</a></li>
<li><a href="http://www.lafabrick.com/blog/2007/08/22/204-les-frameworks-as3-qui-vont-bien/" rel="bookmark" title="22 août 2007">Les frameworks AS3 qui vont bien !</a></li>
<li><a href="http://www.lafabrick.com/blog/2007/11/17/267-box2dflashas3-de-la-concurrence-pour-ape/" rel="bookmark" title="17 novembre 2007">Moteur physique : Box2DFlashAS3 , de la concurrence pour APE&#8230;</a></li>
<li><a href="http://www.lafabrick.com/blog/2010/07/14/1920-flex-4-layouts-viewstack-pure-spark/" rel="bookmark" title="14 juillet 2010">Flex 4 et les layouts &#8211; Faire une ViewStack &laquo;&nbsp;pure&nbsp;&raquo; Spark</a></li>
</ul>
<p><!-- Similar Posts took 12.106 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2007/09/28/205-ape-mise-en-pratique/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Vas-y et apprends !!! ( et range ta chambre pendant que t&#8217;y es )</title>
		<link>http://www.lafabrick.com/blog/2007/09/18/225-va-et-apprends-et-range-ta-chambre-aussi/</link>
		<comments>http://www.lafabrick.com/blog/2007/09/18/225-va-et-apprends-et-range-ta-chambre-aussi/#comments</comments>
		<pubDate>Tue, 18 Sep 2007 02:07:24 +0000</pubDate>
		<dc:creator>Erick</dc:creator>
				<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://92.243.2.196/lafabrick/blog/?p=225</guid>
		<description><![CDATA[Lee Brimelow, depuis peu &#171;&#160;Adobe Platform Evangelist&#160;&#187;, a réouvert les ports de GotoAndLearn. Pour fêter çà il nous a concocté un nouveau petit tuto PaperVision 3D. Hmmmm&#8230; Manque plus qu&#8217;une goutte d&#8217;APE avec çà&#8230; Autres articles sur le même sujet API de dessin en AS3 Petit cours sur l’API de dessin APE : mise en [...]]]></description>
			<content:encoded><![CDATA[<p><a hreflang="en" href="http://theflashblog.com">Lee Brimelow</a>, depuis peu &laquo;&nbsp;Adobe Platform Evangelist&nbsp;&raquo;, a réouvert les ports de <a hreflang="en" href="http://www.gotoandlearn.com/">GotoAndLearn</a>. Pour fêter çà il nous a concocté un nouveau petit tuto PaperVision 3D. Hmmmm&#8230;</p>
<p><img src="http://www.lafabrick.com/blog/images/erick/gotoandlearnplayer-20070918-020310.jpg" alt="" /></p>
<p>Manque plus qu&#8217;une goutte d&#8217;APE avec çà&#8230; <img src='http://www.lafabrick.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2006/12/21/23-api-de-dessin-en-as3/" rel="bookmark" title="21 décembre 2006">API de dessin en AS3</a></li>
<li><a href="http://www.lafabrick.com/blog/2006/11/16/19-petit-cour-sur-lapi-de-dessin/" rel="bookmark" title="16 novembre 2006">Petit cours sur l’API de dessin</a></li>
<li><a href="http://www.lafabrick.com/blog/2007/09/28/205-ape-mise-en-pratique/" rel="bookmark" title="28 septembre 2007">APE : mise en pratique</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/06/01/326-et-de-4/" rel="bookmark" title="1 juin 2008">Alternativa3D : un petit nouveau dans le monde de la 3D Flash</a></li>
</ul>
<p><!-- Similar Posts took 11.405 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2007/09/18/225-va-et-apprends-et-range-ta-chambre-aussi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Les frameworks AS3 qui vont bien !</title>
		<link>http://www.lafabrick.com/blog/2007/08/22/204-les-frameworks-as3-qui-vont-bien/</link>
		<comments>http://www.lafabrick.com/blog/2007/08/22/204-les-frameworks-as3-qui-vont-bien/#comments</comments>
		<pubDate>Wed, 22 Aug 2007 15:47:11 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://92.243.2.196/lafabrick/blog/?p=204</guid>
		<description><![CDATA[<p>Une petite sélection de quelques frameworks que j'utilise régulièrement, et qui pourront vous intéresser.</p>]]></description>
			<content:encoded><![CDATA[<p>Une petite sélection de quelques frameworks que j&#8217;utilise régulièrement, et qui pourront vous intéresser.</p>
<p><span id="more-204"></span></p>
<h3>ImageProcessing</h3>
<p>Ce framework de manipulation d&#8217;image est la mise en place version AS3 des équations graphiques. L&#8217;objectif de ce framework est en gros de vous permettre de réaliser pratiquement toute les manipulations de filtre sur une image, comme dans Photoshop, d&#8217;une manière très simple.</p>
<h5>Ressources</h5>
<ul>
<li><a href="http://blog.je2050.de/imageprocessing-library/" hreflang="de">Lien web</a> (exemples et téléchargement)</li>
<li><a href="http://je2050.de/imageprocessing/" hreflang="de">Documentation</a></li>
</ul>
<h3>Actionscript Physic Engine (APE)</h3>
<p>APE est un un moteur physique AS3. Il vous permet de gérer des object mobiles et imobiles, et de contrôler les valeurs physiques de chacun d&#8217;eux (elasticité, gravité du moteur, etc&#8230;).</p>
<h5>Ressources</h5>
<ul>
<li><a href="http://www.cove.org/ape/" hreflang="en">Lien</a></li>
<li><a href="http://ape.googlecode.com/svn/" hreflang="en">repository SVN</a></li>
<li><a href="http://www.cove.org/ape/docs/api/" hreflang="en">Documentation</a></li>
</ul>
<h3>Framework 3D</h3>
<p>Pour la 3D, 3 frameworks ce distingues, tout 3 étant une transposition de Java3D. A vous de trouver celui qui correspondra au mieux a vos projets, tout trois ayant leurs spécificité propre.</p>
<h4>Sandy</h4>
<p>Ce framework &laquo;&nbsp;Made in France&nbsp;&raquo; est l&#8217;oeuvre de Thomas Pfeiffer. Très simple d&#8217;utilisation, disponible en version AS2 et AS3, il a l&#8217;énorme avantage d&#8217;avoir une communauté francophone très réactive. Vous trouverez notement beaucoup d&#8217;information sur les forum de <a href="http://flash.mediabox.fr" hreflang="fr">MediaBox</a>.  A noter la grande disponibilité et réactivité de Thomas&nbsp;!</p>
<h5>Ressources</h5>
<ul>
<li><a href="http://fr.flashsandy.org" hreflang="fr">Lien</a></li>
<li><a href="http://sandy.googlecode.com/svn/trunk/sandy/as3/branches/3.0/" hreflang="en">SVN</a> (version AS3)</li>
<li><a href="http://www.petitpub.com/labs/media/flash/sandy3/docs/" hreflang="en">Documentation</a> (version AS3)</li>
</ul>
<p>Documentation</p>
<h4>Papervision3D et Away3D</h4>
<p>Ces 2 frameworks sont aussi différents qu&#8217;il sont indissocialbe. Je m&#8217;explique&nbsp;: PaperVision3D est, comme Sandy, une écriture version AS3 de Java3D. Il s&#8217;axe avant tout sur la modélisation 3D d&#8217;object dans l&#8217;espace. Away3D est une réecriture de PaperVision et lui ajoute en plus la gestion de lumière. Il serait question d&#8217;une fusion des 2 framwork pour la version 2 de paperVision. Affaire a suivre donc. Papervision a l&#8217;avantage d&#8217;avoir un composant MXP disponible pour Flash9, permettant une intégration plus &laquo;&nbsp;visuel&nbsp;&raquo; de vos object 3D. A noté que la communauté PaperVision est beaucoup plus anglophone.</p>
<h5>Ressources PaperVision3D</h5>
<ul>
<li><a href="http://wiki.papervision3D.org" hreflang="en">Lien</a></li>
<li><a href="http://papervision3d.googlecode.com/svn/trunk/" hreflang="en">SVN</a></li>
<li><a href="http://www.papervision3d.org/docs/as3/" hreflang="en">Documentation</a></li>
</ul>
<h5>Ressources Away3D</h5>
<ul>
<li><a href="http://www.away3d.com/" hreflang="en">Lien</a></li>
<li><a href="http://away3d.com/downloads" hreflang="en">Page de téléchargement</a></li>
<li><a href="http://away3d.com/docs/" hreflang="en">Documentation</a></li>
</ul>
<p>Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2007/08/11/202-as3-optimiser-les-calculs/" rel="bookmark" title="11 août 2007">AS3 : optimiser les calculs</a></li>
<li><a href="http://www.lafabrick.com/blog/2007/12/06/277-librairie/" rel="bookmark" title="6 décembre 2007">Librairie lafabrick : parce que je le vaut bien</a></li>
<li><a href="http://www.lafabrick.com/blog/2007/09/28/205-ape-mise-en-pratique/" rel="bookmark" title="28 septembre 2007">APE : mise en pratique</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/06/01/326-et-de-4/" rel="bookmark" title="1 juin 2008">Alternativa3D : un petit nouveau dans le monde de la 3D Flash</a></li>
</ul>
<p><!-- Similar Posts took 12.576 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2007/08/22/204-les-frameworks-as3-qui-vont-bien/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>AS3 : optimiser les calculs</title>
		<link>http://www.lafabrick.com/blog/2007/08/11/202-as3-optimiser-les-calculs/</link>
		<comments>http://www.lafabrick.com/blog/2007/08/11/202-as3-optimiser-les-calculs/#comments</comments>
		<pubDate>Sat, 11 Aug 2007 15:48:13 +0000</pubDate>
		<dc:creator>Erick</dc:creator>
				<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://92.243.2.196/lafabrick/blog/?p=202</guid>
		<description><![CDATA[John Grden un des développeurs de Papervision vient de poster une intéressante étude sur la rapidité d&#8217;éxécution de quelques fonctions mathématiques. Pour résumer : pour une division : la multiplication est plus rapide que la division ( &#8216;somme *.5&#8216; est executé plus rapidement que &#171;&#160;somme / 2&#160;&#187; ). Mais c&#8217;est l&#8217;utilisation d&#8217;une &#8216;Bitwise shift operation&#8216; qui s&#8217;avère [...]]]></description>
			<content:encoded><![CDATA[<p><a hreflang="en" href="http://www.rockonflash.com/blog/?p=63">John Grden</a> un des développeurs de Papervision vient de poster une intéressante étude sur la rapidité d&#8217;éxécution de quelques fonctions mathématiques.</p>
<p>Pour résumer :</p>
<ul>
<li><strong>pour une division</strong> : la multiplication est plus rapide que la division ( &#8216;<strong>somme *.5</strong>&#8216; est executé plus rapidement que &laquo;&nbsp;<strong>somme / 2</strong>&nbsp;&raquo; ). Mais c&#8217;est l&#8217;utilisation d&#8217;une &#8216;<a hreflang="fr" href="http://livedocs.adobe.com/flash/9.0_fr/ActionScriptLangRefV3/operators.html#bitwise_right_shift">Bitwise shift operation</a>&#8216; qui s&#8217;avère la plus efficace : &laquo;&nbsp;<strong>somme&gt;&gt; 1</strong>&laquo;&nbsp;</li>
</ul>
<ul>
<li><strong>pour arrondir des nombres</strong> : <strong>var arrondi:uint = uint( decimal );</strong> est ( beaucoup ) plus rapide que <strong>var arrondi:uint = Math.floor( decimal );</strong></li>
</ul>
<p><a hreflang="en" href="http://www.rockonflash.com/blog/?cat=19">Lire l&#8217;article complet</a>Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2007/08/22/204-les-frameworks-as3-qui-vont-bien/" rel="bookmark" title="22 août 2007">Les frameworks AS3 qui vont bien !</a></li>
<li><a href="http://www.lafabrick.com/blog/2007/07/10/191-des-ressources-flash-flex-en-francais/" rel="bookmark" title="10 juillet 2007">Des ressources Flash / Flex&#8230; en francais!</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/01/15/291-flex-masquer-les-warnings-inutiles/" rel="bookmark" title="15 janvier 2008">Flex et les warnings inutiles&#8230;</a></li>
<li><a href="http://www.lafabrick.com/blog/2010/07/14/1920-flex-4-layouts-viewstack-pure-spark/" rel="bookmark" title="14 juillet 2010">Flex 4 et les layouts &#8211; Faire une ViewStack &laquo;&nbsp;pure&nbsp;&raquo; Spark</a></li>
</ul>
<p><!-- Similar Posts took 11.649 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2007/08/11/202-as3-optimiser-les-calculs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Des ressources Flash / Flex&#8230; en francais!</title>
		<link>http://www.lafabrick.com/blog/2007/07/10/191-des-ressources-flash-flex-en-francais/</link>
		<comments>http://www.lafabrick.com/blog/2007/07/10/191-des-ressources-flash-flex-en-francais/#comments</comments>
		<pubDate>Tue, 10 Jul 2007 12:18:12 +0000</pubDate>
		<dc:creator>Erick</dc:creator>
				<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://92.243.2.196/lafabrick/blog/?p=191</guid>
		<description><![CDATA[De la lecture pour les anglophobes ( et les autres aussi ) : une introduction au framework PixLib ( depuis le temp que je cherchais çà ) le blog de Kap IT , qui a publié une bonne introduction à Caingorm Itératif : les composants tooltip, les tabs&#8230; Autres articles sur le même sujet Les frameworks AS3 [...]]]></description>
			<content:encoded><![CDATA[<p>De la lecture pour les anglophobes ( et les autres aussi ) :</p>
<ul>
<li>une <a hreflang="fr" href="http://gdumas.developpez.com/traductions/articles/flash/pixlib/bases/">introduction au framework PixLib</a> ( depuis le temp que je cherchais çà <img src='http://www.lafabrick.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</li>
<li>le <a hreflang="fr" href="http://www.kapit.fr/blog/">blog de Kap IT</a> , qui a publié une <a hreflang="fr" href="http://www.kapit.fr/blog/?p=10">bonne introduction à Caingorm</a></li>
<li><a hreflang="fr" href="http://iteratif.free.fr/blog/">Itératif</a> : les composants tooltip, les tabs&#8230;</li>
</ul>
<p>Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2007/08/22/204-les-frameworks-as3-qui-vont-bien/" rel="bookmark" title="22 août 2007">Les frameworks AS3 qui vont bien !</a></li>
<li><a href="http://www.lafabrick.com/blog/2007/09/13/222-rgler-les-erreurs-d-attaches-dans-flex-ou-comment-forcer-la-mise-jour-des-bindings/" rel="bookmark" title="13 septembre 2007">Régler les erreurs d&#8217;attaches dans Flex, ou comment &quot;forcer&quot; la mise à jour des &quot;bindings&quot;&#8230;</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/01/10/288-cairngorm-pour-les-fainants-tour-d-horizons-des-code-generator/" rel="bookmark" title="10 janvier 2008">Cairngorm pour les fainéants&#8230; Tour d&#8217;horizons des code generator</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/01/15/291-flex-masquer-les-warnings-inutiles/" rel="bookmark" title="15 janvier 2008">Flex et les warnings inutiles&#8230;</a></li>
</ul>
<p><!-- Similar Posts took 11.798 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2007/07/10/191-des-ressources-flash-flex-en-francais/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>API de dessin en AS3</title>
		<link>http://www.lafabrick.com/blog/2006/12/21/23-api-de-dessin-en-as3/</link>
		<comments>http://www.lafabrick.com/blog/2006/12/21/23-api-de-dessin-en-as3/#comments</comments>
		<pubDate>Thu, 21 Dec 2006 16:52:01 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Tutoriels]]></category>

		<guid isPermaLink="false">http://92.243.2.196/lafabrick/blog/?p=23</guid>
		<description><![CDATA[<p>Avec la béta de Flash 9 et autre Flex, il est grand temps de mettre le nez dans l'AS3. Et pour commencer je vous propose de reprendre le billet AS2 sur l'api de dessin, et de migrer le code en AS3... en attendant de passer tout ca dans une classe ...</p>]]></description>
			<content:encoded><![CDATA[<p>Avec la béta de Flash 9 et autre Flex, il est grand temps de mettre le nez dans l&#8217;AS3. Et pour commencer je vous propose de reprendre le billet AS2 sur l&#8217;api de dessin, et de migrer le code en AS3&#8230; en attendant de passer tout ca dans une classe &#8230;</p>
<p><span id="more-23"></span></p>
<h4>Avant de démarrer&#8230;</h4>
<p>&#8230;vous pouvez jeter un oeil sur le billet <a hreflang="fr" href="http://www.lafabrick.com/blog/index.php/2006/11/16/22-petit-cour-sur-lapi-de-dessin">AS2 concernant l&#8217;api de dessin</a> ! Il faut aussi savoir certaines petites choses concernant l&#8217;AS3 : &laquo;&nbsp;_x&nbsp;&raquo; devient &laquo;&nbsp;x&nbsp;&raquo;, &laquo;&nbsp;_root&nbsp;&raquo; devient &laquo;&nbsp;root&nbsp;&raquo;, etc&#8230;</p>
<h4>La création de forme en AS3</h4>
<p>la création dynamique de forme en AS3 nécessite 2 classes : Shape et Graphics, distribué dans le package flash.display. Contrairement à l&#8217;AS2, les méthodes de création de forme (lineStyle, moveTo, &#8230;) ne sont plus ratachées à l&#8217;objet MovieClip, mais à un objet Graphics. L&#8217;objet Shape est le &laquo;&nbsp;conteneur&nbsp;&raquo;. Il suffit, en AS3, d&#8217;invoquer la méthode addChild (:displayObject) pour afficher l&#8217;objet sur la scène.</p>
<h4>Code source</h4>
<pre>
<pre class="brush: js">
// Importation des classes Shape et Graphics
//  pour la création de forme
import flash.display.Shape;
import flash.display.Graphics; 

// Création du conteneur de la forme dynamique
var form:Shape = new Shape(); 

// Déclaration du tableau
var tab:Array = new Array(); 

// Ajout des Object vecteur
tab = [
     {px:200, py:300, cx:200, cy:200},
     {px:300, py:400, cx:200, cy:400},
     {px:450, py:450},
     {px:400, py:300, cx:400, cy:400},
     {px:450, py:220},
     {px:300, py:200, cx:400, cy:200},
     {px:150, py:150, cx:250, cy:200}
];
// Non obligatoire : efface toutes formes préalablement
//  créer avec l’api de dessin
form.graphics.clear(); 

// Définition de la ligne (taille=1, couleur=#333333, alpha=100)
form.graphics.lineStyle(1, 0x333333, 100);
// Définition du fond (couleur=#F7F7F7, alpha=100)
form.graphics.beginFill(0xF7F7F7, 100); 

// Définition du point d’origine
form.graphics.moveTo(tab[tab.length-1].px, tab[tab.length-1].py); 

// Passage dans les lignes du tableau
for (var i=0; i&lt;tab.length; i++)
{
     // Si le point de control cx n&#039;est pas définit,
     //  on applique un lineTo, sinon un curveTo
     tab[i].cx == undefined ?
          form.graphics.lineTo(tab[i].px, tab[i].py) :
          form.graphics.curveTo(tab[i].cx, tab[i].cy, tab[i].px, tab[i].py);
} 

// Définit la fin de la forme
form.graphics.endFill(); 

// Affichage de l&#039;object form
addChild(form);
</pre>
</pre>
<hr />
<h4>Quelques liens pour aller plus loin :</h4>
<ul>
<li><a hreflang="en" href="http://livedocs.macromedia.com/flex/2/langref/index.html">Migration AS2 vers AS3</a></li>
<li><a hreflang="en" href="http://livedocs.macromedia.com/flex/2/langref/index.html">liveDocs flash.display.Graphics</a> : la classe Graphics AS3</li>
</ul>
<p>Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2006/11/16/19-petit-cour-sur-lapi-de-dessin/" rel="bookmark" title="16 novembre 2006">Petit cours sur l’API de dessin</a></li>
<li><a href="http://www.lafabrick.com/blog/2007/09/28/205-ape-mise-en-pratique/" rel="bookmark" title="28 septembre 2007">APE : mise en pratique</a></li>
<li><a href="http://www.lafabrick.com/blog/2007/09/18/225-va-et-apprends-et-range-ta-chambre-aussi/" rel="bookmark" title="18 septembre 2007">Vas-y et apprends !!! ( et range ta chambre pendant que t&#8217;y es )</a></li>
<li><a href="http://www.lafabrick.com/blog/2009/12/04/1453-flex4-skin-et-primitives/" rel="bookmark" title="4 décembre 2009">Flex4 : skin et primitives</a></li>
</ul>
<p><!-- Similar Posts took 12.962 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2006/12/21/23-api-de-dessin-en-as3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

