<?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>Pixels Commander</title>
	<atom:link href="http://pixelscommander.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://pixelscommander.com</link>
	<description>personal blog about iPhone, Android and Flash development</description>
	<lastBuildDate>Sun, 19 Feb 2012 16:30:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>JS build and deploy with Gradle</title>
		<link>http://pixelscommander.com/en/javascript/js-gradle/</link>
		<comments>http://pixelscommander.com/en/javascript/js-gradle/#comments</comments>
		<pubDate>Sat, 18 Feb 2012 09:26:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://pixelscommander.com/?p=257</guid>
		<description><![CDATA[There is one extremely surprising thing &#8211; JS projects growth! Wow! That`s cool. But&#8230; Combining,  minimization and deploying  of this dozens of files would become larger and larger problem. Gradle is popular and modern build system that can solve such problems for you with help of JavaScript Gradle plugins. Специально для комбинации и минимизации JS [...]]]></description>
			<content:encoded><![CDATA[<p>There is one extremely surprising thing &#8211; JS projects growth!</p>
<p>Wow! That`s cool. But&#8230;</p>
<p>Combining,  minimization and deploying  of this dozens of files would become larger and larger problem.</p>
<p>Gradle is popular and modern build system that can solve such problems for you with help of JavaScript Gradle plugins.</p>
<p><span id="more-257"></span></p>
<p>Специально для комбинации и минимизации JS файлов существует два Gradle плагина &#8211; <a href="https://launchpad.net/gradle-jslib">https://launchpad.net/gradle-jslib</a> и <a href="https://github.com/eriwen/gradle-js-plugin">https://github.com/eriwen/gradle-js-plugin</a>.</p>
<p>По состоянию на декабрь 2011 года первый обладал хорошими возможностями по комбинации файлов в модули, однако не работал с последней версией Gradle. Рассказ в статье пойдет о втором плагине &#8211; он прост в освоении, надежен и снабжен неплохой документацией.</p>
<p>Начнем с установки gradle &#8211; она достаточно проста. Качаем свежий пакет с <a href="http://gradle.org/downloads">http://gradle.org/downloads</a> . Распаковываем на диске и добавляем подпапку bin в path. Как добавить переменную в path &#8211; можете почитать тут <a href="http://stackoverflow.com/questions/7703041/editing-path-variable-on-mac">http://stackoverflow.com/questions/7703041/editing-path-variable-on-mac</a>.</p>
<p>Проверить работоспособность Gradle мы можем выполнив команду <code>gradle</code> в терминале.</p>
<p>Следующий шаг &#8211; написание непосредственно Gradle скрипта.</p>
<p><code>buildscript {<br />
repositories {<br />
mavenCentral()<br />
}<br />
dependencies {<br />
//Устанавливаем плагин из Maven репозитория<br />
classpath 'com.eriwen:gradle-js-plugin:0.3'<br />
}<br />
}</code></p>
<p>Применяем плагин<br />
<code>apply plugin: 'js'</code></p>
<p>Таск плагина на склеивание, задаем inputs и outputs<br />
<code>combineJs {<br />
file1 = fileTree(dir: "${projectDir}/src/Core", includes: ['Framework/core.js'])<br />
file2 = fileTree(dir: "${projectDir}/src/Core", includes: ['Framework/strings.js'])<br />
file3 = fileTree(dir: "${projectDir}/src/Core", includes: ['Framework/dom.js'])<br />
inputs.files file1 + file2 + file3<br />
outputs.file file("${projectDir}/min/corecombined.js")<br />
}</code></p>
<p>Таск плагина на минификацию, задаем inputs и outputs<br />
<code>minifyJs {<br />
inputs.files fileTree(dir: "${projectDir}/min", include: "corecombined.js")<br />
outputs.file file("${projectDir}/min/core.min.js")<br />
}<br />
</code></p>
<p>Для деплоя используем Ant таск, который опишем в отдельном файле &#8211; deploycore.xml<br />
<code> //По этому имени таск будет доступен из Gradle<br />
</code></p>
<p><code> </code></p>
<p>&nbsp;</p>
<p><code> </code></p>
<p>&nbsp;</p>
<p>Добавим последнюю строку в core.gradle, которая загрузит все файлы с маской *.min.js на FTP :<br />
<code>ant.importBuild 'deploy.xml'</code></p>
<p>И наконец &#8211; вызываем gradle из консоли:<br />
<code>gradle -b=core.gradle</code></p>
<p>Наши файлы скомбинированы, уменьшены и загружены на сервер.<br />
Теперь вы можете уделить больше времени написанию кода.</p>
]]></content:encoded>
			<wfw:commentRss>http://pixelscommander.com/en/javascript/js-gradle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS dynamic image masks</title>
		<link>http://pixelscommander.com/en/javascript/css-dynamic-raster-masks/</link>
		<comments>http://pixelscommander.com/en/javascript/css-dynamic-raster-masks/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 02:51:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[flashjs]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[mask]]></category>

		<guid isPermaLink="false">http://pixelscommander.com/?p=242</guid>
		<description><![CDATA[It`s try to add dynamic masks to FlashJS. Very tricky and works only in Chrome/Safari. Anyway it`s first dynamic raster mask in HTML I`ve ever heard. For FlashJS users it just looks like: objectA.mask = objectB;objectB.graphics.drawCircle(x,y,r); But how it looks like behind the scene? There is -webkit-image-mask CSS property. It can be set not only [...]]]></description>
			<content:encoded><![CDATA[<p>It`s try to add <strong>dynamic masks</strong> to FlashJS.<br /> Very tricky and works only in Chrome/Safari.</p>
<p>Anyway it`s first dynamic <strong>raster mask</strong> in HTML I`ve ever heard.</p>
<p><span id="more-242"></span></p>
<p>For <strong>FlashJS</strong> users it just looks like:</p>
<p>objectA.mask = objectB;<br/>objectB.graphics.drawCircle(x,y,r);</p>
</pre>
<p>But how it looks like behind the scene?</p>
<p>There is <strong>-webkit-image-mask</strong> CSS property.</p>
<p>It can be set not only with file URL, but with data:URL as well.<br /> And it`s possible to save any canvas to data:URL and set this string as mask.</p>
<p>In this demo you draw some circles on invisible canvas by moving mouse over scene, canvas converts it`s pixels to data:URL string which applies to -webkit-image-mask property (in case it has changes).</p>
<p>Hope this CSS property would be improved to catch JS vars directly and would be  implemented in every browser.</p>
<p><iframe width = "300px" heigh="300px" src="http://flashjs.com/045/webKitMask.html"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://pixelscommander.com/en/javascript/css-dynamic-raster-masks/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>FlashJS &#8211; JavaScript for flashers and opensource HTML5 game engine.</title>
		<link>http://pixelscommander.com/en/interactive-revolution/flashjs-html5-opensource-game-engine/</link>
		<comments>http://pixelscommander.com/en/interactive-revolution/flashjs-html5-opensource-game-engine/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 21:16:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Interactive revolution]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[java script]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[labs]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://pixelscommander.com/?p=208</guid>
		<description><![CDATA[Some use cases don`t allow to use Flash into it`s ordinary fields. Such cases are online games with iOS ambitions or some other projects that need HTML5. Also there are a lot of Flash developers with game dev skills and ActionScript knowledge. At the crossroad of HTML / CSS progress and understanding of beautiful Flash objective [...]]]></description>
			<content:encoded><![CDATA[<div>
<div>
<p>Some use cases don`t allow to use Flash into it`s ordinary fields. Such cases are <strong>online games</strong> with iOS ambitions or some other projects that need <strong>HTML5</strong>. Also there are a lot of Flash developers with game dev skills and <strong>ActionScript</strong> knowledge.</p>
<p>At the crossroad of HTML / CSS progress and understanding of beautiful <strong>Flash</strong> objective model <a href="http://flashjs.com">FlashJS</a> was born. It`s library that allows to develop <strong>HTML5 applications</strong> in the way that is similar to usual <strong>AS3 development.</strong></p>
<p><span id="more-208"></span></p>
<p>With FlashJS you can use:</p>
<ul>
<li>addChild,</li>
<li>onEnterFrame,</li>
<li>KeyboardEvent,</li>
<li>DisplayObject,</li>
<li>Loader,</li>
<li>alpha,</li>
<li>rotation,</li>
<li>x, y coordinates for objects</li>
</ul>
<p>and much more inside of <strong>&lt;actionscript&gt; </strong>HTML tag.</p>
<p><img class="alignnone size-full wp-image-233" title="fl2" src="http://pixelscommander.com/wp-content/uploads/2011/10/fl2.png" alt="" width="170" height="138" /></p>
<p><a href="http://flashjs.com/racing.html">Demo of project`s use-case </a>works fine on mobile as well as on desktop so <a href="http://flashjs.com/racingMobile.html">version with mobile &#8211; compatible controls</a> was developed. You can change direction by tapping to left or right part of the browser.</p>
<p>Project is developing under MIT license and is almost free to use change or distribute. You can join development or download latest version <a href="https://github.com/PixelsCommander/FlashJS">here</a>.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://pixelscommander.com/en/interactive-revolution/flashjs-html5-opensource-game-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebGL snake with gamepad Android control</title>
		<link>http://pixelscommander.com/en/android-development/webgl-projecting-android-gamepad-worm/</link>
		<comments>http://pixelscommander.com/en/android-development/webgl-projecting-android-gamepad-worm/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 16:48:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Interactive projections]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[java script]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[labs]]></category>
		<category><![CDATA[three.js]]></category>
		<category><![CDATA[webgl]]></category>

		<guid isPermaLink="false">http://pixelscommander.com/?p=137</guid>
		<description><![CDATA[I`ve spent a lot of evenings to prepare new playable installation. This time it is developed with WebGL (three.js by Mr.Doob) Also i`ve developed gamepad Android application to control this installation. As Android application starts it launches WebSocket server. JavaScript application connects to it and listens for simple commands: up, down, left, right. You can [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>I`ve spent a lot of evenings to prepare new playable installation. This time it is developed with <strong>WebGL</strong> (three.js by Mr.Doob)</p>
<p>Also i`ve developed gamepad <strong>Android</strong> application to control this installation.</p>
<p>As Android application starts it launches WebSocket server.</p>
<p>JavaScript application connects to it and listens for simple commands: up, down, left, right.</p>
<p><a href="http://pixelscommander.com/wp-content/uploads/2011/07/wormDiagramEng.png"><img class="alignnone size-full wp-image-206" title="Components interaction diagram for WebGL worm controlled from Android device" src="http://pixelscommander.com/wp-content/uploads/2011/07/wormDiagramEng.png" alt="" width="580" height="277" /></a></p>
<p>You can find video of result further.</p>
<p><span id="more-137"></span><img title="Далее..." src="http://pixelscommander.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
<p><object width="500" height="375"><param name="movie" value="http://www.youtube.com/v/Mn7zjkOgCAM?version=3&#038;feature=oembed"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Mn7zjkOgCAM?version=3&#038;feature=oembed" type="application/x-shockwave-flash" width="500" height="375" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>I have to work with projector &#8211; orientation technique and look for more interesting surface.</p>
<p>P.S. May be you know building with squared texture at the wall?</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://pixelscommander.com/en/android-development/webgl-projecting-android-gamepad-worm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oko project</title>
		<link>http://pixelscommander.com/en/interactive-revolution/oko-project/</link>
		<comments>http://pixelscommander.com/en/interactive-revolution/oko-project/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 10:23:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Interactive revolution]]></category>
		<category><![CDATA[Interactive projections]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[alternativa]]></category>
		<category><![CDATA[eye]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[interactive]]></category>
		<category><![CDATA[labs]]></category>
		<category><![CDATA[projection]]></category>

		<guid isPermaLink="false">http://pixelscommander.com/?p=103</guid>
		<description><![CDATA[First part of eyes-based interactive installation is done. First and easiest one (thanks to Alternativa 3D). Now it`s time for long work with details of visual appearence and motion detection.]]></description>
			<content:encoded><![CDATA[<div>
<p><object width="500" height="400"><param name="movie" value="http://www.youtube.com/v/8xKA_-jDhJM?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/8xKA_-jDhJM?version=3" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>First part of eyes-based interactive installation is done. First and easiest one (thanks to <strong>Alternativa 3D</strong>). Now it`s time for long work with details of visual appearence and motion detection.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://pixelscommander.com/en/interactive-revolution/oko-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IPhone-like TabBar for Android applications</title>
		<link>http://pixelscommander.com/en/iphone-development/iphone-like-tabbar-in-android/</link>
		<comments>http://pixelscommander.com/en/iphone-development/iphone-like-tabbar-in-android/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 14:19:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://pixelscommander.com/?p=83</guid>
		<description><![CDATA[Some time ago I worked for conservative client who wants Android and iPhone versions of application look identical. Ofcourse one of main problems became development of iPhone-like TabBar widget in Android. TabBarNavigator does not fit because of difference in position and visual appearence. So i`ve started to search the way to solve the problem. We would [...]]]></description>
			<content:encoded><![CDATA[<p>Some time ago I worked for conservative client who wants Android and iPhone versions of application look identical. Ofcourse one of main problems became development of <strong>iPhone</strong>-like <strong>TabBar</strong> widget in <strong>Android</strong>.</p>
<p>TabBarNavigator does not fit because of difference in position and visual appearence. So i`ve started to search the way to solve the problem.</p>
<p><span id="more-83"></span></p>
<p>We would extend view class and describe it into xml respectively:</p>
<pre class="brush: xml; title: mainActivity.xml; notranslate">
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;view xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;
class=&amp;quot;com.pixelscommander.tabbarapp$iRelativeLayout&amp;quot;
android:orientation=&amp;quot;vertical&amp;quot;
android:layout_width=&amp;quot;fill_parent&amp;quot;
android:layout_height=&amp;quot;fill_parent&amp;quot;
android:background = &amp;quot;#C5CCD4FF&amp;quot;
&amp;gt;
    &amp;lt;view

    android:id=&amp;quot;@+id/Tabs&amp;quot;
    android:layout_width = &amp;quot;fill_parent&amp;quot;
    android:layout_height = &amp;quot;50px&amp;quot;
    android:layout_alignParentBottom = &amp;quot;true&amp;quot;
    /&amp;gt;
&amp;lt;/view&amp;gt;
</pre>
<p>There we can find two classes iTab and iRelativeLayout described into application activity. <br />
We would create TabBar with overriding view`s onDraw method for every iTab.<br />
I`ll not describe listing in this article as it`s large enough. You can just look at comments into project that can be loaded <a href="http://pixelscommander.com/polygon/android-iphone-tabbar.zip">here</a>.</pre>
<p>Ofcourse there are another <strong>ways to mimic iPhone tabbar</strong> but this not only looks like native, it allows the use of the same PNG icons with <strong>semitransparence</strong> so you have not to create new assets for android version of application.</p>
]]></content:encoded>
			<wfw:commentRss>http://pixelscommander.com/en/iphone-development/iphone-like-tabbar-in-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New version of Android development tools was presented at Google I/O 2011</title>
		<link>http://pixelscommander.com/en/android-development/android-development-tools-at-google-io-2011/</link>
		<comments>http://pixelscommander.com/en/android-development/android-development-tools-at-google-io-2011/#comments</comments>
		<pubDate>Sun, 15 May 2011 14:42:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[ADT]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Google I/O]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://pixelscommander.com/?p=49</guid>
		<description><![CDATA[Xavier Ducrohet and Tor Norbye presented newest Android Development Tools Main features of upgraded ADT are: New layout editor New code editor New profiler and emulator improvements and optimizations (they even speak about fast Android emulator!)]]></description>
			<content:encoded><![CDATA[<div>
<p>Xavier Ducrohet and Tor Norbye presented newest Android Development Tools</p>
<p>Main features of upgraded ADT are:</p>
<ul>
<li>New layout editor</li>
<li>New code editor</li>
<li>New profiler and emulator improvements and optimizations <strong>(they even speak about fast Android emulator!)</strong></li>
</ul>
<p><object width="500" height="306"><param name="movie" value="http://www.youtube.com/v/Oq05KqjXTvs?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Oq05KqjXTvs?version=3" type="application/x-shockwave-flash" width="500" height="306" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://pixelscommander.com/en/android-development/android-development-tools-at-google-io-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Frustrating videoinstallation named Post Mortem (After the death)</title>
		<link>http://pixelscommander.com/en/interactive-revolution/post-mortem-interactive-installation/</link>
		<comments>http://pixelscommander.com/en/interactive-revolution/post-mortem-interactive-installation/#comments</comments>
		<pubDate>Thu, 12 May 2011 19:30:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Interactive revolution]]></category>
		<category><![CDATA[Interactive projections]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[interactive]]></category>
		<category><![CDATA[projection]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[vvvv]]></category>

		<guid isPermaLink="false">http://pixelscommander.com/?p=42</guid>
		<description><![CDATA[vvvv.org presented interesting and frustratng interactive installation by german media artist Jannis Kilian Kreft. Installation called POST MORTEM looks like stone table with LCD projector pointed to its top. Every part of body that would be placed at the table would be presented as it is body part after your death. Time of death and [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>vvvv.org presented interesting and frustratng interactive installation by german media artist Jannis Kilian Kreft.</p>
<p>Installation called POST MORTEM looks like stone table with LCD projector pointed to its top. Every part of body that would be placed at the table would be presented as it is body part after your death. Time of death and corresponding look can be tuned.</p>
<p><span id="more-42"></span><img title="Далее..." src="http://pixelscommander.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
<p><object width="500" height="306"><param name="movie" value="http://www.youtube.com/v/J3qOobiHw3Y?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/J3qOobiHw3Y?version=3" type="application/x-shockwave-flash" width="500" height="306" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>It`s fine technology demonstration that shows good possibilities of vvvv in field of shapes detection and make it interesting to learn it.</p>
<p>So I have to spend some time installing Windows to my MacBook as any other Mac owner who want to work with vvvv. It runs only in Windows.</p>
<p>P.S. vvvv &#8211; is a development enviroment for interactive graphics creation. It support visual development as well as <strong>C#</strong> coding.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://pixelscommander.com/en/interactive-revolution/post-mortem-interactive-installation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PNG optimisation for online games and mobile applications. Is it important?</title>
		<link>http://pixelscommander.com/en/flash-development/png-optimization-for-flash-games-and-mobile-applications/</link>
		<comments>http://pixelscommander.com/en/flash-development/png-optimization-for-flash-games-and-mobile-applications/#comments</comments>
		<pubDate>Fri, 22 Apr 2011 16:45:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Social networks]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[social]]></category>

		<guid isPermaLink="false">http://pixelscommander.com/?p=23</guid>
		<description><![CDATA[PNG (Portable Network Graphics ) is most popular format for static graphics. Large part of interactive online projects send to user tens of megabytes in this format. And it`s hard to understand global amount of PNG traffic. Also it`s hard to understand how much of it would be not needed if right optimization of PNG [...]]]></description>
			<content:encoded><![CDATA[<p>PNG (Portable Network Graphics ) is most popular format for static graphics. Large part of interactive online projects send to user tens of megabytes in this format. And it`s hard to understand global amount of PNG traffic. Also it`s hard to understand how much of it would be not needed if right <strong>optimization</strong> of <strong>PNG images</strong> would be done. Your static content servers are overloaded? Users report about slow loading? This post would help&#8230;</p>
<p><span id="more-23"></span></p>
<p><strong>Where do PNG files come from?</strong></p>
<p>Assets are drawn by artists and designers. This guys love what they do but they don`t warn about delicate moments of development and some of them are filesize and ways of it optimization. Ofcourse in ideal world they would understand that it`s important to accelerate application`s loading as it`s possible. But in real world you have to teach them =)</p>
<p>May be you think that it`s not important enough to spend some time for PNG optimization, but belive me it`s so.</p>
<p><strong>Is there any reason to optimize?</strong></p>
<p>Usually optimization can give us from 20% to 1000% of filesize decreasing.</p>
<p>Just imagine that you develop farm game&#8230; Ordinal user of your application downloads 5 mb of PNG assets and you have 1 million DAO.</p>
<p>Even at 20% of optimization saving effect would be about 1 terrabyte per month. I think this reason is enough to start optimize PNG.</p>
<p><strong>Effective ways of optimization</strong></p>
<p>There are a lot of PNG optimisation methodics in the network, but i`ll describe two of them that are most effective:</p>
<ol>
<li>Optimization with OptiPNG utility that can be downloaded here - <a href="http://optipng.sourceforge.net">http://optipng.sourceforge.net</a>.. This small and free software is a looseless way to compress your PNG.  Just drag and drop files to utility.</li>
<li>Posterization in Photoshop(Levels: 40)  can <strong>decrease PNG filesize</strong> by 20-30% . Push &#8220;Layers palette&#8221; button in Photoshop and choose &#8220;Posterize&#8221;.</li>
</ol>
<p><strong>Details for Flash &#8211; projects</strong></p>
<p>As soon as you insert PNG to flash project you have not to care of optimization. Flash IDE and Flex SDK have rather good optimization tools and there is no any advantage in additional optimization.</p>
<p>But ofcourse you can compress files any way you like and embed them into flash/flex project as byte array asset.</p>
<p><strong>UPDATE, three monthes later</strong></p>
<p><strong> </strong>That is text from Apple iAd design guide:</p>
<blockquote><p><em>If you need to use PNG images, you should use an image-optimizing utility (for example, PNGCrush) to compress them as much as possible.</em></p>
<p><em>You can further reduce a PNG image’s file size by applying a slight posterization effect to it. Doing so reduces the file’s color palette by converting similar colors that are contiguous. You should not posterize images with a gradient or images that need to match an exact color.</em></p></blockquote>
<p>It seems amazing how this advice is close to my one!</p>
]]></content:encoded>
			<wfw:commentRss>http://pixelscommander.com/en/flash-development/png-optimization-for-flash-games-and-mobile-applications/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to prepare your house to the New Year Holidays with a help of Flash</title>
		<link>http://pixelscommander.com/en/interactive-revolution/how-to-decorate-with-flashdance/</link>
		<comments>http://pixelscommander.com/en/interactive-revolution/how-to-decorate-with-flashdance/#comments</comments>
		<pubDate>Sun, 26 Dec 2010 15:37:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Interactive revolution]]></category>
		<category><![CDATA[Interactive projections]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flashdance]]></category>
		<category><![CDATA[interactive]]></category>
		<category><![CDATA[labs]]></category>
		<category><![CDATA[projection]]></category>

		<guid isPermaLink="false">http://pixelscommander.com/?p=5</guid>
		<description><![CDATA[Christmas garlands, Christmas trees and festive decorations are out of fashion &#8211; you can decorate your flat directly throught the computer screen. As for me, projector and professional skills are enough for this task. Flash Dance is available for PC or Mac.]]></description>
			<content:encoded><![CDATA[<p>Christmas garlands, Christmas trees and festive decorations are out of fashion &#8211; you can decorate your flat directly throught the computer screen. As for me, projector and professional skills are enough for this task.</p>
<p><strong>Flash Dance</strong> is available for <a href="http://itsea.ru/FlashDance.swf">PC </a>or <a href="ttp://itsea.ru/FlashDanceMac.swf">Mac</a>.</p>
<p><object width="500" height="306"><param name="movie" value="http://www.youtube.com/v/8G1j-jVCF_s?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/8G1j-jVCF_s?version=3" type="application/x-shockwave-flash" width="500" height="306" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://pixelscommander.com/en/interactive-revolution/how-to-decorate-with-flashdance/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

