<?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>AS_Blog &#187; Développement</title>
	<atom:link href="http://www.tsoin.com/asblog/category/developpement/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tsoin.com/asblog</link>
	<description>AS2, AS3, Flash, Flex, AIR....</description>
	<lastBuildDate>Tue, 22 Dec 2009 14:27:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Flash Player, Navigateur, OS et performance</title>
		<link>http://www.tsoin.com/asblog/2008/12/19/flash-player-navigateur-os-et-performance/</link>
		<comments>http://www.tsoin.com/asblog/2008/12/19/flash-player-navigateur-os-et-performance/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 15:36:19 +0000</pubDate>
		<dc:creator>Vincent Helwig</dc:creator>
				<category><![CDATA[Comparatifs]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[CopyPixels]]></category>

		<guid isPermaLink="false">http://www.tsoin.com/asblog/?p=207</guid>
		<description><![CDATA[Excellent article de Jensa sur Flashgamer, qui compare les performances de la fonction copyPixels sur différents OS (Mac / Win XP / Win Vista ), sur différents navigateurs (Firefox, Opera, Chrome, Safari, IE&#8230;), et sur différents processeurs ( Core 2 Duo, Quadcore Xeon&#8230;), et les résultats sont assez impressionnants :
FlashPlayer 10 sur Opera / Win [...]]]></description>
			<content:encoded><![CDATA[<p>Excellent article de Jensa sur <a href="http://www.flashgamer.com" target="_blank">Flashgamer</a>, qui compare les performances de la fonction copyPixels sur différents OS (Mac / Win XP / Win Vista ), sur différents navigateurs (Firefox, Opera, Chrome, Safari, IE&#8230;), et sur différents processeurs ( Core 2 Duo, Quadcore Xeon&#8230;), et les résultats sont assez impressionnants :</p>
<p><b>FlashPlayer 10 sur Opera / Win XP est 4 fois plus rapide que sur Safari / Mac</b></p>
<p>Vous trouverez l&#8217;ensemble de l&#8217;article, dont les résultats comparatifs et les fichiers AS de test, sur le site de <a href="http://www.flashgamer.com/2008/12/copypixels_and_browser_speed_l.html" target="_blank">Flashgamer : CopyPixels and browser speed limits</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsoin.com/asblog/2008/12/19/flash-player-navigateur-os-et-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SWFAddress 2.2</title>
		<link>http://www.tsoin.com/asblog/2008/12/18/swfaddress-22/</link>
		<comments>http://www.tsoin.com/asblog/2008/12/18/swfaddress-22/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 15:43:24 +0000</pubDate>
		<dc:creator>Vincent Helwig</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[SWFAddress]]></category>

		<guid isPermaLink="false">http://www.tsoin.com/asblog/?p=203</guid>
		<description><![CDATA[La nouvelle version de SWFAddress vient d&#8217;être publiée, les nouveautés de la version 2.2 sont les suivantes :
- Refactored JavaScript implementation
- New SWFAddress.swc AS3 component
- New CS4 based Splash screen sample
- New Digg API sample
- New up() method for easier deep linking path navigation
- New XSS protection that doesn&#8217;t affect special characters
- Support for Internet [...]]]></description>
			<content:encoded><![CDATA[<p>La nouvelle version de SWFAddress vient d&#8217;être publiée, les nouveautés de la version 2.2 sont les suivantes :<br />
- Refactored JavaScript implementation<br />
- New SWFAddress.swc AS3 component<br />
- New CS4 based Splash screen sample<br />
- New Digg API sample<br />
- New up() method for easier deep linking path navigation<br />
- New XSS protection that doesn&#8217;t affect special characters<br />
- Support for Internet Explorer 8<br />
- Support for custom HTTP status messages in the SEO sample<br />
- Improved title handling<br />
- Improved unload event handling for IE<br />
- Updated Rails sample<br />
- Fixed getBaseURL() for AS3<br />
- Fixed Safari 2.0-2.0.3 support<br />
- Build-in fix for the Firefox 3/Mac OSX blinking effect<br />
- Additional onLoad fix for application/xml content type<br />
- Fixed optional options parameter for the popup method<br />
- Cross platform build script<br />
- Various optimizations</p>
<p>A noté qu&#8217;une <a href="http://www.asual.com/netaddress/" target="_blank">version pour Silverlight</a> devrait sortit l&#8217;année prochaine&#8230;</p>
<p><a href="http://www.asual.com/blog/swfaddress/2008/12/18/swfaddress-22.html" target="_blank">La page des nouvautés de SWFAddress 2.2 &raquo;</a><br />
<a href="http://www.asual.com/swfaddress/" target="_blank">Télécharger SWFAddress 2.2 &raquo;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsoin.com/asblog/2008/12/18/swfaddress-22/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KapInspect par KapIT</title>
		<link>http://www.tsoin.com/asblog/2008/12/16/kapinspect-par-kapit/</link>
		<comments>http://www.tsoin.com/asblog/2008/12/16/kapinspect-par-kapit/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 15:41:46 +0000</pubDate>
		<dc:creator>Vincent Helwig</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[KapInspect]]></category>
		<category><![CDATA[KapIt]]></category>

		<guid isPermaLink="false">http://www.tsoin.com/asblog/?p=159</guid>
		<description><![CDATA[KapIT propose depuis quelques mois un outil de debbugage et d&#8217;inspection d&#8217;application Flex, KapInspect.
Très complet et très utile, à la hauteur de la renommée de KapIT en somme, KapInspect est l&#8217;outil indispensable du développeur Flex (l&#8217;équivalent de la Web Developer Toolbar de Firefox)
Voici les possibilités qu&#8217;offrent KapInspect :
- Inspection des objets (Bitmap de visualisation, liste [...]]]></description>
			<content:encoded><![CDATA[<p>KapIT propose depuis quelques mois un outil de debbugage et d&#8217;inspection d&#8217;application Flex, <a href="http://lab.kapit.fr/display/kapinspect/Kap%20Inspect target="_blank">KapInspect</a>.<br />
Très complet et très utile, à la hauteur de la renommée de KapIT en somme, KapInspect est l&#8217;outil indispensable du développeur Flex (l&#8217;équivalent de la Web Developer Toolbar de Firefox)</p>
<p>Voici les possibilités qu&#8217;offrent KapInspect :<br />
- Inspection des objets (Bitmap de visualisation, liste des propriétés..)<br />
- Filtrage des proriétés par type ( String, Number, Object&#8230;)<br />
- Mémoire utilisée en temps réel<br />
- Modification style<br />
- Ciblage des éléments<br />
- Evènements<br />
- Statistiques<br />
- &#8230;</p>
<p><center><img src="http://www.tsoin.com/asblog/wp-content/uploads/2008/12/overview.png" width="620" height="405" class="cadre" /></center></p>
<p>Pour utiliser KapInspect, il faut vous <a href="http://lab.kapit.fr/login.action" target="_blank">identifier &raquo;</a> et ensuite télécharger le package KapInspect.zip.<br />
Copier KapInspect.swc dans le dossier de votre projet, et l&#8217;ajouter dans le library Path ( Project > Properties > Flex Build Path > Librairy Path > Add SWC ).<br />
Il faut suffit alors d&#8217;instancier KapInspect de cette façon</p>
<div class="codeAS">&lt;kapit:KapInspect /&gt;</div>
<p>Vous pouvez instancier KapInspect en code, ou alors ne pas vouloir charger toute la librairie dans votre application Flex, vous pouvez voir de quelle façon sur la <a href="http://lab.kapit.fr/display/kapinspect/Integration+Guide" target="_blank">page de présentation de KapInspect.</a></p>
<p>Gage de qualité KapInspect est visible dans l&#8217;application AIR : <a href="http://flex.org/tour" target="_blank">TourDeFlex</a></p>
<p>Vous pouvez retrouver KapInspect et d&#8217;autre applications sur le <a href="http://lab.kapit.fr" target="_blank">Lab de KapIt &raquo;</a></p>
<p><a href="http://lab.kapit.fr/display/kapinspect/Kap%20Inspect" target="_blank">La page de KapInspect &raquo;</a><br />
<a href="http://lab.kapit.fr/display/kapinspect/Integration+Guide" target="_blank"> Le guide d&#8217;intégration de KapInspect &raquo;</a><br />
<a href="http://lab.kapit.fr/display/kapinspect/Product+guide" target="_blank">Le guide du développeur &raquo;</p>
<p>via <a href="http://www.flex888.com/945/kapinspect-x-ray-glasses-for-debugging-and-maintaining-flexas3-applications.html" target="_blank">Flex888 &raquo;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsoin.com/asblog/2008/12/16/kapinspect-par-kapit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Le décalage binaire, comment ca marche ?</title>
		<link>http://www.tsoin.com/asblog/2008/11/26/le-decalage-binaire-comment-ca-marche/</link>
		<comments>http://www.tsoin.com/asblog/2008/11/26/le-decalage-binaire-comment-ca-marche/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 14:54:07 +0000</pubDate>
		<dc:creator>Vincent Helwig</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[binaire]]></category>
		<category><![CDATA[calcul]]></category>
		<category><![CDATA[décalage]]></category>

		<guid isPermaLink="false">http://www.tsoin.com/asblog/?p=90</guid>
		<description><![CDATA[Il y a des petites astuces qu&#8217;on ne connait (peut-être) pas, et qui peuvent faire gagner en performance&#8230;
Les décalages binaires font partis de ces astuces&#8230; Le principe étant de décaler les bits d&#8217;une valeur. 
Le premier argument (x) est la valeur à décaler, le second argument (y) est le nombre de décalage a effectuer :
 [...]]]></description>
			<content:encoded><![CDATA[<p>Il y a des petites astuces qu&#8217;on ne connait (peut-être) pas, et qui peuvent faire gagner en performance&#8230;<br />
Les décalages binaires font partis de ces astuces&#8230; Le principe étant de décaler les bits d&#8217;une valeur. </p>
<p>Le premier argument (x) est la valeur à décaler, le second argument (y) est le nombre de décalage a effectuer :</p>
<div class="codeAS"> x >> y</div>
<p>Décaler un bit à gauche correspond à multiplier par 2 : </p>
<div class="codeAS"> 5 << 1 = 10</div>
<p>Décaler un bit à droite correspond à diviser par 2 : </p>
<div class="codeAS"> 10 >> 1 = 5</div>
<p>Chaque décalage correspond à multiplier / diviser par 2, si augmente le nombre de décalage cela équivaut à :</p>
<p>Nombre de décalage : 1 => Multiplication / Division par : 2<br />
Nombre de décalage : 2 => Multiplication / Division par : 4<br />
Nombre de décalage : 3 => Multiplication / Division par : 8<br />
Nombre de décalage : 4 => Multiplication / Division par : 16<br />
Nombre de décalage : 5 => Multiplication / Division par : 32<br />
Nombre de décalage : &#8230; => Multiplication / Division par : &#8230;</p>
<p><strong>!!! Attention !!! Le résultat est toujours un entier !</strong></p>
<div class="codeAS"> 50 >> 2 = 12</div>
<p>Aller plus loin :<br />
<a href="http://www.commentcamarche.net/contents/base/binaire.php3" target="blank">Le décalage binaire &raquo;</a><br />
<a href="http://www.commentcamarche.net/contents/base/representation.php3" target="_blank">Représentation des nombres entiers et réels &raquo;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsoin.com/asblog/2008/11/26/le-decalage-binaire-comment-ca-marche/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Adobe Cocomo</title>
		<link>http://www.tsoin.com/asblog/2008/11/26/adobe-cocomo/</link>
		<comments>http://www.tsoin.com/asblog/2008/11/26/adobe-cocomo/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 12:05:10 +0000</pubDate>
		<dc:creator>Vincent Helwig</dc:creator>
				<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[AdobeTV]]></category>
		<category><![CDATA[Cocomo]]></category>

		<guid isPermaLink="false">http://www.tsoin.com/asblog/?p=151</guid>
		<description><![CDATA[Présenté à MAX 2008 de San Fransisco, Adobe Cocomo est disponible en version beta sur le labs d&#8217;Adobe.
Cocomo, c&#8217;est une plateforme de service, hébergé par Adobe (sur le serveur acrobat.com), ainsi que des composants Flex, permettant l&#8217;ajout d&#8217;outils collaboratifs aux applications Flex :
- VoIP ( Voix sur réseau )
- Webcam
- Chat
- &#171;&#160;Tableau blanc&#160;&#187; multi utilisateurs
- [...]]]></description>
			<content:encoded><![CDATA[<p>Présenté à MAX 2008 de San Fransisco, Adobe Cocomo est disponible en version beta sur le labs d&#8217;Adobe.<br />
Cocomo, c&#8217;est une plateforme de service, hébergé par Adobe (sur le serveur acrobat.com), ainsi que des composants Flex, permettant l&#8217;ajout d&#8217;outils collaboratifs aux applications Flex :<br />
- VoIP ( Voix sur réseau )<br />
- Webcam<br />
- Chat<br />
- &laquo;&nbsp;Tableau blanc&nbsp;&raquo; multi utilisateurs<br />
- Partage de fichiers en temps réel<br />
- Gestion des utilisateurs<br />
- &#8230;</p>
<p>Cocomo n&#8217;est utilisable que sur Flex 3 ( il n&#8217;est pas compatible Flex2 ou Flash), il faut aller sur <a href="https://cocomo.acrobat.com/" target="_blank">cocomo.acrobat.com</a> et vous identifier, pour télécharger le sdk (comprenant aussi le pdf Cocomo Developper Guide, ainsi que 15 exemples d&#8217;utilisation). C&#8217;est sur cette même adresse que vous accéderez à la gestion de votre compte Cocomo et de vos &laquo;&nbsp;Rooms&nbsp;&raquo;. </p>
<p>Pour installer Cocomo dans Flex Builder 3, créer un dossier <i>com.adobe.cocomo</i>, dans le dossier des plugins de Flex Builder 3. Copier l&#8217;ensemble du .zip SDK dans ce dossier.</p>
<p>Pour chaque projet nécessitant Cocomo, il faut ajouter le chemin vers le .swc, dans Project > Properties > Flex Build Path > Library Path cliquer sur <em>AddSWC</em> et sélectionner le &laquo;&nbsp;cocomo.swc&nbsp;&raquo; se trouvant dans le dossier <em>lib</em> (Sélectionner le sous dossier player9 / player10 suivant la version de votre application).</p>
<p>Il vous faut ensuite créer une room dans votre espace dédié sur le <a href="https://cocomo.acrobat.com/">Cocomo Developer Portal</a>, une room équivaut à un espace de réunion de virtuel, tous les messages, fichiers, vidéos&#8230; publiés dans cet espace seront visible par les autres utilisateurs :</p>
<p><center><img src="http://www.tsoin.com/asblog/wp-content/uploads/2008/11/cocomo_creation.jpg" class="cadre" /></center></p>
<p>Après avoir créer un nouveau projet (ne pas oublier d&#8217;y ajouter le chemin vers cocomo.swc), vous devez vous connecter à la plateforme Cocomo, il faut obligatoirement une instance de la classe <em>AdobeHSAuthenticator</em>, ainsi qu&#8217;une instance d&#8217;une des classe étendant l&#8217;interface <em>IConnectSession</em>, ie : ConnectSession, ConnectSessionContainer ou SessionContainerProxy.</p>
<p>Pour mon exemple, j&#8217;ai utilisé le composant ConnectSession, prenant en paramètre roomURL le chemin vers la room crée précédemment, ce chemin correspond à l&#8217;adresse de votre compte (&laquo;&nbsp;http://connectnow.acrobat.com/tsoin&nbsp;&raquo; en l&#8217;occurence), puis la nom de votre room : <em>roomURL = http://connectnow.acrobat.com/tsoin/Cocomo001</em>.</p>
<p>Le composant AdobeHSAuthenticator  permet plusieurs scénarios :<br />
- Authentification par AdobeID (paramètres <em>userName</em> &#038; <em>password</em>)<br />
- Connexion en invité (paramètre <em>userName</em>)<br />
- Authentification externe (paramètre <em>authenticationKey</em> )<br />
&#8230;</p>
<p>L&#8217;exemple suivant utilise le composant SimpleChat, permettant aux utilisateurs lançant l&#8217;application de se connecter sous le pseudo Guest XXX, et de pouvoir discuter entre eux :</p>
<div class="codeAS">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;<br />
&lt;mx:Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; xmlns:rtc=&quot;CocomoNameSpace&quot;<br />
&nbsp;&nbsp;&nbsp;xmlns:session=&quot;com.adobe.rtc.session.*&quot; xmlns:pods=&quot;com.adobe.rtc.pods.*&quot;<br />
&nbsp;&nbsp;&nbsp;xmlns:collaboration=&quot;com.adobe.rtc.collaboration.*&quot; creationComplete=&quot;cSession.login()&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;rtc:AdobeHSAuthenticator id=&quot;user&quot; userName=&quot;Guest&quot;/&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;session:ConnectSession roomURL=&quot;AccountURL_Room/Vince&quot; id=&quot;cSession&quot; authenticator=&quot;{user}&quot; /&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;mx:VBox width=&quot;100%&quot; height=&quot;100%&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;mx:DataGrid width=&quot;100%&quot; height=&quot;100%&quot; dataProvider=&quot;{cSession.userManager.userCollection}&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;mx:columns&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;mx:DataGridColumn dataField=&quot;displayName&quot; headerText=&quot;User&quot;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;mx:DataGridColumn dataField=&quot;role&quot; headerText=&quot;Role&quot;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/mx:columns&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/mx:DataGrid&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;pods:SimpleChat width=&quot;100%&quot; height=&quot;100%&quot;/&gt;<br />
 &nbsp;&nbsp;&nbsp;&lt;/mx:VBox&gt;<br />
&lt;/mx:Application&gt;</div>
<p><center>[kml_flashembed movie="http://tsoin.com/asblog/tutoriel/Cocomo/001/Cocomo.swf" height="600" width="542" /]</center></p>
<p>Pour la beta, les restrictions sont les suivantes :<br />
- 25 utilisateurs simultané<br />
- 15 000 minutes de connexion utilisateur par mois<br />
- 250 000 messages publié pas mois<br />
- 3 Go de bande passante par mois</p>
<p>La version beta est en version gratuite, mais il n&#8217;y a pas encore de <a href="http://www.adobe.com/cfusion/webforums/forum/messageview.cfm?forumid=72&#038;catid=759&#038;threadid=1406198&#038;enterthread=y" targt="_blank">coût d&#8217;utilisation pour la release</a>&#8230;</p>
<p><a href="http://labs.adobe.com/technologies/cocomo/" target="_blank">La page Cocomo sur le labs »</a><br />
<a href="http://www.adobe.com/cfusion/webforums/forum/categories.cfm?forumid=72&#038;catid=759&#038;entercat=y" target="_blank"> Forum Cocomo &raquo;</a><br />
<a href="http://connectnow.acrobat.com/" target="_blank"> Exemple Cocomo : ConnectNow &raquo;</a><br />
<a href="http://blogs.adobe.com/collabmethods/" target="_blank">Blog Collaborative Methods &raquo;</a></p>
<p>Présentation et exemple de Cocomo par Ryan Stewart :<br />
<center><embed src="http://tv.adobe.com/Embed.swf" quality="high" bgcolor="#000000" width="640" height="385" name="AdobeTVPlayer" play="true" loop="false" quality="high" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" flashVars="v=~b64~aHR0cDovL2Fkb2JlLmVkZ2Vib3NzLm5ldC9mbGFzaC9hZG9iZS9hZG9iZXR2Mi90ZWNoX3RhbGtfd2l0aF9yeWFuX3N0ZXdhcnQvMTAyX3R0cl8wMDMuZmx2P3Jzc19mZWVkaWQ9MTU3OSZ4bWx2ZXJzPTI=&#038;w=640&#038;h=385"></embed></center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsoin.com/asblog/2008/11/26/adobe-cocomo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apprendre Flex en 1 semaine</title>
		<link>http://www.tsoin.com/asblog/2008/11/24/apprendre-flex-en-1-semaine/</link>
		<comments>http://www.tsoin.com/asblog/2008/11/24/apprendre-flex-en-1-semaine/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 10:40:32 +0000</pubDate>
		<dc:creator>Vincent Helwig</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://www.tsoin.com/asblog/?p=149</guid>
		<description><![CDATA[Excellente liste de liens sur le Flex Developper Center, pour apprendre Flex en 1 semaine.
Découper en 5 &#171;&#160;jours&#160;&#187;, vous apprendrez grâce à des vidéos, mettrez en pratique avec des exercices en PDF. Des bases aux fonctionnalités plus complexes (archtecture..) en passant par la création de composants, la customisation avecCS3, un petit lien à garder dans [...]]]></description>
			<content:encoded><![CDATA[<p>Excellente liste de liens sur le <a href="http://www.adobe.com/devnet/flex/" target="_blank">Flex Developper Center</a>, pour apprendre Flex en 1 semaine.<br />
Découper en 5 &laquo;&nbsp;jours&nbsp;&raquo;, vous apprendrez grâce à des vidéos, mettrez en pratique avec des exercices en PDF. Des bases aux fonctionnalités plus complexes (archtecture..) en passant par la création de composants, la customisation avecCS3, un petit lien à garder dans les bookmarks !</p>
<p><a href="http://www.adobe.com/devnet/flex/videotraining/" target="_blank">Flex in a Week raquo;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsoin.com/asblog/2008/11/24/apprendre-flex-en-1-semaine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KeyboardEvent &amp; KeyCode</title>
		<link>http://www.tsoin.com/asblog/2008/11/24/keyboardevent-keycode/</link>
		<comments>http://www.tsoin.com/asblog/2008/11/24/keyboardevent-keycode/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 10:14:30 +0000</pubDate>
		<dc:creator>Vincent Helwig</dc:creator>
				<category><![CDATA[Développement]]></category>

		<guid isPermaLink="false">http://www.tsoin.com/asblog/?p=148</guid>
		<description><![CDATA[Correspondance des touches du clavier et keycode : 
Keyboard Keys and Key Code Values &#187;
]]></description>
			<content:encoded><![CDATA[<p>Correspondance des touches du clavier et keycode : </p>
<p><a href="http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&#038;file=00001136.html" target="_blank">Keyboard Keys and Key Code Values &raquo;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsoin.com/asblog/2008/11/24/keyboardevent-keycode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comparatif Moteurs 3D, et les plus performants sont&#8230;</title>
		<link>http://www.tsoin.com/asblog/2008/11/20/comparatif-moteurs-3d-et-les-plus-performants-sont/</link>
		<comments>http://www.tsoin.com/asblog/2008/11/20/comparatif-moteurs-3d-et-les-plus-performants-sont/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 17:04:46 +0000</pubDate>
		<dc:creator>Vincent Helwig</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[Alternativa3D]]></category>
		<category><![CDATA[Away3D]]></category>
		<category><![CDATA[Comparatif]]></category>
		<category><![CDATA[moteur]]></category>
		<category><![CDATA[Papervision3D]]></category>

		<guid isPermaLink="false">http://www.tsoin.com/asblog/?p=142</guid>
		<description><![CDATA[Suite à mon comparatif de performance, makemepulse commentait que la dernière release de Papervision3D réglait le problème des fuites de mémoire. Ne pouvant rester sur une conclusion qui n&#8217;avait plus lieu d&#8217;être, j&#8217;ai donc refais mes tests avec la dernière version des moteurs ( excepté Sandy3D, n&#8217;ayant pas eu de nouvelle version depuis le début [...]]]></description>
			<content:encoded><![CDATA[<p>Suite à mon <a href="http://www.tsoin.com/asblog/2008/11/18/comparatifs-moteurs-3d-et-le-plus-performant-est/" target="_blank">comparatif de performance</a>, makemepulse commentait que la dernière release de Papervision3D réglait le problème des fuites de mémoire. Ne pouvant rester sur une conclusion qui n&#8217;avait plus lieu d&#8217;être, j&#8217;ai donc refais mes tests avec la dernière version des moteurs ( excepté Sandy3D, n&#8217;ayant pas eu de nouvelle version depuis le début de l&#8217;année ).</p>
<p>Voici donc les versions testées :<br />
- Papervision3D : Public Beta 2.0 &#8211; Great White / 2008.09.09 (revision 804)<br />
- Away3D : 2.2.0 / 2008.09.27<br />
- Alternativa3D : 5.5.0 / 2008.10.25</p>
<p>Je ne reprendrais pas les 3 premiers points du comparatif précédent, les différence étant minimes, surement du à la machine plus qu&#8217;au améliorations ( les différences de temps de créations sont inférieures à 0.5ms ). LE point important étant la mémoire, et la formidable amélioration de Papervision, qui vient changer la donne&#8230;</p>
<p>Alternativa3D reste le moteur qui gère le mieux la mémoire, mais Papervision3D vient coiffer Away3D au poteau&#8230; Même si la différence reste peu importante, le retard rattrapé par Papervision3D est remarquable, vous pouvez retrouver les explications de la fuite moiré sur <a href="http://www.sebleedelisle.com/?p=309" target="_blank">ce post de Seb Lee-Delisle &raquo;</a><br />
Vous retrouvez dans les graphes ci-dessous l&#8217;évolution de l&#8217;usage mémoire par chacun des trois moteurs 3D :</p>
<p><u>Alternativa3D</u><center><img src="http://www.tsoin.com/asblog/wp-content/uploads/2008/11/alternativa.jpg" class="cadre" /></center></p>
<p><u>Away3D</u><center><img src="http://www.tsoin.com/asblog/wp-content/uploads/2008/11/away.jpg" class="cadre" /></center></p>
<p><u>Papervision3D</u><center><img src="http://www.tsoin.com/asblog/wp-content/uploads/2008/11/papervision.jpg" class="cadre" /></center></p>
<p>Les conclusions sont donc différentes, et pouvoir assigner une &laquo;&nbsp;vraie&nbsp;&raquo; première place, me semble impossible.<br />
- Away3D : temps de création et mémoire utilisé à la création <em>les plus bas</em>, mais mémoire globale <em>plus haute</em><br />
- Alternativa3D : temps de création au <em>plus haut</em>, et mémoire à la création dans la <em>moyenne</em>, mais mémoire globale la <em>plus basse</em><br />
- Papervision3D : temps de création, mémoire à la création, et mémoire globale dans la <em>moyenne</em>.</p>
<p>Autant il est était facile de prendre une décision avec l&#8217;ancien comparatif, autant avec celui-ci, les écarts sont infimes, les choix difficiles, je dirais match nul&#8230;<br />
Reste à voir graphiquement lequel est celui qui s&#8217;en sort le mieux&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsoin.com/asblog/2008/11/20/comparatif-moteurs-3d-et-les-plus-performants-sont/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Comparatif Moteurs 3D,  et le plus performant est&#8230;</title>
		<link>http://www.tsoin.com/asblog/2008/11/18/comparatifs-moteurs-3d-et-le-plus-performant-est/</link>
		<comments>http://www.tsoin.com/asblog/2008/11/18/comparatifs-moteurs-3d-et-le-plus-performant-est/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 15:52:42 +0000</pubDate>
		<dc:creator>Vincent Helwig</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[Alternativa3D]]></category>
		<category><![CDATA[Away3D]]></category>
		<category><![CDATA[Comparatif]]></category>
		<category><![CDATA[Papervision3D]]></category>
		<category><![CDATA[Sandy3D]]></category>

		<guid isPermaLink="false">http://www.tsoin.com/asblog/?p=93</guid>
		<description><![CDATA[Suite aux derniers posts concernant les moteurs 3D ( Alterntiva3D, Away3D, Papervision3D &#38; Sandy3D), j&#8217;ai fait quelques tests afin de comparer les temps de création d&#8217;objet (Cube, Sphere, Cône et Plane) dans chacun des moteurs. 

!!! UPDATE !!!
Attention, suite aux dernières mises à jour du framework de Papervision3D, les problèmes de mémoire évoquer ci-dessous n&#8217;ont [...]]]></description>
			<content:encoded><![CDATA[<p>Suite aux derniers posts concernant les moteurs 3D ( Alterntiva3D, Away3D, Papervision3D &amp; Sandy3D), j&#8217;ai fait quelques tests afin de comparer les temps de création d&#8217;objet (Cube, Sphere, Cône et Plane) dans chacun des moteurs. </p>
<div class="codeAS">
<strong>!!! UPDATE !!!</strong><br />
Attention, suite aux dernières mises à jour du framework de Papervision3D, les problèmes de mémoire évoquer ci-dessous n&#8217;ont plus lieu d&#8217;être.<br />
Comparatif à jour &#038; complémentaire <a href="http://www.tsoin.com/asblog/2008/11/20/comparatif-moteurs-3d-et-les-plus-performants-sont/">ici &raquo;</a>
</div>
<p><u><strong>Mise à disposition des sources :</strong></u><br />
- <a href="http://www.tsoin.com/asblog/tutoriel/Alternativa3D.zip">Alternativa3D &raquo;</a> (le framework n&#8217;est pas inclus, n&#8217;étant pas en open-source)<br />
- <a href="http://www.tsoin.com/asblog/tutoriel/Away3D.zip">Away3D &raquo;</a><br />
- <a href="http://www.tsoin.com/asblog/tutoriel/PV3D.zip">Papervision3D &raquo;</a><br />
- <a href="http://www.tsoin.com/asblog/tutoriel/Sandy3D.zip">Sandy3D &raquo;</a></p>
<p>Ma méthode fut la suivante :<br />
- Implémentation au plus simple et identique pour chacun des moteurs.<br />
- Mécanique identique de création des objets, instance unique.<br />
- Une seule instance des materials ( filaire et texture )<br />
- Utilisation de calcul asynchrone afin de ne pas avoir de valeurs faussés ( la création de l&#8217;objet est faite quand le processeur le permet )<br />
- Test à la création de 1000 objets, avec différentes variables ( filaire ou bitmap, lissage de l&#8217;image ou non)<br />
- Stockage des données dans un tableau, les résultats utilisés sont les moyennes de temps de création et de mémoire utilisés par objet.<br />
- Vérification de la mémoire initiale, du pique de mémoire, ainsi que de la mémoire utilisé après les tests.</p>
<p>Version :<br />
- Papervision3D : Public Beta 2.0 &#8211; Great White / 2008.09.09 (revision 731)<br />
- Away3D : 2.1.0 / 2008.05.23<br />
- Sandy3D : 3.0.2 / 2008.02.25<br />
- Alternativa3D : 5.3.0 / 2008.08.12</p>
<p>Comme vous pourrez le remarquer les résultats sont très disparates suivant les moteurs, et même si les objets n&#8217;ont pas les mêmes caractéristiques (le nombre de segments d&#8217;un cube ne peut pas être augmenté dans Away3D &amp; Sandy3D, contrairement à Alternativa3D &amp; Papervision3D), les différences parlent d&#8217;elles mêmes&#8230; Vous le verrez dans les 4 points suivants :</p>
<p><strong>1. Poids SWF</strong><br />
L&#8217;exportation du fichier swf et le poids de celui ci (non négligeable au moment de l&#8217;accès au site, notamment pour les petites connexions) montre les premières différences entre les moteurs.<br />
Le premier cas importe les package de camera, vue et scene.<br />
Le second cas importe en plus les pacakge de Cube, Plane, Cone et Sphere.</p>
<table border="0">
<tbody>
<tr>
<td></td>
<td><em><center>Cas 1 : Implémentation du moteur</center></em></td>
<td>-</td>
<td><em><center>Cas 2 : Implémentation primitives</center></em></td>
</tr>
<tr>
<td><em>1. Sandy3D</em></td>
<td><em><center>60ko</center</em></td>
<td>-</td>
<td><em><center>87ko</center</em></td>
</tr>
<tr>
<td><em>2. Alternativa3D</em></td>
<td><em><center>70ko</center</em></td>
<td>-</td>
<td><em><center>94ko</center</em></td>
</tr>
<tr>
<td><em>3. Papervision3D</em></td>
<td><em><center>83ko</center</em></td>
<td>-</td>
<td><em><center>95ko</center</em></td>
</tr>
<tr>
<td><em>4. Away3D</em></td>
<td><em><center>105ko</center</em></td>
<td>-</td>
<td><em><center>132ko</center</em></td>
</tr>
</tbody>
</table>
<p><strong>2. Mémoire à l&#8217;initialisation du moteur:</strong><br />
Voyons maintenant l&#8217;espace mémoire pris lors de l&#8217;implémentation du moteur 3D. On test la mémoire sans lancer aucune création d&#8217;objet, et les moteurs montrent déjà que certains sont plus optimisés et d&#8217;autres, beaucoup, beaucoup moins :</p>
<p><em>1. Papervision3D &#8211; 167 ko<br />
2. Away3D &#8211; 199 ko<br />
3. Alternativa3D &#8211; 202 ko<br />
4. Sandy3D &#8211; 1 136 ko</em></p>
<p>Sandy3D part donc déjà avec un gros handicap, on verra par la suite que ce n&#8217;est pas le seul&#8230;</p>
<p><strong>3. Mémoire Globale:</strong><br />
L&#8217;écart se creuse encore, Papervision3D et Sandy3D ont une très mauvaise gestion de la mémoire, en effet malgré la suppression de l&#8217;objet sur la scène et de son instance, il est toujours en mémoire. L&#8217;application monte donc en mémoire, sans jamais redescendre, ce qui peut s&#8217;avérer extrêmement dangereux&#8230; Il est à noté que Away3D &amp; Alternativa3D gèrent par contre très bien la mémoire, et suppriment les éléments comme il faut. Après la création  de plusieurs milliers d&#8217;instance de plusieurs objets, on se retrouve avec une mémoire :</p>
<p><em>1. Away3D &#8211; 700 ko<br />
2. Alternativa3D &#8211; 876 ko<br />
3. Papervision3D &#8211; 50 784 ko<br />
4. Sandy3D &#8211; 175 552 ko</em></p>
<p>Les graphes ci-dessous montre bien la gestion de la mémoire par les 4 moteurs 3D, on remarque sur Alternativa3D &amp; Away3D, la mémoire qui évolue suivant les suppressions d&#8217;éléments et le lancement du Garbage Collector, alors que pour Papervision3D &amp; Sandy3D, ca monte, ca monte, ca monte&#8230;.</p>
<p><span style="text-decoration: underline;">Alternativa3D</span><br />
<center><img class="cadre" title="Alternativa3D" src="http://www.tsoin.com/asblog/wp-content/uploads/2008/11/alternativa3d.jpg" alt="Alternativa3D" /></center></p>
<p><span style="text-decoration: underline;">Away3D</span><br />
<center><img class="cadre" title="Away3D" src="http://www.tsoin.com/asblog/wp-content/uploads/2008/11/away3d.jpg" alt="Away3D" /></center></p>
<p><span style="text-decoration: underline;">Papervision3D</span><br />
<center><img class="cadre" title="Papervision3D" src="http://www.tsoin.com/asblog/wp-content/uploads/2008/11/papervision3d.jpg" alt="Papervision3D" /></center></p>
<p><span style="text-decoration: underline;">Sandy3D</span><br />
<center><img class="cadre" title="Sandy3D" src="http://www.tsoin.com/asblog/wp-content/uploads/2008/11/sandy3d.jpg" alt="Sandy3D" /></center></p>
<p><strong>4. Création d&#8217;objet :</strong><br />
Question de logique, plus l&#8217;objet à créer est compliqué, plus il faudra de temps pour le créer, et plus la mémoire utilisé par cet objet sera importante&#8230; Comparer les temps de création et d&#8217;espace mémoire entre chacun des moteurs objets est assez compliquer. En effet, malgré des valeurs identiques, les moteurs créer des objets plus ou moins complexes, je ne comparerais donc pas la forme de ces objets, le nombre de triangle étant assez identiques, l&#8217;appréciation de la qualité de l&#8217;objet est spécifique à chaque utilisateur&#8230;</p>
<p><center><br />
</center></p>
<table width="600" border="0" align="center" bgcolor="#CCCCCC" cellpadding="3" cellspacing="1">
<tr>
<td colspan="5" bgcolor="#FFFFFF">
<div align="center"><span style="text-decoration: underline;">Création d&#8217;un objet filaire</span></div>
</td>
</tr>
<tr>
<td bgcolor="#FFFFFF">
<div align="center"></div>
</td>
<td bgcolor="#FFFFFF">Box</td>
<td bgcolor="#FFFFFF">Plane</td>
<td bgcolor="#FFFFFF">Cone</td>
<td bgcolor="#FFFFFF">Sphere</td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><strong>Away3D</strong></td>
<td bgcolor="#FFFFFF">0.814ms &#8211; 23ko</td>
<td bgcolor="#FFFFFF">0.321ms &#8211; 9ko </td>
<td bgcolor="#FFFFFF">1.265ms &#8211; 37ko</td>
<td bgcolor="#FFFFFF">4.884ms &#8211; 138ko</td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><strong>Alternativa3D</strong></td>
<td bgcolor="#FFFFFF">5.865ms &#8211; 95ko</td>
<td bgcolor="#FFFFFF">1.913ms &#8211; 20ko</td>
<td bgcolor="#FFFFFF">5.723ms &#8211; 102ko</td>
<td bgcolor="#FFFFFF">9.434ms &#8211; 179ko</td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><strong>Papervision3D</strong></td>
<td bgcolor="#FFFFFF">4.961ms &#8211; 126ko</td>
<td bgcolor="#FFFFFF">0.872ms &#8211; 23ko</td>
<td bgcolor="#FFFFFF">2.996ms &#8211; 76ko</td>
<td bgcolor="#FFFFFF">4.126ms &#8211; 84ko</td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><strong>Sandy3D</strong></td>
<td bgcolor="#FFFFFF">1.645ms &#8211; 16ko</td>
<td bgcolor="#FFFFFF">0.267ms &#8211; 12ko</td>
<td bgcolor="#FFFFFF">10.848ms &#8211; 222ko</td>
<td bgcolor="#FFFFFF">15.299ms &#8211; 314ko</td>
</tr>
</table>
<p></p>
<table width="600" border="0" align="center" bgcolor="#CCCCCC" cellpadding="3" cellspacing="1">
<tr>
<td colspan="5" bgcolor="#FFFFFF">
<div align="center"><span style="text-decoration: underline;">Création d&#8217;un objet avec bitmap non lissé</span></div>
</td>
</tr>
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td bgcolor="#FFFFFF">Box</td>
<td bgcolor="#FFFFFF">Plane</td>
<td bgcolor="#FFFFFF">Cone</td>
<td bgcolor="#FFFFFF">Sphere</td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><strong>Away3D</strong></td>
<td bgcolor="#FFFFFF">1.292ms &#8211; 35ko</td>
<td bgcolor="#FFFFFF">0.817ms &#8211; 23ko</td>
<td bgcolor="#FFFFFF">1.67ms &#8211; 49ko</td>
<td bgcolor="#FFFFFF">5.159ms &#8211; 153ko</td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><strong>Alternativa3D</strong></td>
<td bgcolor="#FFFFFF">5.909ms &#8211; 96ko</td>
<td bgcolor="#FFFFFF">1.966ms &#8211; 21ko</td>
<td bgcolor="#FFFFFF">5.733ms &#8211; 102ko</td>
<td bgcolor="#FFFFFF">9.478ms &#8211; 178ko</td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><strong>Papervision3D</strong></td>
<td bgcolor="#FFFFFF">6.486ms &#8211; 169ko</td>
<td bgcolor="#FFFFFF">1.801ms &#8211; 70ko</td>
<td bgcolor="#FFFFFF"> 3.607ms &#8211; 121ko</td>
<td bgcolor="#FFFFFF">5.31ms &#8211; 130ko</td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><strong>Sandy3D</strong></td>
<td bgcolor="#FFFFFF">1.856ms &#8211; 18ko</td>
<td bgcolor="#FFFFFF">0.254ms &#8211; 12ko</td>
<td bgcolor="#FFFFFF">11.389ms &#8211; 229ko</td>
<td bgcolor="#FFFFFF">16.295ms &#8211; 330ko</td>
</tr>
</table>
<p></p>
<table width="600" border="0" align="center" bgcolor="#CCCCCC" cellpadding="3" cellspacing="1">
<tr>
<td colspan="5" bgcolor="#FFFFFF">
<div align="center"><span style="text-decoration: underline;">Création d&#8217;un objet avec bitmap lissé</span></div>
</td>
</tr>
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td bgcolor="#FFFFFF">Box</td>
<td bgcolor="#FFFFFF">Plane</td>
<td bgcolor="#FFFFFF">Cone</td>
<td bgcolor="#FFFFFF">Sphere</td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><strong>Away3D</strong></td>
<td bgcolor="#FFFFFF">1.319ms &#8211; 35ko</td>
<td bgcolor="#FFFFFF">0.843ms &#8211; 23ko</td>
<td bgcolor="#FFFFFF">1.722ms &#8211; 51ko</td>
<td bgcolor="#FFFFFF">5.195ms &#8211; 152ko</td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><strong>Alternativa3D</strong></td>
<td bgcolor="#FFFFFF">5.811ms &#8211; 97ko</td>
<td bgcolor="#FFFFFF">1.954ms &#8211; 21ko</td>
<td bgcolor="#FFFFFF">5.764ms &#8211; 102ko</td>
<td bgcolor="#FFFFFF">9.475ms &#8211; 182ko</td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><strong>Papervision3D</strong></td>
<td bgcolor="#FFFFFF">6.391ms &#8211; 169ko</td>
<td bgcolor="#FFFFFF">1.837ms &#8211; 70ko</td>
<td bgcolor="#FFFFFF"> 3.556ms &#8211; 121ko</td>
<td bgcolor="#FFFFFF">5.259ms &#8211; 128ko</td>
</tr>
<tr>
<td bgcolor="#FFFFFF"><strong>Sandy3D</strong></td>
<td bgcolor="#FFFFFF">1.747ms &#8211; 18ko</td>
<td bgcolor="#FFFFFF">0.221ms &#8211; 12ko</td>
<td bgcolor="#FFFFFF">11.16ms &#8211; 228ko</td>
<td bgcolor="#FFFFFF">15.657ms &#8211; 330ko</td>
</tr>
</table>
<p><u>4.1 Temps</u><br />
De manière globale, Away3D est le plus rapide.<br />
Sandy3D a des performances équivalente voire meilleure pour la création de Box ou de Plane, mais est très très loin d&#8217;être aussi performant dans la création de Cône ou de Sphère, une fois de plus celui ci se démarque par sa singularité.<br />
Quelque soit le type de texture utilisé, Alternativa3D a des temps de création quasi similaires, il est donc moins performant lors de création d&#8217;objet filaire, mais cet handicap se réduit donc lors de la création d&#8217;objet &laquo;&nbsp;texturé&nbsp;&raquo;.<br />
Les temps de création d&#8217;objet par Papervision3D se situe dans la moyenne de celle d&#8217;Away3D et Alternativa3D, excepté pour les Box, ceci étant du aux nombres de segments crées par Papervision3D.</p>
<p>1. Away3D<br />
2. Papervision3D<br />
3. Alternativa3D<br />
4. Sandy3D</p>
<p><u>4.1 Mémoire</u><br />
Comme pour les temps de création, Away3D est le moins gourmand en général :<br />
- Sandy3D consomme moins de ressources lors de la création de Box ou de Plane, mais explose littéralement lors de la création de Cône et de Sphère<br />
- Papervision3D, consomme beaucoup moins de ressource lors de la création de Sphère, mais utilise presque 6 fois plus de mémoire qu&#8217;Away3D lors de la création de Box ( notamment du, comme pour le temps de création, au nombre de segments crées par Papervision3D )</p>
<p>Alternativa3D est quant à lui dans la moyenne haute des autres moteurs, sans pour autant être catastrophique.</p>
<p>1. Away3D<br />
2. Papervision3D / Alternativa3D<br />
4. Sandy3D</p>
<p>Différence de temps de création entre un objet filaire et un objet texturé :</p>
<table width="600" border="0" align="center" bgcolor="#CCCCCC" cellpadding="3" cellspacing="1">
<tbody>
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td bgcolor="#FFFFFF">Box</td>
<td bgcolor="#FFFFFF">Plane</td>
<td bgcolor="#FFFFFF">Cone</td>
<td bgcolor="#FFFFFF">Sphere</td>
</tr>
<tr>
<td bgcolor="#FFFFFF">Away3D</td>
<td bgcolor="#FFFFFF"> +/- 0.5ms</td>
<td bgcolor="#FFFFFF"> +/- 0.5ms</td>
<td bgcolor="#FFFFFF"> +/- 0.5ms</td>
<td bgcolor="#FFFFFF"> +/- 0.3ms</td>
</tr>
<tr>
<td bgcolor="#FFFFFF">Alternativa3D</td>
<td bgcolor="#FFFFFF"> +/- 0.1ms</td>
<td bgcolor="#FFFFFF"> +/- 0.1ms</td>
<td bgcolor="#FFFFFF"> +/- 0.1ms</td>
<td bgcolor="#FFFFFF"> +/- 0.1ms</td>
</tr>
<tr>
<td bgcolor="#FFFFFF">Papervision3D</td>
<td bgcolor="#FFFFFF"> +/- 1.5ms</td>
<td bgcolor="#FFFFFF"> +/- 1.0ms</td>
<td bgcolor="#FFFFFF"> +/- 0.7ms</td>
<td bgcolor="#FFFFFF"> +/- 1.2ms</td>
</tr>
<tr>
<td bgcolor="#FFFFFF">Sandy3D</td>
<td bgcolor="#FFFFFF"> +/- 0.1ms</td>
<td bgcolor="#FFFFFF"> +/- 0.1ms</td>
<td bgcolor="#FFFFFF"> +/- 0.5ms</td>
<td bgcolor="#FFFFFF">+/- 1.5ms</td>
</tr>
</tbody>
</table>
<p>Ces écarts de temps de création sont à corrélés avec la mémoire utilisés par la création de cet objet :</p>
<table width="600" border="0" align="center" bgcolor="#CCCCCC" cellpadding="3" cellspacing="1">
<tbody>
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td bgcolor="#FFFFFF">Box</td>
<td bgcolor="#FFFFFF">Plane</td>
<td bgcolor="#FFFFFF">Cone</td>
<td bgcolor="#FFFFFF">Sphere</td>
</tr>
<tr>
<td bgcolor="#FFFFFF">Away3D</td>
<td bgcolor="#FFFFFF"> +/- 12ko</td>
<td bgcolor="#FFFFFF"> +/- 14ko</td>
<td bgcolor="#FFFFFF"> +/- 13ko</td>
<td bgcolor="#FFFFFF"> +/- 14ko</td>
</tr>
<tr>
<td bgcolor="#FFFFFF">Alternativa3D</td>
<td bgcolor="#FFFFFF"> +/- 1ko</td>
<td bgcolor="#FFFFFF"> +/- 1ko</td>
<td bgcolor="#FFFFFF"> +/- 1ko</td>
<td bgcolor="#FFFFFF"> +/- 3ko</td>
</tr>
<tr>
<td bgcolor="#FFFFFF">Papervision3D</td>
<td bgcolor="#FFFFFF"> +/- 43ko</td>
<td bgcolor="#FFFFFF"> +/- 47ko</td>
<td bgcolor="#FFFFFF"> +/- 45ko</td>
<td bgcolor="#FFFFFF"> +/- 46ko</td>
</tr>
<tr>
<td bgcolor="#FFFFFF">Sandy3D</td>
<td bgcolor="#FFFFFF"> +/- 2ko</td>
<td bgcolor="#FFFFFF"> +/- 2ko</td>
<td bgcolor="#FFFFFF"> +/- 6ko</td>
<td bgcolor="#FFFFFF"> +/- 15ko</td>
</tr>
</tbody>
</table>
<p>On peut remarquer que ces écarts sont quasi idem pour chacun des objets crée par chaque moteurs 3D, Alternativa3D ayant un delta proche de zéro, on peut conclure que la gestion de texture filaire ou bitmap se fait de la même façon. On remarque aussi les différences de delta pour Sandy3D entre les objets Box/Plane et Cône/Sphère.</p>
<p><strong>5. Conclusion</strong><br />
Les tests effectués ne sont peut être pas représentatifs de la création d&#8217;une application, ou d&#8217;un site internet, mais ils nous montrent comment réagissent ces moteurs 3D dans des cas extrêmes, et si certains cas semblent dangereux (notamment la gestion de la mémoire), il faut garder en mémoire que tout le monde n&#8217;a pas de machine surpuissante, et qu&#8217;il faut toujours penser à qui est destiné le développement que l&#8217;ont fait (et pas se dire, si ca marche sur ma machine, y&#8217;a pas de raison que ca marche pas ailleurs, comme je l&#8217;entend assez souvent&#8230;).</p>
<p>De plus, ce comparatif ne prend pas en compte les différentes possibilités offertes par certains moteurs 3D (réélections&#8230;), il faut donc choisir judicieusement  le moteur en fonction de ces possibilités ainsi que de ces performances.</p>
<p>Concernant les performances, venons en donc aux conclusions.</p>
<p>4.  &#8211; Sandy3D et la mémoire, ce n&#8217;est pas un histoire d&#8217;amour, et ce, dès l&#8217;initialisation du moteur, et même si les performances lors de la création de Box et de Plane sont parmi les meilleures, la gestion de la mémoire (pas de suppressions des instances), les performances &laquo;&nbsp;catastrophiques&nbsp;&raquo; pour la création de Cône et de Sphère (donc d&#8217;éléments complexes), montrent les lacunes de Sandy3D. Au vue des résultats, c&#8217;est le seul moteur qui ne réagit pas de façon homogène, si vous l&#8217;utiliser il faut rester dans des formes simples, et peu nombreuses&#8230;</p>
<p>2. ex aequo  &#8211; Les temps de création de Papervision3D se situe dans la moyenne, c&#8217;est au niveau de la mémoire que ça se gâte, malgré une bonne gestion lors de la création de Sphère, il est bien plus gourmand lors de la création de Box et de Plane. Nous avons pu voir que Papervision3D ne supprime pas ces instances et rencontre donc le même problème que Sandy3D, sans pour autant cumuler au même sommet mais c&#8217;est à surveiller lors de création et suppression de nombreux éléments&#8230;</p>
<p>2. ex aequo  &#8211; Alternativa3D, dernier venu dans le monde des moteurs 3D, gère extrêmement bien (ou plutôt normalement !?) la mémoire, il est cependant plus gourmand en temps de création (entre 2 et 5 fois plus) que les autres moteurs. Malgré son coup de licence qui peut freiner, ces performances en font un des meilleurs moteurs 3D actuels.</p>
<p>1. Et pour finir, Away3D. Temps de création les plus bas du comparatifs, mémoire nécessaire à la création les plus bas aussi, excepté sur quelques points (Box et Sphère), mais qui reste excellents, et gestion de la mémoire globale excellente aussi. Bref le moteur 3D que je conseillerai (en terme de performance, encore une fois, et pas de possibilité de rendu graphique ).</p>
<p><em>Merci à Philippe, dit &laquo;&nbsp;Papa&nbsp;&raquo;, pour sa relecture !</em></p>
<p><em>NB:<br />
- Comparatif réalisé avec le Flash Player 10<br />
- J&#8217;ai utilisé le terme Box de façon générale, la classe exacte pour Away3D et Papervision est Cube, il en est de même pour Plane3D dans Sandy3D</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsoin.com/asblog/2008/11/18/comparatifs-moteurs-3d-et-le-plus-performant-est/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>3 Méthodes pour réduire le poids d&#8217;une application Flex</title>
		<link>http://www.tsoin.com/asblog/2008/11/17/3-methodes-pour-reduire-le-poids-dune-application-flex/</link>
		<comments>http://www.tsoin.com/asblog/2008/11/17/3-methodes-pour-reduire-le-poids-dune-application-flex/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 13:19:33 +0000</pubDate>
		<dc:creator>Vincent Helwig</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Optimisation]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.tsoin.com/asblog/?p=131</guid>
		<description><![CDATA[Serge Jespers nous présente sur Adobe TV, 3 méthodes pour réduire le poids d&#8217;une application Flex.
Pour résumer :
- Exportation de l&#8217;application en Release
- Utilisation de MXML Module (création de swf externe)
- Framework Flex externe (Librairy Path > Framework linkage > Runtime shared library &#8211; RSL)
L&#8217;explication complète en vidéo :

]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.webkitchen.be/2008/11/16/3-ways-to-make-your-flex-application-smaller/" target="_blank">Serge Jespers</a> nous présente sur <a href="http://tv.adobe.com/#vi+f1472v1010" target="_blank">Adobe TV</a>, 3 méthodes pour réduire le poids d&#8217;une application Flex.<br />
Pour résumer :<br />
- Exportation de l&#8217;application en Release<br />
- Utilisation de MXML Module (création de swf externe)<br />
- Framework Flex externe (Librairy Path > Framework linkage > Runtime shared library &#8211; RSL)</p>
<p>L&#8217;explication complète en vidéo :<br />
<center><embed src="http://tv.adobe.com/Embed.swf" quality="high" bgcolor="#000000" width="640" height="385" name="AdobeTVPlayer" play="true" loop="false" quality="high" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" flashVars="v=~b64~aHR0cDovL2Fkb2JlLmVkZ2Vib3NzLm5ldC9mbGFzaC9hZG9iZS9hZG9iZXR2Mi9hZGNfcHJlc2VudHMvNjRfYWRjXzA0NC5mbHY/cnNzX2ZlZWRpZD0xNDcyJnhtbHZlcnM9Mg==&#038;w=640&#038;h=385"></embed></center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsoin.com/asblog/2008/11/17/3-methodes-pour-reduire-le-poids-dune-application-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash10, FileReference &amp; Error #2176</title>
		<link>http://www.tsoin.com/asblog/2008/11/17/flash10-filereference-error-2176/</link>
		<comments>http://www.tsoin.com/asblog/2008/11/17/flash10-filereference-error-2176/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 11:46:09 +0000</pubDate>
		<dc:creator>Vincent Helwig</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[2176]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[FileReference]]></category>
		<category><![CDATA[Flash10]]></category>
		<category><![CDATA[upload]]></category>

		<guid isPermaLink="false">http://www.tsoin.com/asblog/?p=130</guid>
		<description><![CDATA[Parmi les nouveautés de Flash10, les restrictions de sécurité du FileReference font parties des mauvaises nouvelles. Bien que sur le papier l&#8217;enjeu sécuritaire est important, le fait qu&#8217;il n&#8217;y ai pas de rétro compatibilité pose pas mal de problème et la blogosphère de développeurs Flash/Flex le montre bien :
Flex and Flash Developer &#8211; Jesse Warden [...]]]></description>
			<content:encoded><![CDATA[<p>Parmi les nouveautés de Flash10, les restrictions de sécurité du FileReference font parties des mauvaises nouvelles. Bien que sur le papier l&#8217;enjeu sécuritaire est important, le fait qu&#8217;il n&#8217;y ai pas de rétro compatibilité pose pas mal de problème et la blogosphère de développeurs Flash/Flex le montre bien :<br />
<a href="http://jessewarden.com/2008/10/flash-player-10-surprise-error-2176.html" target="_blank">Flex and Flash Developer &#8211; Jesse Warden dot Kizz-ohm</a><br />
<a href="http://theflashblog.com/?p=423" target="_blank">The Flash Blog</a></p>
<p>En effet, dans le Flash Player 10, l&#8217;appel à Filereference.browse ou FileReference.download n&#8217;est accepter que lorsque qu&#8217;il y a une action utilisateur (MouseEvent, KeyboardEvent&#8230;), si cela pose quelques problèmes pour les nouveaux projets à venir (utilisation d&#8217;un framework utilisant les notifications, donc appel indirect&#8230;), cela en pose encore plus pour les anciens projets, qui pourront ne plus fonctionner suivant la méthode de développement utilisés.</p>
<p>Je me suis confronté au problème sur un projet Flex / PureMVC, suite à un clic utilisateur, j&#8217;appelle à un webservice qui me renvoi l&#8217;adresse d&#8217;un fichier à télécharger, je lance alors un FileReference.download(), mais Flash10 ayant &laquo;&nbsp;perdu&nbsp;&raquo; l&#8217;action de l&#8217;utilisateur dans les notifcations de PureMVC, il fait une alerte :</p>
<div class="codeAS">Error: Error #2176: Certaines actions, par exemple celles qui ouvrent une fenêtre contextuelle, ne peuvent être invoquées que par une interaction de l&#8217;utilisateur, telle qu&#8217;un clic de souris ou un appui sur une touche.)</div>
<p>Pour l&#8217;utilisateur ayant Flash10, rien ne se passe, et malgré de nombreuses tentatives ( ce que ferait n&#8217;importe quel utilisateur dans ce cas) l&#8217;utilisateur ne pourra jamais effectuer l&#8217;action voulu. Donc tous vos développement antérieurs faisant appel à une méthode de FileReference indirectement ne fonctionera plus sur Flash10, il vous faudra reprendre vos anciens projets, se replonger dans le code, et résoudre ce problème !</p>
<p>La solution étant la suivante :</p>
<div class="codeAS">var _file:FileReference = new FileReference();<br />
try {<br />
&nbsp;&nbsp;&nbsp;// Flash Player 9<br />
&nbsp;&nbsp;&nbsp;_file.download(new URLRequest(url));<br />
} catch(erreur:Error) {<br />
&nbsp;&nbsp;&nbsp;// Flash Player 10<br />
&nbsp;&nbsp;&nbsp;popupFlash10(url);<br />
}</div>
<p>On test si l&#8217;appel à la méthode download de FileReference fonctionne (Flash 9), si ce n&#8217;est pas le cas (Flash 10), on ouvre une popup proposant le lien à l&#8217;utilisateur, qui valide en cliquant sur un bouton.<br />
Flash 10 détectant l&#8217;appel à la méthode download de FileReference par une action utilisateur, le téléchargement fonctionnera&#8230;</p>
<p><a href="http://www.adobe.com/devnet/flashplayer/articles/fplayer10_security_changes_print.html#head3" target="_blank">Upload et Download requert un action utilisateur ( Adobe Flash 10 security changes ) &raquo;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsoin.com/asblog/2008/11/17/flash10-filereference-error-2176/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Flash Player Bug System</title>
		<link>http://www.tsoin.com/asblog/2008/11/03/adobe-flash-player-bug-system/</link>
		<comments>http://www.tsoin.com/asblog/2008/11/03/adobe-flash-player-bug-system/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 17:11:22 +0000</pubDate>
		<dc:creator>Vincent Helwig</dc:creator>
				<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[FlashPlayer]]></category>
		<category><![CDATA[Website]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[bug]]></category>

		<guid isPermaLink="false">http://www.tsoin.com/asblog/?p=121</guid>
		<description><![CDATA[Il y a ces sites qu&#8217;on ne connait pas, mais qui pourtant nous éviterait pas mal de temps perdu à chercher sur les forums et autres blogs&#8230;
Voici donc le site de référencement &#187; des (nombreux) bugs du Flash Player, ainsi que des demandes pour les versions suivantes. Ce site concerne aussi Flex, Cairngorn&#8230;
Vers Adobe Bug [...]]]></description>
			<content:encoded><![CDATA[<p>Il y a ces sites qu&#8217;on ne connait pas, mais qui pourtant nous éviterait pas mal de temps perdu à chercher sur les forums et autres blogs&#8230;<br />
Voici donc le <a href="https://bugs.adobe.com/jira/secure/IssueNavigator.jspa" target="_blank">site de référencement &raquo;</a> des (nombreux) bugs du Flash Player, ainsi que des demandes pour les versions suivantes. Ce site concerne aussi Flex, Cairngorn&#8230;</p>
<p>Vers <a href="https://bugs.adobe.com/jira/secure/IssueNavigator.jspa" target="_blank">Adobe Bug System &raquo;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsoin.com/asblog/2008/11/03/adobe-flash-player-bug-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SampleDataEvent, fréquence et graphe</title>
		<link>http://www.tsoin.com/asblog/2008/11/03/sampledataevent-frequence-et-graphe/</link>
		<comments>http://www.tsoin.com/asblog/2008/11/03/sampledataevent-frequence-et-graphe/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 16:50:38 +0000</pubDate>
		<dc:creator>Vincent Helwig</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Musique]]></category>
		<category><![CDATA[Flash CS4]]></category>
		<category><![CDATA[Flash10]]></category>
		<category><![CDATA[SampleDataEvent]]></category>

		<guid isPermaLink="false">http://www.tsoin.com/asblog/?p=120</guid>
		<description><![CDATA[Dans mon précédent post, nous avons vu comment créer des sons en AS3, avec la classe SampleDataEvent, j&#8217;ai compléter le code afin de visualiser la courbe du son émis. j&#8217;ai volontairement baissé le nombre de samples ( de 8192 à 2048 ) afin d&#8217;avoir une courbe plus &#171;&#160;visible&#160;&#187;, moins compacte&#8230;
[kml_flashembed movie="http://tsoin.com/asblog/tutoriel/SampleDataEvent/002/SoundSampleDataEvent.swf" height="260" width="542" /]
Les sources [...]]]></description>
			<content:encoded><![CDATA[<p>Dans mon précédent post, nous avons vu comment créer des sons en AS3, avec la classe SampleDataEvent, j&#8217;ai compléter le code afin de visualiser la courbe du son émis. j&#8217;ai volontairement baissé le nombre de samples ( de 8192 à 2048 ) afin d&#8217;avoir une courbe plus &laquo;&nbsp;visible&nbsp;&raquo;, moins compacte&#8230;</p>
<p><center>[kml_flashembed movie="http://tsoin.com/asblog/tutoriel/SampleDataEvent/002/SoundSampleDataEvent.swf" height="260" width="542" /]</center></p>
<p>Les sources sont téléchargeables <a href="http://tsoin.com/asblog/tutoriel/SampleDataEvent/002/SoundSampleDataEvent.rar">ici &raquo;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsoin.com/asblog/2008/11/03/sampledataevent-frequence-et-graphe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Création de son en AS3 : SampleDataEvent</title>
		<link>http://www.tsoin.com/asblog/2008/10/30/creation-de-son-en-as3-sampledataevent/</link>
		<comments>http://www.tsoin.com/asblog/2008/10/30/creation-de-son-en-as3-sampledataevent/#comments</comments>
		<pubDate>Thu, 30 Oct 2008 15:07:17 +0000</pubDate>
		<dc:creator>Vincent Helwig</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Musique]]></category>
		<category><![CDATA[Flash10]]></category>
		<category><![CDATA[SampleDataEvent]]></category>

		<guid isPermaLink="false">http://www.tsoin.com/asblog/?p=119</guid>
		<description><![CDATA[Avec l&#8217;arrivée de la nouvelle classe SampleDataEvent (Flash 10 ), il est maintenant possible de générer du son en AS3, sans avoir besoin d&#8217;aucun fichier. J&#8217;ai donc fait une petite expérimentation, avec un clavier de piano, et comme la doc n&#8217;est pas très explicite, j&#8217;ai un peu galérer, mais le résultat fonctionne&#8230;
Je me suis basé [...]]]></description>
			<content:encoded><![CDATA[<p>Avec l&#8217;arrivée de la nouvelle classe SampleDataEvent (Flash 10 ), il est maintenant possible de générer du son en AS3, sans avoir besoin d&#8217;aucun fichier. J&#8217;ai donc fait une petite expérimentation, avec un clavier de piano, et comme la doc n&#8217;est pas très explicite, j&#8217;ai un peu galérer, mais le résultat fonctionne&#8230;<br />
Je me suis basé sur les fréquences des notes trouvées sur le site <a href="http://www.ordiecole.com/logo/hertz.html" target="_blank">ordiecole.com &raquo;</a>, le LA étant le même que la tonalité du téléphone, je suis parti sur ces fréquences, qui me semblent bonnes, à mon oreille en tout cas ! Le tout pour un poids total de 3ko&#8230;</p>
<p><center>[kml_flashembed movie="http://tsoin.com/asblog/tutoriel/SampleDataEvent/001/SoundSampleDataEvent.swf" height="190" width="542" /]</center><br />
<span id="more-119"></span><br />
Les sources sont téléchargeables <a href="http://tsoin.com/asblog/tutoriel/SampleDataEvent/001/SoundSampleDataEvent.rar">ici &raquo;</a></p>
<div class="codeAS">package {<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp; *<br />
&nbsp;&nbsp;&nbsp; * &nbsp;&nbsp;&nbsp;Auteur: Vincent Helwig<br />
&nbsp;&nbsp;&nbsp; * &nbsp;&nbsp;&nbsp;Date: 30.10.2008<br />
&nbsp;&nbsp;&nbsp; * &nbsp;&nbsp;&nbsp;Website: http://www.tsoin.com<br />
&nbsp;&nbsp;&nbsp; * &nbsp;&nbsp;&nbsp;Description: Clavier de Piano / SampleDataEvent<br />
&nbsp;&nbsp;&nbsp; *<br />
&nbsp;&nbsp;&nbsp; **/<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;import flash.display.MovieClip;<br />
&nbsp;&nbsp;&nbsp;import flash.media.Sound;<br />
&nbsp;&nbsp;&nbsp;import flash.events.MouseEvent;<br />
&nbsp;&nbsp;&nbsp;import flash.events.SampleDataEvent;<br />
&nbsp;&nbsp;&nbsp;import flash.media.SoundChannel;</p>
<p>&nbsp;&nbsp;&nbsp;[SWF(width = "542", height = "190", backgroundColor = "#dfdede", framerate = "30")]</p>
<p>&nbsp;&nbsp;&nbsp;public class SoundSampleDataEvent extends MovieClip {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private var _son:Sound<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private var phase:Number = 0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private var freq:Number = 440;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private const PI2:Number = Math.PI * 2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private var soundChannelObject:SoundChannel = new SoundChannel();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private var _clavier:Clavier;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public function SoundSampleDataEvent() {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_son = new Sound();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_clavier = new Clavier(Clavier.OCTAVE3);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_clavier.x = 5;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_clavier.y = 5;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_clavier.addEventListener( MouseEvent.MOUSE_DOWN, onNoteDown );<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_clavier.addEventListener( MouseEvent.CLICK, onNoteUp );<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addChild(_clavier);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_clavier = new Clavier(Clavier.OCTAVE4);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_clavier.x = 271;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_clavier.y = 5;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_clavier.addEventListener( MouseEvent.MOUSE_DOWN, onNoteDown );<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_clavier.addEventListener( MouseEvent.CLICK, onNoteUp );<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addChild(_clavier);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private function onNoteDown(e:MouseEvent):void {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;freq = e.target.frequence;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_son.addEventListener( SampleDataEvent.SAMPLE_DATA, onSample);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;soundChannelObject = _son.play();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private function onNoteUp(e:MouseEvent):void {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _son.removeEventListener( SampleDataEvent.SAMPLE_DATA, onSample);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; soundChannelObject.stop();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public function onSample(e:SampleDataEvent):void {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var smpl:Number;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var w:Number = PI2 * freq / 44000;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (var i:int = 0; i < 8192; ++i) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;phase += w;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (phase > PI2) { phase -= PI2; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;smpl = Math.sin(phase);</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.data.writeFloat(smpl);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.data.writeFloat(smpl);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;}</p>
<p>}</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.tsoin.com/asblog/2008/10/30/creation-de-son-en-as3-sampledataevent/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Utiliser Flex Profiling pour les projets Flash</title>
		<link>http://www.tsoin.com/asblog/2008/10/29/utiliser-flex-profiling-pour-les-projets-flash/</link>
		<comments>http://www.tsoin.com/asblog/2008/10/29/utiliser-flex-profiling-pour-les-projets-flash/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 13:35:01 +0000</pubDate>
		<dc:creator>Vincent Helwig</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[FlashDevelop]]></category>
		<category><![CDATA[Profiler]]></category>

		<guid isPermaLink="false">http://www.tsoin.com/asblog/?p=111</guid>
		<description><![CDATA[Sortant d&#8217;un long projet Flex3, je me suis habitué à utiliser le profiler de Flex pour tester mon application. De retour sous Flash, je cherchais à retrouver le même confort, et pouvoir utiliser le profiler avec mes projets développés sous FlashCS3, bientôt CS4, ou encore FlashDevelop&#8230;.
Et c&#8217;est possible !
Il faut tout d&#8217;abord permettre le debbugage [...]]]></description>
			<content:encoded><![CDATA[<p>Sortant d&#8217;un long projet Flex3, je me suis habitué à utiliser le profiler de Flex pour tester mon application. De retour sous Flash, je cherchais à retrouver le même confort, et pouvoir utiliser le profiler avec mes projets développés sous FlashCS3, bientôt CS4, ou encore FlashDevelop&#8230;.<br />
Et c&#8217;est possible !</p>
<p>Il faut tout d&#8217;abord permettre le debbugage du swf compilé, pour celà, il faut :<br />
- Sous Flash CS3 /CS4, dans les paramètres de publication, cocher l&#8217;option &laquo;&nbsp;Autoriser le débogage&nbsp;&raquo; / &laquo;&nbsp;Permit debugging&nbsp;&raquo;<br />
- Sous FlashDevelop, il faut configurer son projet en &laquo;&nbsp;Debug&nbsp;&raquo; (menu déroulant, dans la liste d&#8217;icônes)</p>
<p>Une fois le swf compilé, il faut activer la vue Flex Profiling ( Window > Perspective > Flex Profiling )</p>
<p><center><img src="http://www.tsoin.com/asblog/wp-content/uploads/2008/10/flex.jpg" alt="" title="flex" width="500" height="375" class="cadre" /></center></p>
<p>Dans l&#8217;onglet &laquo;&nbsp;Profile&nbsp;&raquo;, cliquer sur la flèche descendante à droite, et sélectionner &laquo;&nbsp;Profile External Application&nbsp;&raquo; </p>
<p><center><img src="http://www.tsoin.com/asblog/wp-content/uploads/2008/10/flexeternal.jpg" alt="" title="flexeternal" width="500" height="152" class="cadre" /></center></p>
<p>Cliquer sur &laquo;&nbsp;New&nbsp;&raquo;, et entrer le chemin vers votre application, une fois valider, sélectionner l&#8217;adresse dans la liste des applications, et cliquer sur Launch.</p>
<p><center><img src="http://www.tsoin.com/asblog/wp-content/uploads/2008/10/profilflex.jpg" alt="" title="profilflex" width="500" height="500" class="cadre" /></center></p>
<p><strong>!!! Attention Flash Player Debug Obligatoire !!!</strong></p>
<p><center><img src="http://www.tsoin.com/asblog/wp-content/uploads/2008/10/configure1.jpg" alt="" title="configure1" width="400" height="500" class="cadre" /></center></p>
<p>Flex lancera alors votre application, et vous proposera de configurer le profiler, une fois valider (&laquo;&nbsp;Resume&nbsp;&raquo;), vous aurez accès aux données du Profiler sur votre application ! </p>
<p><center><img src="http://www.tsoin.com/asblog/wp-content/uploads/2008/10/graph.jpg" alt="" title="graph" width="500" height="115" class="cadre" /></center></p>
<p>Bon Profile à tous !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsoin.com/asblog/2008/10/29/utiliser-flex-profiling-pour-les-projets-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Guide ActionScript Reference &amp; RIA Developpement</title>
		<link>http://www.tsoin.com/asblog/2008/10/28/guide-actionscript-reference-ria-developpement/</link>
		<comments>http://www.tsoin.com/asblog/2008/10/28/guide-actionscript-reference-ria-developpement/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 16:23:57 +0000</pubDate>
		<dc:creator>Vincent Helwig</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Non classé]]></category>

		<guid isPermaLink="false">http://www.tsoin.com/asblog/?p=110</guid>
		<description><![CDATA[
Guide de référence, classant par ordre alphabétique l&#8217;ensemble des API native de Flash, Flex et AIR
Guide RIA sur Adobe Developper Connection &#187;
]]></description>
			<content:encoded><![CDATA[<p><center><a href="http://www.tsoin.com/asblog/wp-content/uploads/2008/10/atp_ria_guide.pdf" target="_blank"><img class="cadre" src="http://www.tsoin.com/asblog/wp-content/uploads/2008/10/riaguide.jpg" border="0"></a></center></p>
<p>Guide de référence, classant par ordre alphabétique l&#8217;ensemble des API native de Flash, Flex et AIR</p>
<p><a href="http://www.adobe.com/devnet/actionscript/articles/atp_ria_guide.html" target="_blank">Guide RIA sur Adobe Developper Connection &raquo;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsoin.com/asblog/2008/10/28/guide-actionscript-reference-ria-developpement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modifier les paramètres d&#8217;un filtre PixelBender en AS3</title>
		<link>http://www.tsoin.com/asblog/2008/10/28/modifier-les-parametres-dun-filtre-pixelbender-en-as3/</link>
		<comments>http://www.tsoin.com/asblog/2008/10/28/modifier-les-parametres-dun-filtre-pixelbender-en-as3/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 14:50:54 +0000</pubDate>
		<dc:creator>Vincent Helwig</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Pixel Bender]]></category>
		<category><![CDATA[Flash10]]></category>
		<category><![CDATA[PBJ]]></category>

		<guid isPermaLink="false">http://www.tsoin.com/asblog/?p=107</guid>
		<description><![CDATA[Pour illustrer le changement de valeur d&#8217;un paramètre dans un filtre Pixel Bender, j&#8217;ai utilisé un filtre de Frank Reitberger &#187;, ce filtre est téléchargeable sur le Pixel Bender Exchange &#187;.
Pour accéder aux paramètres du filtre &#171;&#160;smudge&#160;&#187;, il suffit de passer par la propriété data de la classe Shader. Le filtre smudge n&#8217;a qu&#8217;un seul [...]]]></description>
			<content:encoded><![CDATA[<p>Pour illustrer le changement de valeur d&#8217;un paramètre dans un filtre Pixel Bender, j&#8217;ai utilisé un filtre de <a href="http://www.prinzipiell.com" target="_blank">Frank Reitberger &raquo;</a>, ce filtre est téléchargeable sur le <a href="http://www.adobe.com/cfusion/exchange/index.cfm?event=extensionDetail&#038;loc=en_us&#038;extid=1557018" target="blank">Pixel Bender Exchange &raquo;</a>.</p>
<p>Pour accéder aux paramètres du filtre &laquo;&nbsp;smudge&nbsp;&raquo;, il suffit de passer par la propriété data de la classe Shader. Le filtre smudge n&#8217;a qu&#8217;un seul paramètre : <em>amount</em>. On peut le modifier de cette façon :</p>
<div class="codeAS">
[Embed("pb/smudger.pbj", mimeType="application/octet-stream")]<br />
private var _pbjFilter:Class;<br />
private var _shader:Shader = new Shader( new _pbjFilter() as ByteArray );<br />
private var _filtre:ShaderFilter = new ShaderFilter( _shader );</p>
<p><b>_shader.data.amount.value = [ 5.0 ]; </b>
</div>
<p>Le filtre ayant changé, il ne faut pas oublier de le réaffecter à la propriété <em>filters</em> de l&#8217;élément à modifier, au risque de ne voir aucun changement, malgré le changement de valeur des paramètres&#8230;. </p>
<p>Ci-dessous un exemple, la valeur du paramètre est modifiée suivant la position de la souris en x ( Flash 10 ) :<br />
<center>[kml_flashembed movie="http://tsoin.com/asblog/tutoriel/PixelBender/003/Pixelbender003.swf" height="370" width="600" /]</center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsoin.com/asblog/2008/10/28/modifier-les-parametres-dun-filtre-pixelbender-en-as3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utiliser un filtre Pixel Bender en AS3</title>
		<link>http://www.tsoin.com/asblog/2008/10/28/utiliser-un-filtre-pixel-bender-en-as3/</link>
		<comments>http://www.tsoin.com/asblog/2008/10/28/utiliser-un-filtre-pixel-bender-en-as3/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 11:24:02 +0000</pubDate>
		<dc:creator>Vincent Helwig</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Pixel Bender]]></category>
		<category><![CDATA[Filtre]]></category>
		<category><![CDATA[Flash10]]></category>
		<category><![CDATA[Shader]]></category>

		<guid isPermaLink="false">http://www.tsoin.com/asblog/?p=105</guid>
		<description><![CDATA[Après avoir vu comment créer un filtre pixel bender, nous allons maintenant voir comment utiliser ce filtre en as3&#8230;
Il faut tout d&#8217;abord exporter son filtre en .pbj, fichier qui sera loader en as3. Une fois cette première opération réaliser, il faut charger le pbj :
- Méthode 1, avec un fichier externe au swf :
package {
&#160;&#160;&#160;
&#160;&#160;&#160;/**
&#160;&#160;&#160;*
&#160;&#160;&#160;* [...]]]></description>
			<content:encoded><![CDATA[<p>Après avoir vu comment créer un <a target="_blank">filtre pixel bender</a>, nous allons maintenant voir comment utiliser ce filtre en as3&#8230;</p>
<p>Il faut tout d&#8217;abord exporter son filtre en .pbj, fichier qui sera loader en as3. Une fois cette première opération réaliser, il faut charger le pbj :<br />
- Méthode 1, avec un fichier externe au swf :</p>
<div class="codeAS">package {<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;*<br />
&nbsp;&nbsp;&nbsp;* 	Auteur: Vincent Helwig<br />
&nbsp;&nbsp;&nbsp;* 	Date: 27.10.2008<br />
&nbsp;&nbsp;&nbsp;* 	Website: http://www.tsoin.com<br />
&nbsp;&nbsp;&nbsp;* 	Description: Chargement d&#8217;un fichier PBJ Pixel Bender<br />
&nbsp;&nbsp;&nbsp;*<br />
&nbsp;&nbsp;&nbsp;**/</p>
<p>&nbsp;&nbsp;&nbsp;import flash.display.Sprite;<br />
&nbsp;&nbsp;&nbsp;import flash.events.Event;<br />
&nbsp;&nbsp;&nbsp;import flash.net.URLLoader;<br />
&nbsp;&nbsp;&nbsp;import flash.net.URLRequest;<br />
&nbsp;&nbsp;&nbsp;import flash.net.URLLoaderDataFormat;<br />
&nbsp;&nbsp;&nbsp;import flash.display.Shader;</p>
<p>&nbsp;&nbsp;&nbsp;[SWF(width = "600", height = "400", backgroundColor = "#000000", framerate = "30")]</p>
<p>&nbsp;&nbsp;&nbsp;public class Main extends Sprite {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private var _loader:URLLoader;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private var _shader:Shader;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public function Main():void {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_loader = new URLLoader();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_loader.dataFormat = URLLoaderDataFormat.BINARY;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_loader.addEventListener(Event.COMPLETE, onLoadComplete);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_loader.load(new URLRequest(&laquo;&nbsp;bleu.pbj&nbsp;&raquo;));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private function onLoadComplete(event:Event):void {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_shader = new Shader( _loader.data );<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;}</p>
<p>}
</p></div>
<p>- Méthode 2, avec un fichier intégré au swf :</p>
<div class="codeAS">package {	</p>
<p>&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;*<br />
&nbsp;&nbsp;&nbsp;* 	Auteur: Vincent Helwig<br />
&nbsp;&nbsp;&nbsp;* 	Date: 27.10.2008<br />
&nbsp;&nbsp;&nbsp;* 	Website: http://www.tsoin.com<br />
&nbsp;&nbsp;&nbsp;* 	Description: Embed d&#8217;un fichier PBJ Pixel Bender<br />
&nbsp;&nbsp;&nbsp;*<br />
&nbsp;&nbsp;&nbsp;**/</p>
<p>&nbsp;&nbsp;&nbsp;import flash.display.Sprite;<br />
&nbsp;&nbsp;&nbsp;import flash.display.Shader;<br />
&nbsp;&nbsp;&nbsp;import flash.utils.ByteArray;</p>
<p>&nbsp;&nbsp;&nbsp;[SWF(width = "600", height = "400", backgroundColor = "#000000", framerate = "30")]</p>
<p>&nbsp;&nbsp;&nbsp;public class Embed extends Sprite {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Embed("bleu.pbj", mimeType="application/octet-stream")]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private var _pbjFilter:Class;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private var _shader:Shader;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public function Embed():void {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_shader = new Shader( new _pbjFilter() as ByteArray );<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;&nbsp;}</p>
<p>}
</p></div>
<p>Quelque soit la méthode du chargement, la méthode d&#8217;utilisation est ensuite la même :</p>
<div class="codeAS">
private var _filtre:ShaderFilter;<br />
_filtre = new ShaderFilter(_shader);
</div>
<p>On peut alors utiliser le ShaderFitler sur tous les enfants héritant de la class DisplayObject, avec la propriété filters :</p>
<div class="codeAS">
private var _display:DisplayObject = new DisplayObject();<br />
_display.filters = [ _fitltre];
</div>
<p>On peut donc appliquer un filtre Pixel Bender sur un champ texte, sur une vidéo, sur une image, sur un bitmap, un Sprite, un UIComponent etc&#8230;</p>
<p>Ci-dessous un exemple de différent filtre sur une vidéo&#8230;. ( Flash 10 nécessaire, bien sur <img src='http://www.tsoin.com/asblog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</p>
<p><center>[kml_flashembed movie="http://tsoin.com/asblog/tutoriel/PixelBender/001/Pixelbender001.swf" height="450" width="600" /]</center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsoin.com/asblog/2008/10/28/utiliser-un-filtre-pixel-bender-en-as3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Math : Graphique &amp; Fonction</title>
		<link>http://www.tsoin.com/asblog/2008/10/17/graphe-et-fonctions/</link>
		<comments>http://www.tsoin.com/asblog/2008/10/17/graphe-et-fonctions/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 08:41:27 +0000</pubDate>
		<dc:creator>Vincent Helwig</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Courbe]]></category>
		<category><![CDATA[Graphique]]></category>
		<category><![CDATA[Math]]></category>

		<guid isPermaLink="false">http://www.tsoin.com/asblog/?p=102</guid>
		<description><![CDATA[Ayant &#171;&#160;légèrement&#160;&#187; oublier mes cours de Math, et n&#8217;ayant pas ma calculatrice Casio FX-XXXX de 1998 sur moi, je cherchais à visualiser le résultat d&#8217;une fonction, et j&#8217;ai trouvé quelques liens pas mal&#8230; :
Traceur de courbes 2D »
Traceur de courbes 3D »
Liste d&#8217;applis sur Flash&#38;Math
]]></description>
			<content:encoded><![CDATA[<p>Ayant &laquo;&nbsp;légèrement&nbsp;&raquo; oublier mes cours de Math, et n&#8217;ayant pas ma calculatrice Casio FX-XXXX de 1998 sur moi, je cherchais à visualiser le résultat d&#8217;une fonction, et j&#8217;ai trouvé quelques liens pas mal&#8230; :</p>
<p><a href="http://www.mathe-fa.de/fr" target="_blank">Traceur de courbes 2D »</a><br />
<a href="http://www.flashandmath.com/mathlets/multicalc/fungraph3d/fun_graph3d_white.html" target="_blank">Traceur de courbes 3D »</a><br />
<a href="http://www.flashandmath.com/mathlets/" target="_blank">Liste d&#8217;applis sur Flash&amp;Math</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsoin.com/asblog/2008/10/17/graphe-et-fonctions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash Player 10 officiellement lancé (DLL FlashSwitcher)</title>
		<link>http://www.tsoin.com/asblog/2008/10/15/flash-player-10-officiellement-lance/</link>
		<comments>http://www.tsoin.com/asblog/2008/10/15/flash-player-10-officiellement-lance/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 12:20:21 +0000</pubDate>
		<dc:creator>Vincent Helwig</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[FlashPlayer]]></category>

		<guid isPermaLink="false">http://www.tsoin.com/asblog/?p=100</guid>
		<description><![CDATA[
Disponible depuis ce matin, la version 10.0.12.36 du Flash Player est téléchargeable ici ».
La version debug est aussi disponible.
En espérant que cette nouvelle précède de peu celle de la disponibilité de la suite CS4 (normalement prévue avant la fin du mois d&#8217;octobre)&#8230;
La page du FlashPlayer »
Page de téléchargement complet (Flash10, plugin, activeX, debug&#8230;.)
FlashPlayer 10 &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p><center><a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash&#038;Lang=French" target="_blank"><img class="cadre" title="fp10" src="http://www.tsoin.com/asblog/wp-content/uploads/2008/10/fp10.jpg" border="0" alt="" width="500" height="166" /></a></center></p>
<p>Disponible depuis ce matin, la version 10.0.12.36 du Flash Player est <a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash&#038;Lang=French" target="_blank">téléchargeable ici »</a>.<br />
La version debug est aussi disponible.<br />
En espérant que cette nouvelle précède de peu celle de la disponibilité de la suite CS4 (normalement prévue avant la fin du mois d&#8217;octobre)&#8230;</p>
<p><a href="http://www.adobe.com/products/flashplayer/" target="_blank">La page du FlashPlayer »</a><br />
<a href="http://www.adobe.com/support/flashplayer/downloads.html" target="_blank">Page de téléchargement complet (Flash10, plugin, activeX, debug&#8230;.)</a></p>
<p><a href="http://www.tsoin.com/asblog/wp-content/uploads/2008/10/Flash_10.zip" target="_blank">FlashPlayer 10 &#8211; DLL pour FlashSwitcher »</a><br />
<a href="http://www.tsoin.com/asblog/wp-content/uploads/2008/10/Flash_10_Debug.zip" target="_blank">FlashPlayer 10 Debug &#8211; DLL pour FlashSwitcher »</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsoin.com/asblog/2008/10/15/flash-player-10-officiellement-lance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
