<?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; component</title>
	<atom:link href="http://www.lafabrick.com/blog/tag/component/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>UIGFX practice : a CircularSlider component</title>
		<link>http://www.lafabrick.com/blog/2010/05/04/1962-uigfx-practice-a-circularslider-component-2/</link>
		<comments>http://www.lafabrick.com/blog/2010/05/04/1962-uigfx-practice-a-circularslider-component-2/#comments</comments>
		<pubDate>Tue, 04 May 2010 21:18:39 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[Nos projets]]></category>
		<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[FlashBuilder]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[flex4]]></category>
		<category><![CDATA[Spark]]></category>
		<category><![CDATA[uigfx]]></category>

		<guid isPermaLink="false">http://www.lafabrick.com/blog/?p=1962</guid>
		<description><![CDATA[If you were luck enough to use a multitouch application, did you ever have the idea that it would be interesting to use some circular interface components? As interface space management is easier to achieve on large multitouch tables, I had the idea to develop a CircularSlider component, using my primitive UIGFX library, including the [...]]]></description>
			<content:encoded><![CDATA[<p>If you were luck enough to use a multitouch application, did you ever have the idea that it would be interesting to use some circular interface components?<br />
As interface space management is easier to achieve on large multitouch tables, I had the idea to develop a CircularSlider component, using my primitive <a href="http://code.google.com/p/uigfx/">UIGFX library</a>, including the <a href="http://code.google.com/p/uigfx/source/browse/trunk/uigfx/src/com/lafabrick/uigfx/primitives/Pie.as">Pie primitive</a>.<br />
Let see how it works&#8230;<br />
<span id="more-1962"></span><br />
<H2>The component</H2></p>
<h3>PieButton</h3>
<p>I needed a button with 2 properties <code>startAngle</code> and <code>angle</code>, to be able to transmit these values to the skin: </p>
<pre class="brush: js">
package com.lafabrick.components
{
    import spark.components.Button;

    public class PieButton extends Button
    {
        public function PieButton()
        {
            super();
        }

        private var _angle : Number;
        private var _startAngle : Number;

        public function get angle():Number
        {
            return _angle;
        }
        [Bindable]public function set angle(value:Number):void
        {
            _angle = value;
            invalidateDisplayList();
        }

        public function get startAngle():Number
        {
            return _startAngle;
        }
        [Bindable]public function set startAngle(value:Number):void
        {
            _startAngle = value;
            invalidateDisplayList();
        }

    }
}
</pre>
<h3>CircularSlider</h3>
<p>This component could not extend directly SliderBase or TrackBase because the SkinPart thumb and track, as Button, are extending the TrackBase class.<br />
I thus used the Range class, inserted the Slider architecture, and added specific geometric codes.<br />
<a href="http://fabien.lafabrick.com/labs/components/circularslider/srcview/source/fxComponentKit/src/com/lafabrick/components/CircularSlider.as.html">Check the component&#8217;s source code</a></p>
<h2>Skin implementation</h2>
<p>The design of the Skin is similar to a skin Slider standard, except that it uses a PieButton instead of a Button: </p>
<pre class="brush: xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;s:SparkSkin xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
        xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;
        xmlns:mx=&quot;library://ns.adobe.com/flex/mx&quot;
        width=&quot;100%&quot; height=&quot;100%&quot;
        xmlns:components=&quot;com.lafabrick.components.*&quot;
        &gt;
    &lt;!-- host component --&gt;
    &lt;fx:Metadata&gt;
        [HostComponent(&quot;com.lafabrick.components.CircularSlider&quot;)]
    &lt;/fx:Metadata&gt;

    &lt;!-- states --&gt;
    &lt;s:states&gt;
        &lt;s:State name=&quot;normal&quot; /&gt;
        &lt;s:State name=&quot;disabled&quot; /&gt;
        &lt;s:State name=&quot;inactive&quot; /&gt;
    &lt;/s:states&gt;

    &lt;!-- SkinParts
    name=track, type=com.lafabrick.uigfx.components.CircularButton
    name=thumb, type=com.lafabrick.uigfx.components.CircularButton
    --&gt;

    &lt;components:PieButton
        id=&quot;track&quot;
        width=&quot;100%&quot; height=&quot;100%&quot;
        top=&quot;0&quot; bottom=&quot;0&quot; left=&quot;0&quot; right=&quot;0&quot;
        skinClass=&quot;skins.CircularTrackButtonSkin&quot;/&gt;

    &lt;components:PieButton
        id=&quot;thumb&quot;
        angle=&quot;20&quot;
        width=&quot;100%&quot; height=&quot;100%&quot;
        top=&quot;0&quot; bottom=&quot;0&quot; left=&quot;0&quot; right=&quot;0&quot;
        skinClass=&quot;skins.CircularThumbButtonSkin&quot;/&gt;

&lt;/s:SparkSkin&gt;
</pre>
<p>Under &laquo;&nbsp;thumb&nbsp;&raquo; and &laquo;&nbsp;track&nbsp;&raquo; Skin, the angular values are a mapped with the PieButton HostComponent. StartAngle and angle properties of the Pie primitive are directly extended from the host component.<br />
Here follows a sample with Track Skin:</p>
<pre class="brush: xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;s:SparkSkin xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
             xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot; 

             minWidth=&quot;21&quot; minHeight=&quot;21&quot;
             alpha.disabled=&quot;0.5&quot;
             xmlns:uigfx=&quot;http://uigfx.lafabrick.com&quot;
             xmlns:primitives=&quot;com.lafabrick.uigfx.primitives.*&quot;&gt;

    &lt;fx:Metadata&gt;
        [HostComponent(&quot;com.lafabrick.components.PieButton&quot;)]
    &lt;/fx:Metadata&gt;

    &lt;s:states&gt;
        &lt;s:State name=&quot;up&quot; /&gt;
        &lt;s:State name=&quot;over&quot; /&gt;
        &lt;s:State name=&quot;down&quot; /&gt;
        &lt;s:State name=&quot;disabled&quot; /&gt;
    &lt;/s:states&gt;

    &lt;primitives:Pie
        top=&quot;0&quot; bottom=&quot;0&quot; left=&quot;0&quot; right=&quot;0&quot;
        gap=&quot;2&quot;
        innerOffset=&quot;-2&quot;
        offset=&quot;-2&quot;

        innerRadius=&quot;0.7&quot;
        angle=&quot;{hostComponent.angle}&quot;
        startAngle=&quot;{hostComponent.startAngle}&quot;
        &gt;

        &lt;primitives:fill&gt;
            &lt;s:RadialGradient&gt;
                &lt;s:GradientEntry color=&quot;#006699&quot; /&gt;
                &lt;s:GradientEntry color=&quot;#009EE0&quot; /&gt;
            &lt;/s:RadialGradient&gt;
        &lt;/primitives:fill&gt;

        &lt;primitives:filters&gt;
            &lt;s:GlowFilter inner=&quot;true&quot; color=&quot;#000000&quot;
                blurX=&quot;10&quot; blurY=&quot;10&quot; alpha=&quot;0.4&quot; /&gt;
        &lt;/primitives:filters&gt;

    &lt;/primitives:Pie&gt;

&lt;/s:SparkSkin&gt;
</pre>
<p><H2>Result</H2><br />
Let see:<br />
<object type="application/x-shockwave-flash" data="http://fabien.lafabrick.com/labs/components/circularslider/circularSlider.swf" width="640" height="500"><param name="movie" value="http://fabien.lafabrick.com/labs/components/circularslider/circularSlider.swf" /><param name="bgcolor" value="#ffffff" /><param name="allowScriptAccess" value="sameDomain" /><param name="allowFullScreen" value="true" /></object><br />
Nice huh?</p>
<p>You can check these for more info: <a href="http://fabien.lafabrick.com/labs/components/circularslider/">Link</a>, and <a href="http://fabien.lafabrick.com/labs/components/circularslider/srcview/index.html">source code</a>.</p>
<p>PS: Thanks to Hervé for review and corrections!Autres articles sur le même sujet
<ul>
<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/02/09/1964-uigfx-project-flex4-primitives-library-fireworks-extension/" rel="bookmark" title="9 février 2010">uigfx project : Flex4 primitives library / Fireworks extension</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>
<li><a href="http://www.lafabrick.com/blog/2010/07/23/1989-primitive-dashedline-une-petite-ligne-bien-utile/" rel="bookmark" title="23 juillet 2010">Primitive DashedLine : une petite ligne bien utile</a></li>
</ul>
<p><!-- Similar Posts took 11.814 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2010/05/04/1962-uigfx-practice-a-circularslider-component-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Librairie lafabrick : parce que je le vaut bien</title>
		<link>http://www.lafabrick.com/blog/2007/12/06/277-librairie/</link>
		<comments>http://www.lafabrick.com/blog/2007/12/06/277-librairie/#comments</comments>
		<pubDate>Thu, 06 Dec 2007 14:37:45 +0000</pubDate>
		<dc:creator>Fabien</dc:creator>
				<category><![CDATA[Nos projets]]></category>
		<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[UI Design]]></category>

		<guid isPermaLink="false">http://92.243.2.196/lafabrick/blog/?p=277</guid>
		<description><![CDATA[Le développement du simulateur Climatus demande une bonne dose d&#8217;architecture pour ne pas ce noyer dans les classes. Et quoi de mieux qu&#8217;un petit framework pour structurer tout ça ?! J&#8217;ai donc démarré le développement d&#8217;une librairie de composants, avec un ensemble de classes pour la gestion de mes vues, que j&#8217;utilise directement dans le [...]]]></description>
			<content:encoded><![CDATA[<p>Le développement du simulateur Climatus demande une bonne dose d&#8217;architecture pour ne pas ce noyer dans les classes. Et quoi de mieux qu&#8217;un petit framework pour structurer tout ça ?!</p>
<p>J&#8217;ai donc démarré le développement d&#8217;une librairie de composants, avec un ensemble de classes pour la gestion de mes vues, que j&#8217;utilise directement dans le simulateur. 3 composants principaux pour l&#8217;instant, dérivés de TitleWindow :</p>
<ul>
<li><strong>DraggableWindow et ResizableWindow</strong> : un TitleWindow draggable et resizable (on s&#8217;en serait douté !), inspiré de plusieurs travaux sur des composants Flex glané sur le web. La notion de Skin à une place importante, et, je l&#8217;espère, moins limitative que certain exemple que l&#8217;on peux trouver&#8230; et d&#8217;autres petites &laquo;&nbsp;features&nbsp;&raquo; que je vous laisse découvrir !</li>
<li><strong>ExpandedWindow</strong> est le concentré des 2 autres, avec une gestion d&#8217;évenements &laquo;&nbsp;minimize&nbsp;&raquo; et &laquo;&nbsp;maximize&nbsp;&raquo;, à la manière de l&#8217;évenement &laquo;&nbsp;close&nbsp;&raquo; du TitleWindow.</li>
</ul>
<p>Je vous propose de découvrir cette petite librairie, via le <a hreflang="fr" href="http://code.google.com/p/lafabrick/">googleCode &laquo;&nbsp;lafabrick&nbsp;&raquo;</a> (pour changer !)</p>
<ul>
<li><a hreflang="fr" href="http://lafabrick.googlecode.com/svn/trunk/bin/lafabrick.swc">lafabrick.swc</a></li>
<li><a hreflang="fr" href="http://lafabrick.googlecode.com/svn/trunk/asdoc/index.html">documentation</a></li>
</ul>
<p><strong>UPDATE</strong><br />
<a hreflang="fr" href="http://lafabrick.free.fr/labo/fabrickFramework/exemple1/">Un petit exemple</a>, avec les sources.</p>
<p>N&#8217;hésitez pas à me faire part de vos réactions, remarques et idées qui me permettront d&#8217;améliorer et d&#8217;étoffer cette librairie.Autres articles sur le même sujet
<ul>
<li><a href="http://www.lafabrick.com/blog/2007/04/06/86-donnez-du-style-votre-flex/" rel="bookmark" title="6 avril 2007">Pimp my Flex</a></li>
<li><a href="http://www.lafabrick.com/blog/2007/05/28/115-flexcubed-flash-flex-resource-exchange/" rel="bookmark" title="28 mai 2007">PixFormat, le prochain compagnon de votre backOffice !</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/01/05/285-le-design-declaratif-un-nom-degrafa/" rel="bookmark" title="5 janvier 2008">Le design déclaratif à un nom : Degrafa</a></li>
<li><a href="http://www.lafabrick.com/blog/2008/05/09/325-librairie-lafabrick-mise-jour/" rel="bookmark" title="9 mai 2008">librairie lafabrick : mise à jour</a></li>
</ul>
<p><!-- Similar Posts took 13.942 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2007/12/06/277-librairie/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>TileUI : un bureau &#171;&#160;réaliste&#160;&#187; en AS3</title>
		<link>http://www.lafabrick.com/blog/2007/08/07/197-tileui-un-bureau-raliste-en-as3/</link>
		<comments>http://www.lafabrick.com/blog/2007/08/07/197-tileui-un-bureau-raliste-en-as3/#comments</comments>
		<pubDate>Tue, 07 Aug 2007 07:06:20 +0000</pubDate>
		<dc:creator>Erick</dc:creator>
				<category><![CDATA[Expériences utilisateur]]></category>
		<category><![CDATA[Pure Style]]></category>
		<category><![CDATA[Vu sur le web (2.0)]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[UI Design]]></category>
		<category><![CDATA[UX]]></category>

		<guid isPermaLink="false">http://92.243.2.196/lafabrick/blog/?p=197</guid>
		<description><![CDATA[Inspiré du projet BumpTop, et dans le même genre que les travaux de Thomas Brault ( et surtout de ) , voici une présentation du projet TileUI. Prenez un bol de Flex , ajoutez une goutte de physique , une pointe de 3D. Secouez pendant une douzaine de jours&#8230; Plus d&#8217;infos ici Démo : www.tileui.comAutres [...]]]></description>
			<content:encoded><![CDATA[<p>Inspiré du projet <a href="http://www.youtube.com/watch?v=M0ODskdEPnQ">BumpTop</a>, et dans le même genre que les travaux de <a href="http://www.tomysnockers.net/2007/07/10/re-member-le-projet-de-premiere-annee-gobelins-est-termine" langref="fr">Thomas Brault</a> ( et surtout de ) , voici une présentation du projet <a href="http://dougmccune.com/blog/2007/08/04/the-making-of-tileui" langref="en">TileUI</a>.</p>
<p> Prenez un bol de Flex , ajoutez une goutte de physique , une pointe de 3D. Secouez pendant une douzaine de jours&#8230;</p>
<p> <object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/6Qkb6fXnIkU"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/6Qkb6fXnIkU" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></p>
<p> Plus d&#8217;infos <a href="http://dougmccune.com/blog/2007/08/04/the-making-of-tileui" langref="en">ici</a><br /> Démo : <a href="http://www.tileui.com">www.tileui.com</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/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/05/28/115-flexcubed-flash-flex-resource-exchange/" rel="bookmark" title="28 mai 2007">PixFormat, le prochain compagnon de votre backOffice !</a></li>
<li><a href="http://www.lafabrick.com/blog/2009/01/08/658-3d-timeline/" rel="bookmark" title="8 janvier 2009">Data visualization : BeeDocs 3D TimeLine Concept</a></li>
</ul>
<p><!-- Similar Posts took 11.457 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2007/08/07/197-tileui-un-bureau-raliste-en-as3/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>PixFormat, le prochain compagnon de votre backOffice !</title>
		<link>http://www.lafabrick.com/blog/2007/05/28/115-flexcubed-flash-flex-resource-exchange/</link>
		<comments>http://www.lafabrick.com/blog/2007/05/28/115-flexcubed-flash-flex-resource-exchange/#comments</comments>
		<pubDate>Mon, 28 May 2007 11:38:57 +0000</pubDate>
		<dc:creator>Erick</dc:creator>
				<category><![CDATA[[Dev] Flash / Flex / AIR...]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://92.243.2.196/lafabrick/blog/?p=115</guid>
		<description><![CDATA[:: PixFormat :: est un &#171;&#160;mini&#160;&#187; éditeur graphique en ligne, dont la particularité est d&#8217;être distribué sous la forme d&#8217;un composant Flex. Il permet&#160;: l&#8217;upload/download d&#8217;image, le redimensionnement / cadrage l&#8217;ajout de formes vectorielles l&#8217;ajout de textes la gestion de &#171;&#160;calques&#160;&#187; contraste/ luminosité / teinte &#8230;. Le tout fonctionnant grâce la lib GD de PHP. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flexcubed.com/component_details.php?id=pixformat" hreflang="en">:: PixFormat ::</a> est un &laquo;&nbsp;mini&nbsp;&raquo; éditeur graphique en ligne, dont la particularité est d&#8217;être distribué sous la forme d&#8217;un composant Flex.</p>
<p>Il permet&nbsp;:</p>
<ul>
<li>l&#8217;upload/download d&#8217;image,</li>
<li>le redimensionnement / cadrage</li>
<li>l&#8217;ajout de formes vectorielles</li>
<li>l&#8217;ajout de textes</li>
<li>la gestion de &laquo;&nbsp;calques&nbsp;&raquo;</li>
<li>contraste/ luminosité / teinte</li>
<li>&#8230;.</li>
</ul>
<p>Le tout fonctionnant grâce la lib GD de PHP.</p>
<p>Seul hic&nbsp;: il est vendu 29$&#8230;</p>
<p>29$ ou 29 jours de dév&#8230; à vous de choisir <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/2007/08/07/197-tileui-un-bureau-raliste-en-as3/" rel="bookmark" title="7 août 2007">TileUI : un bureau &laquo;&nbsp;réaliste&nbsp;&raquo; en AS3</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/2008/01/05/285-le-design-declaratif-un-nom-degrafa/" rel="bookmark" title="5 janvier 2008">Le design déclaratif à un nom : Degrafa</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>
</ul>
<p><!-- Similar Posts took 17.127 ms --></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lafabrick.com/blog/2007/05/28/115-flexcubed-flash-flex-resource-exchange/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

