<?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>Flash заметки</title>
	<atom:link href="http://flashnotes.ru/feed/" rel="self" type="application/rss+xml" />
	<link>http://flashnotes.ru</link>
	<description>Заметки флешера</description>
	<lastBuildDate>Fri, 18 May 2012 10:00:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Роботы вдохновленные животными</title>
		<link>http://flashnotes.ru/2012/05/18/roboty-vdoxnovlennye-zhivotnymi/</link>
		<comments>http://flashnotes.ru/2012/05/18/roboty-vdoxnovlennye-zhivotnymi/#comments</comments>
		<pubDate>Fri, 18 May 2012 10:00:09 +0000</pubDate>
		<dc:creator>VirtualMaestro</dc:creator>
				<category><![CDATA[Видео]]></category>
		<category><![CDATA[Разное]]></category>
		<category><![CDATA[animals]]></category>
		<category><![CDATA[robots]]></category>
		<category><![CDATA[животные]]></category>
		<category><![CDATA[роботы]]></category>

		<guid isPermaLink="false">http://flashnotes.ru/?p=1321</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>
<object width="640" height="480">
<param name="movie" value="http://www.youtube.com/v/Tq8Yw19bn7Q&amp;rel=0&amp;showsearch=0&amp;showinfo=0&amp;iv_load_policy=3"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="direct"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#eeeeee"></param>
<param name="allowScriptAccess" value="always"></param>
<embed type="application/x-shockwave-flash" width="640" height="480" src="http://www.youtube.com/v/Tq8Yw19bn7Q&amp;rel=0&amp;showsearch=0&amp;showinfo=0&amp;iv_load_policy=3" quality="high" bgcolor="#eeeeee" wmode="direct" menu="false" ></embed>
</object>
</p>
]]></content:encoded>
			<wfw:commentRss>http://flashnotes.ru/2012/05/18/roboty-vdoxnovlennye-zhivotnymi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Сравнение производительности:  Starling vs ND2D vs Genome2D vs Haxe NME</title>
		<link>http://flashnotes.ru/2012/05/10/sravnenie-proizvoditelnosti-starling-vs-nd2d-vs-genome2d-vs-haxe-nme/</link>
		<comments>http://flashnotes.ru/2012/05/10/sravnenie-proizvoditelnosti-starling-vs-nd2d-vs-genome2d-vs-haxe-nme/#comments</comments>
		<pubDate>Thu, 10 May 2012 09:58:15 +0000</pubDate>
		<dc:creator>VirtualMaestro</dc:creator>
				<category><![CDATA[Genome2D]]></category>
		<category><![CDATA[Stage3D]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[Genome2d]]></category>
		<category><![CDATA[haxe-nme]]></category>
		<category><![CDATA[nd2d]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[starling]]></category>

		<guid isPermaLink="false">http://flashnotes.ru/?p=1312</guid>
		<description><![CDATA[Интересный тест производительности нашел в сети. Сравниваются три флеш движка и один Haxe-NME. Напомню, что Haxe-NME это инструмент, который компилирует код haxe в &#8220;родной&#8221; код для нескольких платформ. Тестирование производилось на нескольких мобильных устройствах. А это значит, что три флеш движка работают через AIR технологию и они пока не могут тягаться с &#8220;родным&#8221; кодом, НО [...]]]></description>
			<content:encoded><![CDATA[<p>Интересный <a href="http://esdot.ca/site/2012/performance-showdown-starling-vs-nd2d-vs-genome2d-vs-haxe-nme" target="_blank">тест производительности</a> нашел в сети.<br />
Сравниваются три флеш движка и один <strong>Haxe-NME</strong>. Напомню, что <a href="http://www.haxenme.org/" target="_blank">Haxe-NME</a> это инструмент, который компилирует код <a href="http://haxe.org/" target="_blank">haxe </a>в &#8220;родной&#8221; код для нескольких платформ.</p>
<p>Тестирование производилось на нескольких мобильных устройствах. А это значит, что три флеш движка работают через AIR технологию и они пока не могут тягаться с &#8220;родным&#8221; кодом, НО результаты очень близки к нему, что не может не радовать.<br />
Еще одну радость приносит, что <strong>Genome2D </strong>обул всех (на графике видно что для <strong>Nexus One</strong> он немножко проигрывает старлингу, но в комментариях <a href="http://esdot.ca/site/2012/performance-showdown-starling-vs-nd2d-vs-genome2d-vs-haxe-nme#comment-397" target="_blank">автор генома сказал</a>, что получил результаты как раз наоборот &#8211; <strong>genome2d </strong>где то на 8% быстрее нежели <strong>Starling</strong>).</p>
<p>В личной беседе автор сказал, что даже если у пользователя Flash Player не поддерживает видеокарту, то при возврате на CPU режим <strong>genome2d </strong>будет все-равно быстрее чем другие движки.</p>
<p>В комментариях, похоже, все сошлись на том, что AS3 является наибольшей преградой производительности.</p>
]]></content:encoded>
			<wfw:commentRss>http://flashnotes.ru/2012/05/10/sravnenie-proizvoditelnosti-starling-vs-nd2d-vs-genome2d-vs-haxe-nme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Состоялся релиз Genome2D 0.9.1</title>
		<link>http://flashnotes.ru/2012/05/07/sostoyalsya-reliz-genome2d-0-9-1/</link>
		<comments>http://flashnotes.ru/2012/05/07/sostoyalsya-reliz-genome2d-0-9-1/#comments</comments>
		<pubDate>Sun, 06 May 2012 22:27:06 +0000</pubDate>
		<dc:creator>VirtualMaestro</dc:creator>
				<category><![CDATA[Genome2D]]></category>
		<category><![CDATA[Stage3D]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[Genome2D 0.9.1]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[релиз]]></category>

		<guid isPermaLink="false">http://flashnotes.ru/?p=1304</guid>
		<description><![CDATA[Было исправлено много больших и маленьких ошибок. Одно большое изменение в том, что был выделен шейдер для спрайтов, которые не используют альфа канала. Это позволило поднять производительность на iOS и Android до двух раз. Также, был встроен новый профайлер, который включается enableStats = true в конструкторе классе GContextConfig при инициализации движка. Профайлер показывает следующую информацию [...]]]></description>
			<content:encoded><![CDATA[<p>Было исправлено много больших и маленьких ошибок.<br />
Одно большое изменение в том, что был выделен шейдер для спрайтов, которые не используют альфа канала. Это позволило поднять производительность на iOS и Android до двух раз.<br />
Также, был встроен новый профайлер, который включается enableStats = true в конструкторе классе GContextConfig при инициализации движка.<br />
Профайлер показывает следующую информацию &#8211; FPS, Min/Max mem, количество вызовов процедур рисования на кадр, количество текстур на GPU.</p>
<p>Обновлена документация и примеры:<br />
<a href="http://www.genome2d.com/docs/" target="_blank">ASDoc </a><br />
<a href="https://github.com/pshtif/Genome2D" target="_blank">Примеры </a><br />
<a href="https://github.com/pshtif/Genome2D/downloads" target="_blank">Библиотека </a></p>
<p><a href="http://blog.flash-core.com/?p=1155" target="_blank">Ссылка на страницу оригинала</a>. Также, на этой странице вы можете проголосовать над какой функциональностью автору работать в будущем.</p>
]]></content:encoded>
			<wfw:commentRss>http://flashnotes.ru/2012/05/07/sostoyalsya-reliz-genome2d-0-9-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Пре-релиз FP 11.3 и AIR 3.3</title>
		<link>http://flashnotes.ru/2012/05/05/pre-reliz-fp-11-3-i-air-3-3/</link>
		<comments>http://flashnotes.ru/2012/05/05/pre-reliz-fp-11-3-i-air-3-3/#comments</comments>
		<pubDate>Sat, 05 May 2012 21:07:53 +0000</pubDate>
		<dc:creator>VirtualMaestro</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[AIR 3.3]]></category>
		<category><![CDATA[FP 11.3]]></category>
		<category><![CDATA[pre-release]]></category>

		<guid isPermaLink="false">http://flashnotes.ru/?p=1296</guid>
		<description><![CDATA[Вчера вышел пре-релиз FP 11.3 и AIR 3.3. Новшества можно прочитать тут. Новые фичи, это хорошо, но вызвало печаль сообщение о том, что не была понижена планка поддерживаемых видеокарт. Поддержка драйверов начиная с 2006 года будет включена только в этот пре-релиз, в релизе ее отключат. Вернут ее в будущих релизах. Тут еще хотелось добавить пару [...]]]></description>
			<content:encoded><![CDATA[<p>Вчера вышел пре-релиз <a href="http://blogs.adobe.com/labs/archives/2012/05/adobe-flash-player-11-3-beta-3-released-to-labs.html" target="_blank">FP 11.3</a> и <a href="http://blogs.adobe.com/labs/archives/2012/05/adobe-air-3-3-beta-3-released-for-download.html" target="_blank">AIR 3.3</a>.<br />
Новшества можно прочитать <a href="http://labsdownload.adobe.com/pub/labs/flashplatformruntimes/shared/air3-3_flashplayer11-3_p3_releasenotes.pdf" target="_blank">тут</a>.<br />
Новые фичи, это хорошо, но вызвало печаль сообщение о том, что не была понижена планка поддерживаемых видеокарт. Поддержка драйверов начиная с 2006 года будет включена только в этот пре-релиз, в релизе ее отключат. Вернут ее в будущих релизах.<br />
Тут еще хотелось добавить пару гневных возгласов, но остается только надеяться, что они знают чего делают. </p>
]]></content:encoded>
			<wfw:commentRss>http://flashnotes.ru/2012/05/05/pre-reliz-fp-11-3-i-air-3-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Genome2D &#8211; Начало начал</title>
		<link>http://flashnotes.ru/2012/05/03/genome2d-nachalo-nachal/</link>
		<comments>http://flashnotes.ru/2012/05/03/genome2d-nachalo-nachal/#comments</comments>
		<pubDate>Thu, 03 May 2012 11:59:19 +0000</pubDate>
		<dc:creator>VirtualMaestro</dc:creator>
				<category><![CDATA[Genome2D]]></category>
		<category><![CDATA[Stage3D]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[Genome2d]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[начало начал]]></category>
		<category><![CDATA[уроки]]></category>

		<guid isPermaLink="false">http://flashnotes.ru/?p=1252</guid>
		<description><![CDATA[Скорее всего информацию в этой статье надо было дать одной из первых, но, как говорится, &#8220;лучше поздно чем не туда&#8230;&#8221; Размышление вслух. Поехали. В Genome2D используется компонентный подход. Все дерево иерархии берет свое начало от root (Genome2D.root). Листьями (или узлами) этого дерева являются ноды (GNode). Все компоненты для того, чтобы быть на сцене и/или как-то [...]]]></description>
			<content:encoded><![CDATA[<p>Скорее всего информацию в этой статье надо было дать одной из первых, но, как говорится, &#8220;лучше поздно чем не туда&#8230;&#8221;<br />
Размышление вслух. Поехали.<br />
<span id="more-1252"></span><br />
В <strong>Genome2D </strong>используется компонентный подход.<br />
Все дерево иерархии берет свое начало от <strong>root </strong>(<strong>Genome2D.root</strong>). Листьями (или узлами) этого дерева являются ноды (GNode).<br />
   Все компоненты для того, чтобы быть на сцене и/или как-то участвовать в ее жизни должны быть помещены в эти ноды. Не помещенный в дерево компонент никак не влияет на сцену. Также ноды могут содержать другие ноды &#8211; как и в Display list&#8217;e называемые детьми, но компонент в ноде может быть только один (на самом деле не один, но этого лучше не делать, чтобы избежать проблем). Итак, чтобы добавить компонент на сцену создаем сам компонент, создаем для него нод (GNode) и добавляем его к этому ноду, после добавляем этот нод в дерево сцены. И вот наш компонент на сцене.</p>
<p>   В отличии от привычной для флеш разработчиков модели <strong>Display list&#8217;а</strong> и его компонентов тут все работает немного по другому. Например, трансформации любого вида <strong>НЕ</strong> применяются к компоненту напрямую, только к его ноду. Это позиция, вращение, масштабирование, цветовая коррекция, и даже видимость &#8211; все эти параметры задаются через нод в его свойстве transform. Тоже касается интерактивности. Все события мыши, а также события добавления/удаления со сцены надо слушать от нода. Как уже говорилось Genome2d не использует &#8220;родную&#8221; систему событий, вместо этого используются сигналы (в частности библиотека <strong>AS3Signals</strong>). Все сигналы можно легко узнать по префиксу &#8216;on&#8217; (<strong>onMouseClick</strong>).<br />
Подробней по полям и методам нода можно обратится в <a href="http://www.genome2d.com/docs/com/genome2d/core/GNode.html" target="_blank">доку</a>.</p>
<p>   Каждый кадр класс <a href="http://www.genome2d.com/docs/com/genome2d/core/Genome2D.html" target="_blank">genome2d</a> вещает четыре события обновления и отрисовки &#8211; <strong>onPreUpdate</strong>, <strong>onPostUpdate</strong>, <strong>onPreRender</strong>, <strong>onPostRender</strong>  (имена сигналов должны говорить сами за себя). Вещаются они в указанном порядке.<br />
Сигнал <strong>onPreUpdate </strong>можно также использовать как enterFrame, он вызывается самым первым перед всеми обновлениями нодов и их рендеринге.<br />
<strong>onPostRender </strong>вызывается последним после всех обновлений и отрисовке.</p>
<p>   Если вы добавили в дерево комопненты для рендеринга, это не значит, что они появятся на экране. Ничего не отображается пока на сцене нету <strong>камеры</strong>. Класс отвечающий за камеру <strong><a href="http://www.genome2d.com/docs/com/genome2d/components/GCamera.html" target="_blank">GCamera</a></strong>.<br />
С помощью битовой маски можно настроить какие ноды камера будет отображать, а какие нет. Для этого в <strong>GNode </strong>есть поле <strong>cameraGroup</strong>, а в камере &#8211; <strong>mask</strong>. </p>
<blockquote><p>Если <strong>(camera.mask &#038; node.cameraGroup) != 0</strong>, тогда камера будет рендерить этот нод.</p></blockquote>
<p>На сцене может быть несколько камер, будет отдельная статья по мультикамерам.<br />
Чтобы понять, что такое камера представьте себе стол на котором лежат изображения и вы смотрите на этот стол через окошко и для того, чтобы увидеть другое изображение вам надо передвинуть это окошко. То есть, для того, чтобы создать иллюзию движения вы не двигаете деревом компонентов, вы двигаете окном через которое смотрите.<br />
<a href="http://flashnotes.ru/downloads/2012/04/camera.png"><img src="http://flashnotes.ru/downloads/2012/04/camera.png" alt="" title="camera" width="300" height="441" class="alignnone size-full wp-image-1254" /></a></p>
<p>Пока больше не придумал чего написать. Надо сказать, что сейчас <strong>Genome2d </strong>активно развивается и почти каждый день выходят <a href="http://build.genome2d.com/nightly/" target="_blank">ночные билды</a> в которых существующая функциональность меняется, добавляется новая и удаляется не нужная. Потому, обратная совместимость постепенно теряется.<br />
Уверен, что к следующему релизу будет множество изменений в АПИ. Необязательно это будут какие то масштабные изменения, но уже сейчас вижу, что где то добавился третий обязательный параметр, где убрались какие то свойства и т.д.<br />
Ну и конечно же фиксятся ошибки <img src='http://flashnotes.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Пока так. Если есть какие либо ошибки/неточности велком в комменты.</p>
]]></content:encoded>
			<wfw:commentRss>http://flashnotes.ru/2012/05/03/genome2d-nachalo-nachal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Список редакторов уровней для 2d игр</title>
		<link>http://flashnotes.ru/2012/05/03/spisok-redaktorov-urovnej-dlya-2d-igr/</link>
		<comments>http://flashnotes.ru/2012/05/03/spisok-redaktorov-urovnej-dlya-2d-igr/#comments</comments>
		<pubDate>Thu, 03 May 2012 11:16:13 +0000</pubDate>
		<dc:creator>VirtualMaestro</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Тулзы]]></category>
		<category><![CDATA[2d]]></category>
		<category><![CDATA[level editor]]></category>
		<category><![CDATA[map editor]]></category>
		<category><![CDATA[редакторы уровней]]></category>

		<guid isPermaLink="false">http://flashnotes.ru/?p=1276</guid>
		<description><![CDATA[Рыл для себя доступные левел редакторы и как результат ниже небольшой список: tIDE Tile Map Editor (tile-based) GLEED2D (non tile-based) Tile Map Editor (tile-based) D2D Map editor (tile-based) DAME editor (tile-based) iTileMaps (для iOS, tile-based) Ogmo Editor Gumbo Ссылки на первоисточники тут и тут. Там есть еще редакторы. В своем списке я выбрал наиболее лучшие [...]]]></description>
			<content:encoded><![CDATA[<p>Рыл для себя доступные левел редакторы и как результат ниже небольшой список:<br />
<span id="more-1276"></span><br />
<a href="http://tide.codeplex.com/" target="_blank">tIDE Tile Map Editor</a> (tile-based)<br />
<a href="http://gleed2d.codeplex.com/" target="_blank">GLEED2D </a>(non tile-based)<br />
<a href="http://www.mapeditor.org/" target="_blank">Tile Map Editor</a> (tile-based)<br />
<a href="http://dannylum.com/D2DProject/index.html" target="_blank">D2D Map editor</a> (tile-based)<br />
<a href="http://dambots.com/dame-editor/" target="_blank">DAME editor</a> (tile-based)<br />
<a href="http://www.klemix.com/page/iTileMaps.aspx" target="_blank">iTileMaps</a> (для iOS, tile-based)<br />
<a href="http://www.ogmoeditor.com/" target="_blank">Ogmo Editor</a><br />
<a href="http://www.nerderer.com/Gumbo/" target="_blank">Gumbo</a></p>
<p>Ссылки на первоисточники <a href="http://codeboje.de/list-of-2d-map-editors/" target="_blank">тут</a> и <a href="http://www.rocket5studios.com/game-design/cool-indie-level-editors/" target="_blank">тут</a>. Там есть еще редакторы.<br />
В своем списке я выбрал наиболее лучшие и развивающиеся. Все остальное я посчитал хламом. </p>
<p>Если вы знаете еще редакторы, прошу в комменты.   </p>
]]></content:encoded>
			<wfw:commentRss>http://flashnotes.ru/2012/05/03/spisok-redaktorov-urovnej-dlya-2d-igr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Genome2D &#8211; MovieClip</title>
		<link>http://flashnotes.ru/2012/04/11/genome2d-movieclip/</link>
		<comments>http://flashnotes.ru/2012/04/11/genome2d-movieclip/#comments</comments>
		<pubDate>Wed, 11 Apr 2012 21:04:55 +0000</pubDate>
		<dc:creator>VirtualMaestro</dc:creator>
				<category><![CDATA[Genome2D]]></category>
		<category><![CDATA[Stage3D]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[Genome2d]]></category>
		<category><![CDATA[MovieClip]]></category>
		<category><![CDATA[Stage3d]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[уроки]]></category>

		<guid isPermaLink="false">http://flashnotes.ru/?p=1242</guid>
		<description><![CDATA[В этой статье поговорим о MovieClip&#8217;ах. Если мы говорим о какой либо анимации, которая будет исполнятся с помощью GPU, мы всегда в конечном итоге будем иметь дело с текстурными атласами. Что такое текстурный атлас? Проще говоря это картинки собранные в одну картинку. Еще их называют спрайтшитами (Sprite sheet) (Примеры) Например, мы имеем анимацию ниндзи, которая [...]]]></description>
			<content:encoded><![CDATA[<p>В этой статье поговорим о MovieClip&#8217;ах.<br />
Если мы говорим о какой либо анимации, которая будет исполнятся с помощью GPU, мы всегда в конечном итоге будем иметь дело с текстурными атласами.<br />
<strong>Что такое текстурный атлас</strong>? Проще говоря это картинки собранные в одну картинку. Еще их называют спрайтшитами <img src='http://flashnotes.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  (Sprite sheet) (<a href="http://spritecity0.tripod.com/id4.html" target="_blank">Примеры</a>)<br />
Например, мы имеем анимацию ниндзи, которая идет влево. Мы нарисовали пять картинок анимации (5 спрайтов) и поместили их в одну картинку. В коде мы будем работать с одной картинкой. Когда нам надо показать на экране какой-либо спрайт мы просто задаем область в нашей большой картинке, которую надо показать. Если нам надо анимацию, то мы последовательно меняем спрайт.<br />
<span id="more-1242"></span><br />
Вот пример атласа, который будет использоваться в данном примере:<br />
<img src="http://www.flash-core.com/g2d/tutorials/ninja.png" alt="Атлас" /></p>
<p>Когда создается атлас, кроме картинки также создается XML файл в котором описан каждый спрайт &#8211; его имя и координаты по которым его достать.<br />
<strong>Genome2D </strong>содержит богатый функционал по созданию атласов, но вы должны подумать о том, чтобы сгенерировать атлас внешними программными средствами, чтобы не делать это в рантайм. Одна из таких программ Texture Packer  http://www.texturepacker.com/ (также эти программы имеют более богатый функциональный набор и более грамотно делают атласы).</p>
<p>Немного кода:</p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000;">&#91;</span>Embed<span style="color: #000000;">&#40;</span><span style="color: #004993;">source</span> = <span style="color: #990000;">&quot;../assets/ninja.xml&quot;</span><span style="color: #000066; font-weight: bold;">,</span> mimeType = <span style="color: #990000;">&quot;application/octet-stream&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span><br />
<span style="color: #0033ff; font-weight: bold;">public</span> const NinjaEmbeddedXML<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=class%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:class.html"><span style="color: #004993;">Class</span></a><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp;<br />
<span style="color: #000000;">&#91;</span>Embed<span style="color: #000000;">&#40;</span><span style="color: #004993;">source</span> = <span style="color: #990000;">&quot;../assets/ninja.png&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span><br />
<span style="color: #0033ff; font-weight: bold;">public</span> const NinjaEmbeddedBitmap<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=class%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:class.html"><span style="color: #004993;">Class</span></a><span style="color: #000066; font-weight: bold;">;</span></div></div>
<p>Здесь мы просто подключили атлас и его XML файл.<br />
Далее создаем эту картику, XML и после этого с помощью фабрики GTextureAtlasFactory.createFromBitmapDataAndXML создаем текстурный атлас. Первым параметром строковая уникальная переменная имя атласа далее bitmapData нашего спрайт-шита и XML файл.</p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6699cc; font-weight: bold;">var</span> bitmapAtlas<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=bitmap%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:bitmap.html"><span style="color: #004993;">Bitmap</span></a> = <span style="color: #0033ff; font-weight: bold;">new</span> NinjaEmbeddedBitmap<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #6699cc; font-weight: bold;">var</span> atlasXML<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=xml%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:xml.html"><span style="color: #004993;">XML</span></a> = <a href="http://www.google.com/search?q=xml%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:xml.html"><span style="color: #004993;">XML</span></a><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">new</span> NinjaEmbeddedXML<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #6699cc; font-weight: bold;">var</span> textureAtlas<span style="color: #000066; font-weight: bold;">:</span>GTextureAtlas = GTextureAtlasFactory<span style="color: #000066; font-weight: bold;">.</span>createFromBitmapDataAndXML<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;textureAtlasId&quot;</span><span style="color: #000066; font-weight: bold;">,</span> bitmapAtlas<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">bitmapData</span><span style="color: #000066; font-weight: bold;">,</span> atlasXML<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></div></div>
<p>XML файл использует Sparrow формат, он легко экспортируется с выше упомянутого Texture Packer. Автор думал над тем, чтобы сделать свой формат но похоже что Sparrow формат имеет все что нужно, потому решил что будет использовать его. Выглядит он так:</p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000066; font-weight: bold;">&lt;?</span>xml <span style="color: #004993;">version</span>=<span style="color: #990000;">&quot;1.0&quot;</span> encoding=<span style="color: #990000;">&quot;UTF-8&quot;</span><span style="color: #000066; font-weight: bold;">?&gt;</span><br />
<span style="color: #000066; font-weight: bold;">&lt;</span>TextureAtlas imagePath=<span style="color: #990000;">&quot;ninja.png&quot;</span><span style="color: #000066; font-weight: bold;">&gt;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">&lt;</span>SubTexture <span style="color: #004993;">name</span>=<span style="color: #990000;">&quot;nw1&quot;</span> <span style="color: #004993;">x</span>=<span style="color: #990000;">&quot;1&quot;</span> <span style="color: #004993;">y</span>=<span style="color: #990000;">&quot;1&quot;</span> <span style="color: #004993;">width</span>=<span style="color: #990000;">&quot;42&quot;</span> <span style="color: #004993;">height</span>=<span style="color: #990000;">&quot;50&quot;</span><span style="color: #000066; font-weight: bold;">/&gt;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">&lt;</span>SubTexture <span style="color: #004993;">name</span>=<span style="color: #990000;">&quot;nw2&quot;</span> <span style="color: #004993;">x</span>=<span style="color: #990000;">&quot;44&quot;</span> <span style="color: #004993;">y</span>=<span style="color: #990000;">&quot;1&quot;</span> <span style="color: #004993;">width</span>=<span style="color: #990000;">&quot;42&quot;</span> <span style="color: #004993;">height</span>=<span style="color: #990000;">&quot;50&quot;</span><span style="color: #000066; font-weight: bold;">/&gt;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">&lt;</span>SubTexture <span style="color: #004993;">name</span>=<span style="color: #990000;">&quot;nw3&quot;</span> <span style="color: #004993;">x</span>=<span style="color: #990000;">&quot;87&quot;</span> <span style="color: #004993;">y</span>=<span style="color: #990000;">&quot;1&quot;</span> <span style="color: #004993;">width</span>=<span style="color: #990000;">&quot;42&quot;</span> <span style="color: #004993;">height</span>=<span style="color: #990000;">&quot;50&quot;</span><span style="color: #000066; font-weight: bold;">/&gt;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">&lt;</span>SubTexture <span style="color: #004993;">name</span>=<span style="color: #990000;">&quot;nw4&quot;</span> <span style="color: #004993;">x</span>=<span style="color: #990000;">&quot;130&quot;</span> <span style="color: #004993;">y</span>=<span style="color: #990000;">&quot;1&quot;</span> <span style="color: #004993;">width</span>=<span style="color: #990000;">&quot;42&quot;</span> <span style="color: #004993;">height</span>=<span style="color: #990000;">&quot;50&quot;</span><span style="color: #000066; font-weight: bold;">/&gt;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">&lt;</span>SubTexture <span style="color: #004993;">name</span>=<span style="color: #990000;">&quot;nw5&quot;</span> <span style="color: #004993;">x</span>=<span style="color: #990000;">&quot;173&quot;</span> <span style="color: #004993;">y</span>=<span style="color: #990000;">&quot;1&quot;</span> <span style="color: #004993;">width</span>=<span style="color: #990000;">&quot;42&quot;</span> <span style="color: #004993;">height</span>=<span style="color: #990000;">&quot;50&quot;</span><span style="color: #000066; font-weight: bold;">/&gt;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">&lt;</span>SubTexture <span style="color: #004993;">name</span>=<span style="color: #990000;">&quot;nw6&quot;</span> <span style="color: #004993;">x</span>=<span style="color: #990000;">&quot;1&quot;</span> <span style="color: #004993;">y</span>=<span style="color: #990000;">&quot;52&quot;</span> <span style="color: #004993;">width</span>=<span style="color: #990000;">&quot;42&quot;</span> <span style="color: #004993;">height</span>=<span style="color: #990000;">&quot;50&quot;</span><span style="color: #000066; font-weight: bold;">/&gt;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">&lt;</span>SubTexture <span style="color: #004993;">name</span>=<span style="color: #990000;">&quot;stood&quot;</span> <span style="color: #004993;">x</span>=<span style="color: #990000;">&quot;44&quot;</span> <span style="color: #004993;">y</span>=<span style="color: #990000;">&quot;52&quot;</span> <span style="color: #004993;">width</span>=<span style="color: #990000;">&quot;42&quot;</span> <span style="color: #004993;">height</span>=<span style="color: #990000;">&quot;50&quot;</span><span style="color: #000066; font-weight: bold;">/&gt;</span><br />
<span style="color: #000066; font-weight: bold;">&lt;/</span>TextureAtlas<span style="color: #000066; font-weight: bold;">&gt;</span></div></div>
<p>Имя спрайта, позиция и размеры.</p>
<p>Теперь у нас есть атлас и мы можем начать создавать MovieClip.<br />
Создадим нод с мувиклипом:</p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6699cc; font-weight: bold;">var</span> node<span style="color: #000066; font-weight: bold;">:</span>GNode = GNodeFactory<span style="color: #000066; font-weight: bold;">.</span>createNode<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #6699cc; font-weight: bold;">var</span> movieclip<span style="color: #000066; font-weight: bold;">:</span>GMovieClip = node<span style="color: #000066; font-weight: bold;">.</span>addComponent<span style="color: #000000;">&#40;</span>GMovieClip<span style="color: #000000;">&#41;</span> <span style="color: #0033ff; font-weight: bold;">as</span> GMovieClip<span style="color: #000066; font-weight: bold;">;</span></div></div>
<p>Далее определим какие же спрайты попадут в нашу анимацию. Для этого создаем массив и наполним его названиями нужных спрайтов (в нужной нам последовательности):</p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6699cc; font-weight: bold;">var</span> animation<span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=array%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:array.html"><span style="color: #004993;">Array</span></a> = <span style="color: #000000;">&#91;</span><span style="color: #990000;">&quot;nw1&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;nw2&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;nw3&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;nw2&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;nw1&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;stood&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;nw4&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;nw5&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;nw6&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;nw5&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;nw4&quot;</span><span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">;</span></div></div>
<p>После зададим все параметры нашему мувиклипу &#8211; текстурный атлас, кадры анимации и фреймрейт для анимации:</p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">movieclip<span style="color: #000066; font-weight: bold;">.</span>setTextureAtlas<span style="color: #000000;">&#40;</span>textureAtlas<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
movieclip<span style="color: #000066; font-weight: bold;">.</span>frames = animation<span style="color: #000066; font-weight: bold;">;</span><br />
movieclip<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">frameRate</span> = <span style="color: #000000; font-weight:bold;">30</span><span style="color: #000066; font-weight: bold;">;</span></div></div>
<p>Положим нод нашего мувика в корневой нод:</p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">rootNode<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>node<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></div></div>
<p>Ну и на конец добавим камеру в наш rootNode, чтобы все это видно было <img src='http://flashnotes.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Не забывайте добавлять камеру на сцену, так как по-умолчанию камеры нет и ничего не видно.</p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6699cc; font-weight: bold;">var</span> cameraNode<span style="color: #000066; font-weight: bold;">:</span>GNode = GNodeFactory<span style="color: #000066; font-weight: bold;">.</span>createNode<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;camera&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
cameraNode<span style="color: #000066; font-weight: bold;">.</span>addComponent<span style="color: #000000;">&#40;</span>GCamera<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
rootNode<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>cameraNode<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></div></div>
<p>Один мувиклип может воспроизводить анимации из других атласов. Напр., у вас есть несколько атласов и один мувик должен воспроизводить в конкретное время какую либо анимацию из этих атласов. Для этого ему достаточно в нужный момент установить нужный атлас и анимацию.</p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">movieclip<span style="color: #000066; font-weight: bold;">.</span>setTextureAtlas<span style="color: #000000;">&#40;</span>textureAtlas2<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
movieclip<span style="color: #000066; font-weight: bold;">.</span>frames = animation2<span style="color: #000066; font-weight: bold;">;</span></div></div>
<p>Также дополнительно вы можете использовать сабтекстуры с вашего атласа. Это дает повышение производительности путем группирования нескольких спрайтов, которые будут связаны с одной GPU текстурой.</p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6699cc; font-weight: bold;">var</span> node<span style="color: #000066; font-weight: bold;">:</span>GNode = GNodeFactory<span style="color: #000066; font-weight: bold;">.</span>createNode<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #6699cc; font-weight: bold;">var</span> sprite<span style="color: #000066; font-weight: bold;">:</span>GSprite = node<span style="color: #000066; font-weight: bold;">.</span>addComponent<span style="color: #000000;">&#40;</span>GSprite<span style="color: #000000;">&#41;</span> <span style="color: #0033ff; font-weight: bold;">as</span> GSprite<span style="color: #000066; font-weight: bold;">;</span><br />
sprite<span style="color: #000066; font-weight: bold;">.</span>setTexture<span style="color: #000000;">&#40;</span>textureAtlas<span style="color: #000066; font-weight: bold;">.</span>getTexture<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;stood&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></div></div>
<p>Также, текстурный атлас можно создать программно с MovieClip, Bitmap, Font и т.д.</p>
<p>На этом пока все.<br />
Исходники <a href="http://flashnotes.ru/downloads/2012/04/GenomeMovieClip.zip" target="_blank">тут</a>. Результат:<br />

<object width="800" height="600">
<param name="movie" value="http://flashnotes.ru/downloads/2012/04/GenomeMovieClip.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="direct"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#eeeeee"></param>
<param name="allowScriptAccess" value="always"></param>
<embed type="application/x-shockwave-flash" width="800" height="600" src="http://flashnotes.ru/downloads/2012/04/GenomeMovieClip.swf" quality="high" bgcolor="#eeeeee" wmode="direct" menu="false" ></embed>
</object>
</p>
]]></content:encoded>
			<wfw:commentRss>http://flashnotes.ru/2012/04/11/genome2d-movieclip/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Genome2D &#8211; Начало (update)</title>
		<link>http://flashnotes.ru/2012/04/10/genome2d-nachalo-update/</link>
		<comments>http://flashnotes.ru/2012/04/10/genome2d-nachalo-update/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 21:12:43 +0000</pubDate>
		<dc:creator>VirtualMaestro</dc:creator>
				<category><![CDATA[Genome2D]]></category>
		<category><![CDATA[Stage3D]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[Genome2d]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[начало]]></category>
		<category><![CDATA[уроки]]></category>

		<guid isPermaLink="false">http://flashnotes.ru/?p=1233</guid>
		<description><![CDATA[Это небольшая модификация предыдущей статьи. Не хотелось трогать старую, потому решил написать небольшой апдейт. Дело в том, что с выходом новой версии Genome2d 0.9.0 некоторые вещи поменялись &#8211; структура пакетов, новые классы и методы &#8211; весь этот рефакторинг направлен на лучшую структуризацию и логичность движка, а также для будущей простоты изменения. Итак, напишу тот же [...]]]></description>
			<content:encoded><![CDATA[<p>Это небольшая модификация <a href="http://flashnotes.ru/2012/03/15/genome2d-nachalo/" title="Genome2D – Начало" target="_blank">предыдущей статьи</a>. Не хотелось трогать старую, потому решил написать небольшой апдейт.<br />
Дело в том, что с выходом новой версии <strong><a href="http://flashnotes.ru/2012/04/02/reliz-genome2d-0-9-0/" title="Релиз Genome2d 0.9.0" target="_blank">Genome2d 0.9.0</a></strong> некоторые вещи поменялись &#8211; структура пакетов, новые классы и методы &#8211; весь этот рефакторинг направлен на лучшую структуризацию и логичность движка, а также для будущей простоты изменения.<br />
Итак, напишу тот же код, что и в предыдущей статье только под новою версию двига.<br />
<span id="more-1233"></span><br />
Инициализация. Так как нету больше софтверного рендерера, нету больше необходимости в контексте рендерера <strong>G2DStage3DContext</strong>.<br />
Вторым параметром надо передать экземпляр класса <strong>GContextConfig</strong> (обратите внимание на префиксы в классах &#8211; теперь они G, а не G2D).</p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Genome2D<span style="color: #000066; font-weight: bold;">.</span>getInstance<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span>onInitialized<span style="color: #000066; font-weight: bold;">.</span>addOnce<span style="color: #000000;">&#40;</span>onGenome2DInitialized<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
Genome2D<span style="color: #000066; font-weight: bold;">.</span>getInstance<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">init</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">stage</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #0033ff; font-weight: bold;">new</span> GContextConfig<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></div></div>
<p>Переходим к хендлеру <strong>onGenome2DInitialized</strong><br />
Текстуры следует создавать через новый класс-фабрику <strong>GTextureFactory</strong></p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">bitmapData</span><span style="color: #000066; font-weight: bold;">:</span><a href="http://www.google.com/search?q=bitmapdata%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:bitmapdata.html"><span style="color: #004993;">BitmapData</span></a> = <span style="color: #0033ff; font-weight: bold;">new</span> <a href="http://www.google.com/search?q=bitmapdata%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:bitmapdata.html"><span style="color: #004993;">BitmapData</span></a><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">32</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">32</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #0033ff; font-weight: bold;">false</span><span style="color: #000066; font-weight: bold;">,</span> 0xFF0000<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #6699cc; font-weight: bold;">var</span> texture<span style="color: #000066; font-weight: bold;">:</span>GTexture = GTextureFactory<span style="color: #000066; font-weight: bold;">.</span>createFromBitmapData<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;textureId&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #004993;">bitmapData</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></div></div>
<p>Также создавать ноды следует тоже через новый класс-фабрику <strong>GNodeFactory</strong></p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6699cc; font-weight: bold;">var</span> container<span style="color: #000066; font-weight: bold;">:</span>GNode = GNodeFactory<span style="color: #000066; font-weight: bold;">.</span>createNode<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;container&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
Genome2D<span style="color: #000066; font-weight: bold;">.</span>getInstance<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">root</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>container<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
<br />
<span style="color: #6699cc; font-weight: bold;">var</span> cameraNode<span style="color: #000066; font-weight: bold;">:</span>GNode = GNodeFactory<span style="color: #000066; font-weight: bold;">.</span>createNode<span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;camera&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
cameraNode<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">transform</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span> = <span style="color: #004993;">stage</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">stageWidth</span> <span style="color: #000066; font-weight: bold;">/</span> <span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">;</span><br />
cameraNode<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">transform</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span> = <span style="color: #004993;">stage</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">stageHeight</span> <span style="color: #000066; font-weight: bold;">/</span> <span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">;</span><br />
cameraNode<span style="color: #000066; font-weight: bold;">.</span>addComponent<span style="color: #000000;">&#40;</span>GCamera<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
container<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>cameraNode<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></div></div>
<p>Нету больше фабричного метода в классе компонента &#8211; <strong>G2DComponent.createWithNode</strong><br />
Если надо создать нод с компонентом следует использовать фабрику <strong>GNodeFactory.createNodeWithComponent</strong></p>
<div class="codecolorer-container actionscript3 blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6699cc; font-weight: bold;">var</span> sprite<span style="color: #000066; font-weight: bold;">:</span>GSprite = GNodeFactory<span style="color: #000066; font-weight: bold;">.</span>createNodeWithComponent<span style="color: #000000;">&#40;</span>GSprite<span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;sprite&quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #0033ff; font-weight: bold;">as</span> GSprite<span style="color: #000066; font-weight: bold;">;</span><br />
sprite<span style="color: #000066; font-weight: bold;">.</span>setTexture<span style="color: #000000;">&#40;</span>texture<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
sprite<span style="color: #000066; font-weight: bold;">.</span>node<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">transform</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span> = <span style="color: #004993;">stage</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">stageWidth</span> <span style="color: #000066; font-weight: bold;">/</span> <span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">;</span><br />
sprite<span style="color: #000066; font-weight: bold;">.</span>node<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">transform</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span> = <span style="color: #004993;">stage</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">stageHeight</span> <span style="color: #000066; font-weight: bold;">/</span> <span style="color: #000000; font-weight:bold;">2</span><span style="color: #000066; font-weight: bold;">;</span><br />
container<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>sprite<span style="color: #000066; font-weight: bold;">.</span>node<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></div></div>
<p>Краткое обновление сделано. Следующие статьи будут естественно на новый лад с новой версией движка.</p>
]]></content:encoded>
			<wfw:commentRss>http://flashnotes.ru/2012/04/10/genome2d-nachalo-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Релиз Genome2d 0.9.0</title>
		<link>http://flashnotes.ru/2012/04/02/reliz-genome2d-0-9-0/</link>
		<comments>http://flashnotes.ru/2012/04/02/reliz-genome2d-0-9-0/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 11:28:51 +0000</pubDate>
		<dc:creator>VirtualMaestro</dc:creator>
				<category><![CDATA[Genome2D]]></category>
		<category><![CDATA[Stage3D]]></category>
		<category><![CDATA[Новости]]></category>
		<category><![CDATA[Genome2d]]></category>
		<category><![CDATA[Stage3d]]></category>
		<category><![CDATA[Релиз Genome2d 0.9.0]]></category>

		<guid isPermaLink="false">http://flashnotes.ru/?p=1215</guid>
		<description><![CDATA[Вчера вышла новая версия Genome2d 0.9.0 Этот релиз не несет в себе новых фич, но был направлен на рефакторинг и чистку проекта. Данная версия будет последней перед версией 1.0 (которая по видимому будет содержать много новых фич) и является крайне важным этапом. Давайте посмотрим чего изменилось. Только один рендер движок. Автор вырезал полностью софтверный движок, [...]]]></description>
			<content:encoded><![CDATA[<p>Вчера вышла новая версия <strong><a href="http://blog.flash-core.com/?p=984" target="_blank">Genome2d 0.9.0</a></strong><br />
Этот релиз не несет в себе новых фич, но был направлен на рефакторинг и чистку проекта. Данная версия будет последней перед версией 1.0 (которая по видимому будет содержать много новых фич) и является крайне важным этапом.<br />
Давайте посмотрим чего изменилось.<br />
<span id="more-1215"></span><br />
<strong>Только один рендер движок</strong>.<br />
Автор вырезал полностью софтверный движок, оставив только <strong>Stage3d</strong>. В софтверном двиге больше нет нужды, так как <strong>AIR 3.2</strong> поддерживает аппаратное ускорение на мобильных платформах, а <strong>Adobe </strong>держит фокус на поддержку старых версий драйверов, это значит что на старых компах можно будет запускать флешки с поддержкой Stage3d.<br />
Избавившись от софтвера автор сможет сфокусироваться на фичах, которые просят люди, не думая о том, что это еще надо будет реализовать для софт. двига (а это занимает много времени). Вместе с этим библиотека будет меньше в весе.</p>
<p><strong>Связанные списки везде</strong>.<br />
Хотя и в прошлых версиях тоже использовались связные списки но вместе с ними использовались массивы, которые помогали реализовать дополнительную функциональность. Но также они замедляли исполнение. Например, массивы помогали реализовать такие методы как <strong>getChildAt/setChildIndex</strong>, но они очень медленны и несли накладные расходы в других местах двига. В конце-концов автор решил вырезать массивы и с ними эти методы, в которых, как он утверждает, не видит нужды.<br />
Например, для итерации теперь можно работать напрямую с списком, что намного быстрее чем использовать <strong>getChildAt</strong>, а для сценариев где нужно было использовать <strong>setChildIndex </strong>почти всегда можно использовать <strong>swapChildren</strong>.<br />
Для таких вещей как сортировка, автор реализовал свою сортировку заточенную для использования с списками и потому она очень быстрая, быстрее чем родной флешевой сорт. Сортировать &#8220;детей&#8221; можно по их <strong>x,y</strong> или через свою кастомную используя свойство <strong>userData</strong>. </p>
<p><strong>Че за фигня с этими именами?</strong><br />
В новой версии первым делом можно заметить изменения в именах пакетов и классов. Теперь все находится в новом рутовом пакете <strong>com.genome2d</strong> вместо старого <strong>com.flash-core</strong>. Также, для большего удобства, был изменен префикс к классам &#8211; вместо прежнего <strong>G2D</strong> теперь только <strong>G</strong> (это пожелание пользователей).</p>
<p><strong>За фабриками будущее.</strong><br />
Следующим шагом рефакторинга был вынос создающих методов в отдельные классов. Новые классы-фабрики будут содержать эти методы. Такой подход более структурирован и логичен.<br />
Существуют три фабрики: <strong>GTextureFactory</strong>, <strong>GTextureAtlasFactory </strong>и <strong>GNodeFactory</strong>. Теперь, рекомендуется использовать фабрики вместо того, чтобы создавать объекты напрямую (через конструктор).<br />
Например, вы можете создать напрямую <strong>new GNode()</strong>, но лучше это делать так <strong>GNodeFactory.createNode()</strong>, так как в будущем могут быть интегрированы дополнительные зависимости и чтобы избежать головной боли и кучи рефакторинга используйте фабрики.</p>
<p><strong><a href="www.genome2d.com" target="_blank">www.genome2d.com</a></strong><br />
Автор зарегистрировал домен специально для проекта Genome2D, пока еще он редиректит на его блог но в ближайшем будущем поставит его на ноги.<br />
Также, автор просит помощи в создании примеров, документации, туториалов, так как все сам не выгребает, да и кодить больше любит.</p>
<p><strong>Open source</strong><br />
Начиная с версии 1.0 Genome2D будет в опен сорс.  </p>
<p><strong>Ссылки</strong><br />
<a href="https://github.com/pshtif/Genome2D" target="_blank">Новые примеры</a><br />
<a href="https://github.com/pshtif/Genome2D/downloads" target="_blank">Последняя версия библиотеки</a><br />
<a href="http://www.genome2d.com/docs/" target="_blank">ASDoc документация</a></p>
<p>Ну что ж, пора поковырять его <img src='http://flashnotes.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://flashnotes.ru/2012/04/02/reliz-genome2d-0-9-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Релиз FlashPlayer 11.2 и AIR 3.2</title>
		<link>http://flashnotes.ru/2012/03/28/reliz-flashplayer-11-2-i-air-3-2/</link>
		<comments>http://flashnotes.ru/2012/03/28/reliz-flashplayer-11-2-i-air-3-2/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 07:19:13 +0000</pubDate>
		<dc:creator>VirtualMaestro</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[AIR 3.2]]></category>
		<category><![CDATA[FlashPlayer 11.2]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[релиз]]></category>

		<guid isPermaLink="false">http://flashnotes.ru/?p=1211</guid>
		<description><![CDATA[Да, это случилось сегодня, с чем всех поздравляю Скачать FlashPlayer 11.2 Скачать AIR 3.2 О новшествах писали много (может и я чего чиркану). Одно из новшеств, это тихая установка FP. Когда впервые устанавливается FP, показывается вот такое диалоговое окно, где рекомендуемым параметром установлен пункт &#8220;Устанавливать обновления автоматически&#8221;]]></description>
			<content:encoded><![CDATA[<p>Да, это случилось сегодня, с чем всех поздравляю <img src='http://flashnotes.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<a href="http://get.adobe.com/ru/flashplayer/" target="_blank">Скачать FlashPlayer 11.2</a><br />
<a href="http://get.adobe.com/ru/air/" target="_blank">Скачать AIR 3.2</a></p>
<p>О новшествах писали много (может и я чего чиркану). Одно из новшеств, это тихая установка FP. Когда впервые устанавливается FP, показывается вот такое диалоговое окно, где рекомендуемым параметром установлен пункт &#8220;Устанавливать обновления автоматически&#8221;<br />
<img src="http://blogs.adobe.com/asset/files/2012/03/FP_Updater_Installer_UpdateOptions.jpg" alt="Диалоговое окно во время первой установки FlashPlayer" /> </p>
]]></content:encoded>
			<wfw:commentRss>http://flashnotes.ru/2012/03/28/reliz-flashplayer-11-2-i-air-3-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.792 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-05-18 12:05:46 -->

