<?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>Blog d'un développeur multi-support &#187; astuce</title>
	<atom:link href="http://www.oni-ecchi.info/blog/tag/astuce/feed" rel="self" type="application/rss+xml" />
	<link>http://www.oni-ecchi.info/blog</link>
	<description>[DIM] pour les intimes :)</description>
	<lastBuildDate>Fri, 18 Jun 2010 06:27:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Iphone &amp; UITableView &amp; UISearchBar</title>
		<link>http://www.oni-ecchi.info/blog/iphone/iphone-uitableview-uisearchbar.html</link>
		<comments>http://www.oni-ecchi.info/blog/iphone/iphone-uitableview-uisearchbar.html#comments</comments>
		<pubDate>Sun, 14 Feb 2010 10:50:44 +0000</pubDate>
		<dc:creator>Guillaume chave</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[découverte]]></category>
		<category><![CDATA[objective c]]></category>
		<category><![CDATA[tutoriel]]></category>
		<category><![CDATA[UISearchBar]]></category>

		<guid isPermaLink="false">http://www.oni-ecchi.info/blog/?p=514</guid>
		<description><![CDATA[Bonjour, je recommence à développer sur iphone après quelques mois  d&#8217;arrêt, j&#8217;en profite aussi pour tester l&#8217;Ipad (sur simulateur :p).
Cette  semaine j&#8217;ai cherché à faire fonctionner une UISearchBar avec le  controller qui va bien et j&#8217;ai eu quelque souci. Si techniquement c&#8217;est  assez simple à mettre en place, graphiquement j&#8217;ai eu [...]]]></description>
			<content:encoded><![CDATA[<p>Bonjour, je recommence à développer sur iphone après quelques mois  d&#8217;arrêt, j&#8217;en profite aussi pour tester l&#8217;Ipad (sur simulateur :p).</p>
<p>Cette  semaine j&#8217;ai cherché à faire fonctionner une UISearchBar avec le  controller qui va bien et j&#8217;ai eu quelque souci. Si techniquement c&#8217;est  assez simple à mettre en place, graphiquement j&#8217;ai eu quelque souci.</p>
<h3>Mon architecture :</h3>
<p>Mon application a une UITabBar, puis sur une des sous vue j&#8217;ai une  liste de résultat avec la SearchBar. Cet écran n&#8217;est pas  directement  une UITableView, c&#8217;est un navigation controller qui contient une UITableView.</p>
<p><img src="http://www.oni-ecchi.info/blog/wp-content/uploads/2010/02/Capture-decran-2010-02-14-à-09.15.34.png" alt="Mon archi" border="0" width="480" height="128" /></p>
<p>Ma UITableView est crée directement en code et est à hauteur fixe, et mes cellules ont une hauteur de 60:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p514code4'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5144"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code" id="p514code4"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>viewDidLoad <span style="color: #009900;">&#123;</span>  
	CGRect frame <span style="color: #339933;">=</span> CGRectMake<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">75</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">320</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">262</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #666666; font-style: italic;">// Initialise une table view.</span>
	myTableView <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>UITableView alloc<span style="color: #009900;">&#93;</span> initWithFrame<span style="color: #339933;">:</span>frame<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
	myTableView.<span style="color: #202020;">rowHeight</span> <span style="color: #339933;">=</span> <span style="color: #0000dd;">60</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Ajout la tableView à l'écran et autres par la suite</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<h4> Mes soucis </h4>
<p>﻿Les soucis viennent quand j&#8217;utilise la barre de recherche:</p>
<ul>
<li>
		Les cellules sont bien réutilisées mais la hauteur est celle par défaut du coup tout mes items sont mal 		placés. Joli bug graphique.
	</li>
<li>
		Mes résultats sont bien filtrés, mais il est impossible de scroller. La liste revient toujours en haut. Comme si ma liste avait une hauteur tellement grande que le scroll était inefficace.
	</li>
</ul>
<h4> Solutions</h4>
<p>Bon, j&#8217;en suis pas vraiment fier, ça tient plus de hooks qu&#8217;autres choses mais ça a le mérite de marcher et ça n&#8217;a pas l&#8217;air trop lourd en terme de performance sur mon 3GS.</p>
<p>En fait c&#8217;est simple, à chaque fois il faut refixer les hauteurs au moment oppertun.</p>
<ul>
<li> Pour les cellules, c&#8217;est à leur initialisation :

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p514code5'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5145"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p514code5"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>CGFloat<span style="color: #009900;">&#41;</span> tableView<span style="color: #339933;">:</span> <span style="color: #009900;">&#40;</span>UITableView <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span> tableView heightForRowAtIndexPath<span style="color: #339933;">:</span> <span style="color: #009900;">&#40;</span>NSIndexPath <span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span> indexPath
<span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #0000dd;">60</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

</li>
<li>
		Pour la liste, c&#8217;est quand on lance une recherche :</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p514code6'); return false;">View Code</a> C</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p5146"><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code" id="p514code6"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">void</span><span style="color: #009900;">&#41;</span>filterContentForSearchText<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>NSString<span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>searchText scope<span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>NSString<span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span>scope
<span style="color: #009900;">&#123;</span>
	CGRect frame <span style="color: #339933;">=</span> CGRectMake<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">75</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">320</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">262</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#91;</span>self searchDisplayController<span style="color: #009900;">&#93;</span> searchResultsTableView<span style="color: #009900;">&#93;</span> setFrame<span style="color: #339933;">:</span>frame<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// faire sa recherche ensuite</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

</li>
</ul>
<p>Donc en terme de performance y doit y avoir moyen de fixer ses tailles une fois pour toute mais je n&#8217;ai pas trouvé comment. Si quelqu&#8217;un a la solution je suis preneur.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oni-ecchi.info/blog/iphone/iphone-uitableview-uisearchbar.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symfony &amp; Doctrine &amp; schema.yml</title>
		<link>http://www.oni-ecchi.info/blog/decouverte-php/symfony-doctrine-schema-yml.html</link>
		<comments>http://www.oni-ecchi.info/blog/decouverte-php/symfony-doctrine-schema-yml.html#comments</comments>
		<pubDate>Mon, 01 Feb 2010 19:00:35 +0000</pubDate>
		<dc:creator>Guillaume chave</dc:creator>
				<category><![CDATA[Découverte PHP]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[découverte]]></category>

		<guid isPermaLink="false">http://www.oni-ecchi.info/blog/?p=504</guid>
		<description><![CDATA[J&#8217;espère que vous utilisé Doctrine car ce mini article pourrait vous plaire ! Quand vous débutez un projet, la partie conception BDD et création du fichier yml prennent du temps et on aimerait pouvoir faire tout d&#8217;un coup.
Personnellement je fais ma conception sur Workbench puis je repart &#171;&#160;from scratch&#160;&#187; pour faire mon (mes) fichier(s) yml. [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;espère que vous utilisé Doctrine car ce mini article pourrait vous plaire ! Quand vous débutez un projet, la partie conception BDD et création du fichier yml prennent du temps et on aimerait pouvoir faire tout d&#8217;un coup.</p>
<p>Personnellement je fais ma conception sur Workbench puis je repart &laquo;&nbsp;from scratch&nbsp;&raquo; pour faire mon (mes) fichier(s) yml. (Oui oui on peut en avoir plusieurs de yml :p). </p>
<p>Quand j&#8217;étais sur Propel J&#8217;avais perdu quelque cheveux quand j&#8217;avais essayé l&#8217;autre méthode (cad de générer le fichier SQL, l&#8217;insérer en base, et laisser faire symfony pour du reverse engineirng). Le souci du reverse c&#8217;est que ça produisait trop de code inutile (sur les foreign key par exemple) et au final repasser derrière pour arranger le model m&#8217;avait fait perdre pas mal de temps.</p>
<p>Hors ce soir j&#8217;ai trouvé, je ne sais comment, un plugin pour Workbench pour écrire  le fichier yml directement à partir de celui ci, adieu les étapes &laquo;&nbsp;insertion bdd, reverse&nbsp;&raquo;. Et en plus sur les (mini) tests que j&#8217;ai fait tout à l&#8217;air propre, les conventions doctrines sont respectés, tout est bien indiqué. Il suffit de suivre la marche à suivre suivante : <a href="http://code.google.com/p/mysql-workbench-doctrine-plugin/wiki/WorkbenchPreparationForDoctrinePlugin">http://code.google.com/p/mysql-workbench-doctrine-plugin/wiki/WorkbenchPreparationForDoctrinePlugin</a></p>
<p>Bref, en un mot c&#8217;est bon plugin Workbench bien utile :p</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oni-ecchi.info/blog/decouverte-php/symfony-doctrine-schema-yml.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>APE Project &#8211; Présentation</title>
		<link>http://www.oni-ecchi.info/blog/ape-project/ape-project-presentation.html</link>
		<comments>http://www.oni-ecchi.info/blog/ape-project/ape-project-presentation.html#comments</comments>
		<pubDate>Thu, 28 Jan 2010 10:00:52 +0000</pubDate>
		<dc:creator>Guillaume chave</dc:creator>
				<category><![CDATA[APE Project]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[découverte]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.oni-ecchi.info/blog/uncategorized/ape-project-presentation.html</guid>
		<description><![CDATA[Depuis quelques semaines je travaille sur la création d&#8217;un chat conçu sur APE Project (http://www.ape-project.org/ajax-push.html).
Pour faire simple c&#8217;est un serveur temps réel conçu pour fonctionner simplement avec du Javascript. En gros on code le serveur et le client directement en Javascript, le moteur se chargeant de transformer notre code serveur en instruction C. Du coup [...]]]></description>
			<content:encoded><![CDATA[<p>Depuis quelques semaines je travaille sur la création d&#8217;un chat conçu sur APE Project (<a rel="nofollow" href="http://www.ape-project.org/ajax-push.html">http://www.ape-project.org/ajax-push.html)</a>.</p>
<p>Pour faire simple c&#8217;est un serveur temps réel conçu pour fonctionner simplement avec du <a class="zem_slink" title="JavaScript" rel="wikipedia" href="http://en.wikipedia.org/wiki/JavaScript">Javascript</a>. En gros on code le serveur et le client directement en Javascript, le moteur se chargeant de transformer notre code serveur en instruction C. Du coup ça pulse et c&#8217;est léger.</p>
<p>En fait tout le fonctionnement est à base d&#8217;événement, comme on pourrait le faire en <a class="zem_slink" title="Adobe Flash" rel="homepage" href="http://www.adobe.com/products/flash/flashpro/">Flash</a> avec Red5 ou autre. C&#8217;est à dire que le serveur envoie des évent (appelé raw), le client les reçoit, en renvoie  &#8211; on peut créer nos propres évènements (appelé commande).</p>
<p>Le système est souple et au final on n&#8217;a pas besoin de serveur Flash ou de client Flash pour des besoins simple (comme un tchat). Je vous l&#8217;accorde, les serveurs Flash son bien plus complet (vidéo notamment), mais pour ce genre de besoin,pas la peine de prendre le marteau pour écraser la mouche.</p>
<p>Au final il est assez simple a prendre en main bien qu&#8217;il faut avoir le déclic à un moment pour synthétiser toute leur doc assez disparate. En effet la doc est sur le google group, le wiki, sur une page doc, sur les channels <a class="zem_slink" title="Internet Relay Chat" rel="wikipedia" href="http://en.wikipedia.org/wiki/Internet_Relay_Chat">IRC</a> .. Bref pas évident de s&#8217;y retrouver au début.</p>
<p>Loin de moi l&#8217;idée de faire des tutoriels pour le prendre en main, mais je vais essayer de faire des articles sur des points précis concernant des fonctionnalités que j&#8217;ai développé et des soucis que j&#8217;ai rencontré.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oni-ecchi.info/blog/ape-project/ape-project-presentation.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Symfony 1.2 &amp; Personnalisation des pages 404 &amp; 500</title>
		<link>http://www.oni-ecchi.info/blog/decouverte-php/symfony-1-2-personnalisation-des-pages-404-500.html</link>
		<comments>http://www.oni-ecchi.info/blog/decouverte-php/symfony-1-2-personnalisation-des-pages-404-500.html#comments</comments>
		<pubDate>Fri, 25 Sep 2009 14:14:55 +0000</pubDate>
		<dc:creator>Guillaume chave</dc:creator>
				<category><![CDATA[Découverte PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[framework]]></category>

		<guid isPermaLink="false">http://www.oni-ecchi.info/blog/?p=471</guid>
		<description><![CDATA[Voici un petit tips sorti tout droit de jobeet pour personnaliser ses pages 404 &#38; 500 sur Symfony 1.2. C&#8217;est bête comme chou comme truc mais faut le savoir quoi.
Page 404 :
Pour la page 404 c&#8217;est dans le fichier settings de votre application
/apps/front/config/setting.yml
Il faut tout simplement rajouter ces deux directives

?View Code YML1
2
3
all:
  error_404_module: home
 [...]]]></description>
			<content:encoded><![CDATA[<p>Voici un petit tips sorti tout droit de jobeet pour personnaliser ses pages 404 &amp; 500 sur <a class="zem_slink" href="http://www.symfony-project.org/" title="Symfony" rel="homepage">Symfony</a> 1.2. C&#8217;est bête comme chou comme truc mais faut le savoir quoi.</p>
<h3>Page 404 :</h3>
<p>Pour la page 404 c&#8217;est dans le fichier settings de votre application<br />
/apps/front/config/setting.yml</p>
<p>Il faut tout simplement rajouter ces deux directives</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p471code9'); return false;">View Code</a> YML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p4719"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p471code9"><pre class="yml" style="font-family:monospace;">all:
  error_404_module: home
  error_404_action: error404</pre></td></tr></table></div>

<p>Du coup quand vous aurez une erreur 404 cela sera votre page qui sera affiché, vous pourrez donc dans votre action vous ajoutez une petite ligne pour vous envoyer un mail quand y a un souci. (Le plugin nahoMail est vraiment top d&#8217;ailleurs). Du monitoring pas cher quoi.</p>
<h3>Page 500 :</h3>
<p>Vous croyez qu&#8217;il aurait fallu mettre</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p471code10'); return false;">View Code</a> YML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p47110"><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code" id="p471code10"><pre class="yml" style="font-family:monospace;">all:   
   error_500_module: home 
   error_500_action: error500</pre></td></tr></table></div>

<p>Et bien ça ne marche pas du tout comme ça. Pour personnaliser cette page vous devez placer un fichier &laquo;&nbsp;error.html.php&nbsp;&raquo; dans le répertoire &laquo;&nbsp;apps/front/config/error&nbsp;&raquo; (crée le au besoin). Et c&#8217;est tout.</p>
<p>Mais du coup voilà, nous ne sommes pas dans une action .. donc cette page n&#8217;est pas inclu dans votre layout, on ne peut non plus utiliser les classes Symfony.. et oui <strong>la page d&#8217;erreur 500 est complétement statique. </strong>Adieu le monitoring pour cette page.</p>
<p>Si vous connaissez un moyen de customiser cette page et de pouvoir profiter du framework en même temps je suis preneur :p</p>
<p>Sur ceux, à bientôt pour de nouvelles astuces Symfony</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oni-ecchi.info/blog/decouverte-php/symfony-1-2-personnalisation-des-pages-404-500.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Découverte Flex : new NumberFormatter();</title>
		<link>http://www.oni-ecchi.info/blog/decouverte-flex-flash/flex-et-numberformatter.html</link>
		<comments>http://www.oni-ecchi.info/blog/decouverte-flex-flash/flex-et-numberformatter.html#comments</comments>
		<pubDate>Sat, 10 Jan 2009 17:57:44 +0000</pubDate>
		<dc:creator>Guillaume chave</dc:creator>
				<category><![CDATA[Flex Flash Floush]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[numberFormatter]]></category>
		<category><![CDATA[tutoriel]]></category>

		<guid isPermaLink="false">http://www.oni-ecchi.info/blog/?p=127</guid>
		<description><![CDATA[Pour mon application AIR (cf le post juste en dessous) j&#8217;ai eu besoin d&#8217;arrondir mes statistiques à l&#8217;entier supérieur/inférieur et les mettre en forme pour ne garder que deux décimal après la virgule. N&#8217;étant pas du tout expert en Flash/Flex, j&#8217;ai commencé à faire un code de bourrin comme splitter mon float selon la virgule, [...]]]></description>
			<content:encoded><![CDATA[<p>Pour mon application AIR (cf le post juste en dessous) j&#8217;ai eu besoin d&#8217;arrondir mes statistiques à l&#8217;entier supérieur/inférieur et les mettre en forme pour ne garder que deux décimal après la virgule. N&#8217;étant pas du tout expert en Flash/Flex, j&#8217;ai commencé à faire un code de bourrin comme splitter mon float selon la virgule, slicer ensuite pour ne garder que deux décimal etc &#8230; Bref, un truc vraiment crade pour me dépanner vite fait.</p>
<p>Je suis revenu quelque jours après sur ce bout de code pour le cleaner un peu et pour trouver une solution vraiment propre et voici ma &laquo;&nbsp;découverte&nbsp;&raquo; : <strong>NumberFormatter </strong>! D&#8217;après une recherche google de 45s, il apparait que cette classe n&#8217;est disponible que pour Flex ..</p>
<p>Voici comment l&#8217;utiliser en AS3 seulement. Je n&#8217;ai pas pris le temps de l&#8217;essayer en MXML.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p127code12'); return false;">View Code</a> ACTIONSCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p12712"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code" id="p127code12"><pre class="actionscript" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">// L'objet magique</span>
<span style="color: #000000; font-weight: bold;">var</span> oFormat:NumberFormatter = <span style="color: #000000; font-weight: bold;">new</span> NumberFormatter<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// Arrondis à l'entier le plus proche</span>
oFormat.<span style="color: #006600;">rounding</span> = NumberBaseRoundType.<span style="color: #006600;">NEAREST</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// Et on l'utilise</span>
<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>oFormat.<span style="color: #006600;">format</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1.51</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">// Affiche 2</span>
<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>oFormat.<span style="color: #006600;">format</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1.49</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">// Affiche 1</span>
&nbsp;
<span style="color: #808080; font-style: italic;">// Précision à 2 décimal</span>
<span style="color: #808080; font-style: italic;">// D'abord on n'arrondis plus</span>
oFormat.<span style="color: #006600;">rounding</span> = NumberBaseRoundType.<span style="color: #006600;">NONE</span>;
<span style="color: #808080; font-style: italic;">// On définit le nb max de décimal</span>
oFormat.<span style="color: #006600;">precision</span> = <span style="color: #ff0000;">&quot;2&quot;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">// Et on l'utilise</span>
<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>oFormat.<span style="color: #006600;">format</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1.544541511</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">// Affiche 1.54</span>
<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>oFormat.<span style="color: #006600;">format</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1.1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #808080; font-style: italic;">// Affiche1.10 - note : rajout du 0 !</span></pre></td></tr></table></div>

<p>Et bien sur, rien ne vaut un coup d&#8217;oeil sur <a href="http://livedocs.adobe.com/flex/3/langref/index.html?mx/formatters/NumberFormatter.html&amp;mx/formatters/class-list.html" target="_blank">la documentation Adobe !</a><br />
Et voilà, c&#8217;est tout pour aujourd&#8217;hui.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oni-ecchi.info/blog/decouverte-flex-flash/flex-et-numberformatter.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Framework Java pour le jeux</title>
		<link>http://www.oni-ecchi.info/blog/decouverte-java/framework-java-pour-le-jeux.html</link>
		<comments>http://www.oni-ecchi.info/blog/decouverte-java/framework-java-pour-le-jeux.html#comments</comments>
		<pubDate>Wed, 24 Dec 2008 09:59:11 +0000</pubDate>
		<dc:creator>Guillaume chave</dc:creator>
				<category><![CDATA[Découverte Java]]></category>
		<category><![CDATA[astuce]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jeux]]></category>
		<category><![CDATA[jeux video]]></category>
		<category><![CDATA[slick]]></category>
		<category><![CDATA[vidéo]]></category>

		<guid isPermaLink="false">http://www.oni-ecchi.info/blog/?p=113</guid>
		<description><![CDATA[Introduction
Dans le cadre de ma formation &#171;&#160;développeur informatique multi-support&#160;&#187; on nous a demandé de créer un jeux en Java en 2D de type &#171;&#160;mario&#160;&#187; ou plutôt de modifier un jeux existant en vue d&#8217;apprendre par nous même le java et d&#8217;en voir un coté plus sexy que les habituelles programmes en ligne de commande.
Voici l&#8217;url [...]]]></description>
			<content:encoded><![CDATA[<h3>Introduction</h3>
<p>Dans le cadre de ma formation &laquo;&nbsp;développeur informatique multi-support&nbsp;&raquo; on nous a demandé de créer un jeux en Java en 2D de type &laquo;&nbsp;mario&nbsp;&raquo; ou plutôt de modifier un jeux existant en vue d&#8217;apprendre par nous même le java et d&#8217;en voir un coté plus sexy que les habituelles programmes en ligne de commande.</p>
<p>Voici l&#8217;url que l&#8217;on nous a donné : <a href="http://fivedots.coe.psu.ac.th/~ad/jg/ch062/index.html" target="_blank">http://fivedots.coe.psu.ac.th/~ad/jg/ch062/index.html</a>. Ce chapitre est un extrait du livre <em><span style="color: #cc3300;">Killer Game Programming in Java</span></em> présenté par son auteur sur le site <a href="http://fivedots.coe.psu.ac.th/~ad/jg">http://fivedots.coe.psu.ac.th/~ad/jg</a>. Sur ce dernier vous trouverez d&#8217;autres jeux et d&#8217;autres chapitres intéressant.</p>
<p>Seulement je n&#8217;ai pas pour habitude d&#8217;apprendre en traficotant des exemples de code. Je le faisais quand je débutais en programmation, mais maintenant je pense être capable d&#8217;apprendre par moi même et de partir sur une base propre. Comme un framework par exemple !!</p>
<h3>Les Frameworks Java</h3>
<p>L&#8217;idée d&#8217;utiliser un framework java et capitaliser le temps des cours en une expérience riche m&#8217;est venu en regardant l&#8217;écran de <a href="http://www.epivoila.com/" target="_blank">Clément Biron</a> et <a href="http://www.palleas.com">Romain pouclet</a> qui s&#8217;intéressaient tout deux aux frameworks &laquo;&nbsp;<a href="http://processing.org/" target="_blank">processing&nbsp;&raquo; </a>et à  <a href="http://www.interactivepulp.com/pulpcore/" target="_blank">&laquo;&nbsp;PulpCore&nbsp;&raquo;</a>. (Il faut toujours cité ses sources :))</p>
<p>Alors pour maximiser nos découvertes je suis parti dans la découverte d&#8217;un troisième framework nommé <a href="http://slick.cokeandcode.com/" target="_blank">Slick.</a> Voila un bref apercu de ces frameworks après une journé à les regarder.</p>
<h4>Processing</h4>
<p>En un mot : Enorme. Le couteau suisse par exellence, ce framework s&#8217;adresse à tout le monde :</p>
<p><cite class="aligncenter">&nbsp;&raquo; for people who want to program images, animation, and interactions. It is used by          students, artists, designers, researchers, and hobbyists for          learning, prototyping, and production.&nbsp;&raquo;</cite></p>
<p>Personnellement, j&#8217;ai été bluffé par Processing quand j&#8217;ai vu cette vidéo :</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="302" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=1663988&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="302" src="http://vimeo.com/moogaloop.swf?clip_id=1663988&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/1663988"></a><a href="http://bricktable.wordpress.com/about/what-is-roots/">http://bricktable.wordpress.com/about/what-is-roots/</a> Du java rapide O_o wahou !</p>
<p>Bien sur cela ne se limite pas qu&#8217;à ça :) Il y a quand même 6 livres qui sont sorties sur ce framework ! &laquo;&nbsp;Ça envoie du lourd&nbsp;&raquo; comme dirait certains :)</p>
<h4>Pulpcore</h4>
<p>Pulpcore je le vois plutôt comme un moyen d&#8217;embarquer du java dans des pages web de façon transparente et se rapproche plus de Flash. <a href="http://www.pulpgames.net/milpa/">Exemple ici </a>et <a href="http://www.pulpgames.net/scared/">un autre exemple là</a>.</p>
<p>Bien que jeune, ce framework  tant à se faire connaitre avec son slogan provocateurs &laquo;&nbsp;Applets are back&nbsp;&raquo; :)</p>
<h4>Slick</h4>
<p>A la base, on nous a demandé de faire un jeux. Processing étant quand même énorme, et pulcore un peu trop limitatif, il fallait que je trouve un framework &laquo;&nbsp;médiant&nbsp;&raquo;. Hors <a href="http://slick.cokeandcode.com/" target="_blank">Slick</a> se positionne exclusivement comme étant LE framework dédié aux jeux 2D en java.  Great !</p>
<p>En gros, il fournit tout ce qu&#8217;on a besoin pour un jeux : gestion du clavier, gestion des collisions, gestion des cartes via <a href="http://www.mapeditor.org/screenshots.html" target="_blank">Tiled</a></p>
<div id="attachment_117" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.oni-ecchi.info/blog/wp-content/uploads/2008/12/collision_layer_example.png"><img class="size-medium wp-image-117" title="collision_layer_example" src="http://www.oni-ecchi.info/blog/wp-content/uploads/2008/12/collision_layer_example-300x200.png" alt="" width="300" height="200" /></a><p class="wp-caption-text">Tiled, Le Map editor supporté par Slick</p></div>
<p>Je reviendrais en détail sur ce framework en expliquant comment créer un jeux, ou du moins je mettrais le code source à disposition. Mais vous pouvez voir un exemple de code source ici : <a href="http://www.oni-ecchi.info/blog/wp-content/uploads/2008/12/scroller.java">Un tank se déplacement sur une carte avec gestions des collisions !</a></p>
<h3>Et vous ?</h3>
<p>Si on vous demandez de faire un jeux Java en 2D, vous partiriez sur quoi ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oni-ecchi.info/blog/decouverte-java/framework-java-pour-le-jeux.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
