<?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>Пастила. &#187; Flash, Actionscript 3</title>
	<atom:link href="http://pastila.org/category/flash/feed/" rel="self" type="application/rss+xml" />
	<link>http://pastila.org</link>
	<description>Блог flash-разработчика</description>
	<lastBuildDate>Mon, 10 Oct 2011 05:16:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Вопрос: приложения для Facebook</title>
		<link>http://pastila.org/flash/vopros-prilozheniya-facebook/</link>
		<comments>http://pastila.org/flash/vopros-prilozheniya-facebook/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 21:23:36 +0000</pubDate>
		<dc:creator>Илья Маланьин</dc:creator>
				<category><![CDATA[Flash, Actionscript 3]]></category>
		<category><![CDATA[Записки]]></category>
		<category><![CDATA[Социальное]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[graph]]></category>

		<guid isPermaLink="false">http://pastila.org/?p=281</guid>
		<description><![CDATA[Назрела статья о работе с фейсбуком, так как материала на русском достаточно мало, понятного и того меньше. Статья будет описывать всё от создания приложения в девелоперском разделе, до подключения с помощью PHP и работы с GraphAPI посредством AS3. Ну и суть вопроса: кому-нибудь эта статья вообще нужна?]]></description>
			<content:encoded><![CDATA[<p>Назрела статья о работе с фейсбуком, так как материала на русском достаточно мало, понятного и того меньше.<br />
Статья будет описывать всё от создания приложения в девелоперском разделе, до подключения с помощью PHP и работы с GraphAPI посредством AS3.</p>
<p>Ну и суть вопроса: кому-нибудь эта статья вообще нужна?</p>
]]></content:encoded>
			<wfw:commentRss>http://pastila.org/flash/vopros-prilozheniya-facebook/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Релиз CASALib 1.4.0</title>
		<link>http://pastila.org/flash/zapiski/reliz-casalib/</link>
		<comments>http://pastila.org/flash/zapiski/reliz-casalib/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 19:26:29 +0000</pubDate>
		<dc:creator>Илья Маланьин</dc:creator>
				<category><![CDATA[Записки]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[casalib]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[lib]]></category>

		<guid isPermaLink="false">http://pastila.org/?p=267</guid>
		<description><![CDATA[Запись для «слоупоков» вроде меня. 17 июня вышел «свежий» релиз замечательной библиотеки под названием CASALib, что содержит достаточное количество, необходимых для работы разработчиков, классов, которые существенно облегчают разработку. Из основных особенностей хочу выделить: Класс ListenerManager, что позволяет быстро и просто добавить к любому классу наследуемому от EventDispatcher возможности удаления всех слушателей, удаления слушателей для определенно [...]]]></description>
			<content:encoded><![CDATA[<p><em>Запись для «слоупоков» вроде меня.</em><br />
17 июня вышел «свежий» релиз замечательной библиотеки под названием CASALib, что содержит достаточное количество, необходимых для работы разработчиков, классов, которые существенно облегчают разработку.</p>
<p>Из основных особенностей хочу выделить: </p>
<ol>
<li>Класс <a href="http://as3.casalib.org/releases/1.4.0/docs/org_casalib_events_ListenerManager.html" title="ListenerManager" target="_blank">ListenerManager</a>, что позволяет быстро и просто добавить к любому классу наследуемому от EventDispatcher возможности удаления всех слушателей, удаления слушателей для определенно типа события, и т.д. </li>
<li>Удобные классы загрузки любых данных</li>
<li>Готовые шаблоны для создания классов с деструкторами</li>
<li>Классы дисплей-объектов (CasaSprite, CasaMovieClip), в функционал которых вложены функции удаления всех детей, из уничтожения (+ чудесная плюшка &#8212; рекурсивное удаление и деструкция)</li>
</ol>
<p>В целом крайне полезная библиотека, на её основе собственно базируется всё, что я пишу.</p>
]]></content:encoded>
			<wfw:commentRss>http://pastila.org/flash/zapiski/reliz-casalib/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Получение данных из XML (E4X)</title>
		<link>http://pastila.org/flash/xml-e4x/</link>
		<comments>http://pastila.org/flash/xml-e4x/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 00:24:43 +0000</pubDate>
		<dc:creator>Илья Маланьин</dc:creator>
				<category><![CDATA[Flash, Actionscript 3]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[e4x]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://pastila.org/?p=254</guid>
		<description><![CDATA[Как показывает практика, далеко не все знают об использовании оператора «..» и фильтрации при работе с XML. Для этого существуют очень удобные средства E4X (ECMAScript for XML) Оператор «..» Данный оператор позволяет получать данные потомков дерева XML вне зависимости от глубины их нахождения. На примере: У нас есть категоризованный список продуктов: &#60;food&#62; &#60;vegetables&#62; &#60;item caloric=&#34;2&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>Как показывает практика, далеко не все знают об использовании оператора «..» и фильтрации при работе с XML. Для этого существуют очень удобные средства <a href="http://ru.wikipedia.org/wiki/ECMAScript_for_XML" title="ECMAScript для XML" target="_blank">E4X </a>(ECMAScript for XML)</p>
<h3>Оператор «..»</h3>
<p>Данный оператор позволяет получать данные потомков дерева XML вне зависимости от глубины их нахождения.</p>
<p>На примере:<br />
У нас есть категоризованный список продуктов:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;food<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
 <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;vegetables<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item</span> <span style="color: #000066;">caloric</span>=<span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">isDietic</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>tomato<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item</span> <span style="color: #000066;">caloric</span>=<span style="color: #ff0000;">&quot;40&quot;</span> <span style="color: #000066;">isDietic</span>=<span style="color: #ff0000;">&quot;false&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>potato<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
 <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/vegetables<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
 <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;fruits<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item</span> <span style="color: #000066;">caloric</span>=<span style="color: #ff0000;">&quot;4&quot;</span> <span style="color: #000066;">isDietic</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>orange<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item</span> <span style="color: #000066;">caloric</span>=<span style="color: #ff0000;">&quot;26&quot;</span> <span style="color: #000066;">isDietic</span>=<span style="color: #ff0000;">&quot;false&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>apple<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
 <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/fruits<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/food<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Нам необходимо получить полностью все продукты вне зависимости от их категории:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #6699cc; font-weight: bold;">var</span> foodItems <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">XMLList</span> = xml<span style="color: #000066; font-weight: bold;">..</span>item<span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #0033ff; font-weight: bold;">for</span> <span style="color: #0033ff; font-weight: bold;">each</span> <span style="color: #000000;">&#40;</span><span style="color: #6699cc; font-weight: bold;">var</span> item <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">XML</span> <span style="color: #0033ff; font-weight: bold;">in</span> foodItems<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
  <span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>item<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">toString</span><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>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>На выходе получим:</p>
<pre>
tomato
potato
orange
apple
</pre>
<p><span id="more-254"></span>В сочетании с @ можно получить так же атрибуты:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #6699cc; font-weight: bold;">var</span> foodItems <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">XMLList</span> = xml<span style="color: #000066; font-weight: bold;">..</span>item<span style="color: #000066; font-weight: bold;">.</span>@caloric<span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

<p>Такая запись выдаст абсолютно все атрибуты caloric, вне зависимости от того в каком элементе дерева они находятся</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #6699cc; font-weight: bold;">var</span> foodItems <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">XMLList</span> = xml<span style="color: #000066; font-weight: bold;">..</span>@caloric<span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

<p>Ну и для полной ясности.<br />
Данная запись выдаст только фрукты:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #6699cc; font-weight: bold;">var</span> foodItems <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">XMLList</span> = xml<span style="color: #000066; font-weight: bold;">.</span>fruits<span style="color: #000066; font-weight: bold;">..</span>item<span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

<p>В случае если осталось недопонимание, вы всегда можете ознакомиться с <a href="http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/operators.html#descendant_accessor" title="Оператор доступа к потомкам" target="_blank">официальной документацией</a>.</p>
<h3>Фильтрация данных XML.</h3>
<p>Фильтрация позволяет получить только те данные которые необходимы, а не все подряд. Осуществляется она при помощи указания данных в скобках.</p>
<p>Имеется список фильмов, которые мы можем купить в разных интернет магазинах:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;films<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item</span> <span style="color: #000066;">price</span>=<span style="color: #ff0000;">&quot;99.9&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Batman and Robbin vs Darkwing Duck<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;shop<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>ozon.ru<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/shop<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item</span> <span style="color: #000066;">price</span>=<span style="color: #ff0000;">&quot;110.99&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Желтый чемоданчик<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;shop<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>ozon.ru<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/shop<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item</span> <span style="color: #000066;">price</span>=<span style="color: #ff0000;">&quot;150&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Валентайн Понтифик. Экранизация.<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;shop<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>amazon.com<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/shop<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/films<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Нам необходимо получить фильмы которые продаются только в магазине ozon.ru.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #6699cc; font-weight: bold;">var</span> items <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">XMLList</span> = xml<span style="color: #000066; font-weight: bold;">..</span>item<span style="color: #000066; font-weight: bold;">.</span><span style="color: #000000;">&#40;</span>shop == <span style="color: #990000;">&quot;ozon.ru&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #0033ff; font-weight: bold;">for</span> <span style="color: #0033ff; font-weight: bold;">each</span> <span style="color: #000000;">&#40;</span><span style="color: #6699cc; font-weight: bold;">var</span> item <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">XML</span> <span style="color: #0033ff; font-weight: bold;">in</span> items<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
  <span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>item<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">toString</span><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>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>На выходе получим:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item</span> <span style="color: #000066;">price</span>=<span style="color: #ff0000;">&quot;99.9&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Batman <span style="color: #ddbb00;">&amp;amp;</span> Robbin vs Darkwing Duck<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;shop<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>ozon.ru<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/shop<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item</span> <span style="color: #000066;">price</span>=<span style="color: #ff0000;">&quot;110.99&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Желтый чемоданчик<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;shop<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>ozon.ru<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/shop<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Фильмы, которые стоят меньше ста рублей:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #6699cc; font-weight: bold;">var</span> items <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">XMLList</span> = xml<span style="color: #000066; font-weight: bold;">..</span>item<span style="color: #000066; font-weight: bold;">.</span><span style="color: #000000;">&#40;</span>@price <span style="color: #000066; font-weight: bold;">&lt;</span> <span style="color: #000000; font-weight:bold;">100</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

<p>Фильмы, которые стоят больше ста рублей и продаются только в amazon.com:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #6699cc; font-weight: bold;">var</span> items <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">XMLList</span> = xml<span style="color: #000066; font-weight: bold;">..</span>item<span style="color: #000066; font-weight: bold;">.</span><span style="color: #000000;">&#40;</span>@price <span style="color: #000066; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight:bold;">100</span> <span style="color: #000066; font-weight: bold;">&amp;&amp;</span> shop == <span style="color: #990000;">&quot;amazon.com&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

<p>В случае если осталось недопонимание, вы всегда можете ознакомиться с <a href="http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/operators.html#parentheses_(XML)" target="_blank">официальной документацией</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://pastila.org/flash/xml-e4x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Сброс letterSpacing при изменении текста</title>
		<link>http://pastila.org/flash/sbros-letterspacing-izmenenii/</link>
		<comments>http://pastila.org/flash/sbros-letterspacing-izmenenii/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 14:18:48 +0000</pubDate>
		<dc:creator>Илья Маланьин</dc:creator>
				<category><![CDATA[Flash, Actionscript 3]]></category>

		<guid isPermaLink="false">http://pastila.org/?p=233</guid>
		<description><![CDATA[Столкнулся с багом когда при изменении текста у текстового поля, сбрасывается установленный letterSpacing. Лечение: var textFormat : TextFormat = textField.getTextFormat&#40;&#41;; textField.text = &#34;New text&#34;; textField.setTextFormat&#40;textFormat&#41;; Не особо красивое решение, но и баг не красавец.]]></description>
			<content:encoded><![CDATA[<p>Столкнулся с багом когда при изменении текста у текстового поля, сбрасывается установленный letterSpacing.<br />
Лечение:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #6699cc; font-weight: bold;">var</span> textFormat <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">TextFormat</span> = textField<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">getTextFormat</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
textField<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">text</span> = <span style="color: #990000;">&quot;New text&quot;</span><span style="color: #000066; font-weight: bold;">;</span>
textField<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">setTextFormat</span><span style="color: #000000;">&#40;</span>textFormat<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

<p>Не особо красивое решение, но и баг не красавец.</p>
]]></content:encoded>
			<wfw:commentRss>http://pastila.org/flash/sbros-letterspacing-izmenenii/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Быстрое внедрение шрифтов [Embed]</title>
		<link>http://pastila.org/flash/bystroe-vnedrenie-shriftov-embed/</link>
		<comments>http://pastila.org/flash/bystroe-vnedrenie-shriftov-embed/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 09:28:20 +0000</pubDate>
		<dc:creator>Илья Маланьин</dc:creator>
				<category><![CDATA[Flash, Actionscript 3]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[embed]]></category>
		<category><![CDATA[fonts]]></category>
		<category><![CDATA[внедрение]]></category>
		<category><![CDATA[встраивание]]></category>
		<category><![CDATA[шрифты]]></category>

		<guid isPermaLink="false">http://pastila.org/?p=226</guid>
		<description><![CDATA[Уже ни раз писалось о встраивании шрифтов, поэтому я не буду описывать весь процесс а покажу лишь простой и удобный прием на примере кода. package assets &#123; import flash.display.Sprite; import flash.system.Security; import flash.text.Font; import flash.utils.describeType; &#160; public class FontsAsset extends Sprite &#123; &#91;Embed&#40;source=&#34;../../../res/fonts/MyriadPro-Semibold.otf&#34;, mimeType=&#34;application/x-font-truetype&#34;, fontName=&#34;MyriadSemibold&#34;, unicodeRange=&#34;U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+02C6,U+02DC,U+2013-U+2014,U+2018-U+201A,U+201C-U+201E,U+2020-U+2022,U+2026,U+2030,U+2039-U+203A,U+20AC,U+2122,U+0401,U+0410-U+044F&#34;, embedAsCFF=&#34;false&#34;&#41;&#93; // Uppercase [A..Z] ; Lowercase [a..z] ; Numerals [...]]]></description>
			<content:encoded><![CDATA[<p>Уже ни раз писалось о встраивании шрифтов, поэтому я не буду описывать весь процесс а покажу лишь простой и удобный прием на примере кода.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span> assets <span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Sprite</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.system</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Security</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.text</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Font</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.utils</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">describeType</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
	<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> FontsAsset <span style="color: #0033ff; font-weight: bold;">extends</span> <span style="color: #004993;">Sprite</span> <span style="color: #000000;">&#123;</span>
		<span style="color: #000000;">&#91;</span>Embed<span style="color: #000000;">&#40;</span><span style="color: #004993;">source</span>=<span style="color: #990000;">&quot;../../../res/fonts/MyriadPro-Semibold.otf&quot;</span><span style="color: #000066; font-weight: bold;">,</span> mimeType=<span style="color: #990000;">&quot;application/x-font-truetype&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #004993;">fontName</span>=<span style="color: #990000;">&quot;MyriadSemibold&quot;</span><span style="color: #000066; font-weight: bold;">,</span> unicodeRange=<span style="color: #990000;">&quot;U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+02C6,U+02DC,U+2013-U+2014,U+2018-U+201A,U+201C-U+201E,U+2020-U+2022,U+2026,U+2030,U+2039-U+203A,U+20AC,U+2122,U+0401,U+0410-U+044F&quot;</span><span style="color: #000066; font-weight: bold;">,</span> embedAsCFF=<span style="color: #990000;">&quot;false&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
		<span style="color: #009900; font-style: italic;">// Uppercase [A..Z] ; Lowercase [a..z] ; Numerals [0..9] ; Punctuation [!@#%...] ; Basic Latin ; chars=&quot;АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя&quot;</span>
		<span style="color: #0033ff; font-weight: bold;">public</span> static <span style="color: #6699cc; font-weight: bold;">var</span> MyriadSemibold <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">Class</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
		<span style="color: #000000;">&#91;</span>Embed<span style="color: #000000;">&#40;</span><span style="color: #004993;">source</span>=<span style="color: #990000;">&quot;../../../res/fonts/MyriadPro-Regular.otf&quot;</span><span style="color: #000066; font-weight: bold;">,</span> mimeType=<span style="color: #990000;">&quot;application/x-font-truetype&quot;</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #004993;">fontName</span>=<span style="color: #990000;">&quot;MyriadRegular&quot;</span><span style="color: #000066; font-weight: bold;">,</span> unicodeRange=<span style="color: #990000;">&quot;U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E,U+02C6,U+02DC,U+2013-U+2014,U+2018-U+201A,U+201C-U+201E,U+2020-U+2022,U+2026,U+2030,U+2039-U+203A,U+20AC,U+2122,U+0401,U+0410-U+044F&quot;</span><span style="color: #000066; font-weight: bold;">,</span> embedAsCFF=<span style="color: #990000;">&quot;false&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
		<span style="color: #009900; font-style: italic;">// Uppercase [A..Z] ; Lowercase [a..z] ; Numerals [0..9] ; Punctuation [!@#%...] ; Basic Latin ; chars=&quot;АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя&quot;</span>
		<span style="color: #0033ff; font-weight: bold;">public</span> static <span style="color: #6699cc; font-weight: bold;">var</span> MyriadRegular <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">Class</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
		<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> FontsAsset<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
			<span style="color: #004993;">Security</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">allowDomain</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;*&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #6699cc; font-weight: bold;">var</span> xml <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">XML</span> = <span style="color: #004993;">describeType</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #0033ff; font-weight: bold;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #6699cc; font-weight: bold;">var</span> i <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">uint</span> = <span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">;</span> i <span style="color: #000066; font-weight: bold;">&lt;</span> <span style="color: #004993;">XMLList</span><span style="color: #000000;">&#40;</span>xml<span style="color: #000000;">&#91;</span><span style="color: #990000;">&quot;variable&quot;</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">length</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span> i<span style="color: #000066; font-weight: bold;">++</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
				<span style="color: #004993;">Font</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">registerFont</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000000;">&#91;</span><span style="color: #004993;">XMLList</span><span style="color: #000000;">&#40;</span>xml<span style="color: #000000;">&#91;</span><span style="color: #990000;">&quot;variable&quot;</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span><span style="color: #000066; font-weight: bold;">.</span>@<span style="color: #004993;">name</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
			<span style="color: #000000;">&#125;</span>
		<span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Собственно встроить шрифтов можно сколько угодно, в коде ничего менять не придется кроме добавления строк описывающих само встраивание.<br />
Чтобы шрифты отображались в самом приложении достаточно будет в конструкторе создать новый экземпляр FontsAsset.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">new</span> FontsAsset<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

<blockquote><p>
Конечно не стоит забывать о использовании textField.embedFonts.
</p></blockquote>
<p>Так же вы можете скомпилировать этот asset как отдельный swf и свободно подгружать его при необходимости.</p>
<p><em>Метод позаимствован (а потом модифицирован) у Font Library Creator&#8217;a среды разработки <a href="http://www.fdt.powerflasher.com/">Powerflasher FDT</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://pastila.org/flash/bystroe-vnedrenie-shriftov-embed/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Утечки памяти и их устранение</title>
		<link>http://pastila.org/flash/udalenie-obektov-utechki-pamyati-vo-flash/</link>
		<comments>http://pastila.org/flash/udalenie-obektov-utechki-pamyati-vo-flash/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 21:39:05 +0000</pubDate>
		<dc:creator>Илья Маланьин</dc:creator>
				<category><![CDATA[Flash, Actionscript 3]]></category>
		<category><![CDATA[Статьи]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[leaks]]></category>
		<category><![CDATA[leaks as3]]></category>
		<category><![CDATA[memory leaks]]></category>
		<category><![CDATA[profiler]]></category>
		<category><![CDATA[оптимизация]]></category>
		<category><![CDATA[память]]></category>
		<category><![CDATA[утечки]]></category>

		<guid isPermaLink="false">http://pastila.org/?p=104</guid>
		<description><![CDATA[Удаление объектов. Утечки памяти во Flash.]]></description>
			<content:encoded><![CDATA[<p><strong>Запись была переработана и обновлена.</strong></p>
<h2>1. Введение</h2>
<p>Многие начинающие флэшеры, как и я в свое время, не имеют представления об освобождении памяти от использованных, либо недооценивают данный раздел программирования.<br />
В ходе разработки приложений объекты, которые были использованы и более не являются необходимыми в большинстве случаев остаются в памяти, если не позаботиться об их уничтожении. Оставаясь в памяти «мусор» может вызвать проблемы с производительностью, что для конечного пользователя не окажется радостным событием.<br />
В данной статье раскрываются методы очистки памяти от «мусора».</p>
<p><span id="more-104"></span></p>
<h2>2. Откуда берется мусор, и как образуются утечки памяти (memory leaks)?</h2>
<p>Во as3 вы никогда не работаете напрямую с объектом (классы, массивы и т.д.), каждый раз вы обращаетесь по ссылке к данному классу.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #6699cc; font-weight: bold;">var</span> instanceLink <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">Sprite</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Sprite</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

<p>В данном примере мы создаем новый экземпляр класса Sprite, и instanceLink есть ничто иное как ссылка указывающая на данный экземпляр класса.</p>
<h3>2.1 Мертвые объекты</h3>
<p>AS3 не предоставляет «нативного» (native) метода для уничтожения текущего экземпляра класса, то есть деструктора. Вместо тотального контроля памяти программистом, как это реализовано например в C++, используется механизм под названием <em>сборщик мусора</em> (Garbage Collector), который очищает память от &#171;мертвых объектов&#187; при каждой итерации. Мертвым объектом считается, тот на который не существует ни одной ссылки.</p>
<p>Таким образом, если мы напишем:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #6699cc; font-weight: bold;">var</span> instanceLink <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">Sprite</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Sprite</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #6699cc; font-weight: bold;">var</span> doubleLink <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">Sprite</span> = instanceLink<span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
instanceLink = <span style="color: #0033ff; font-weight: bold;">null</span><span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

<p>&#8230;то экземпляр класса Sprite не будет удален из памяти, потому что doubleLink все еще указывает на него.</p>
<h3>2.2 Список отображения</h3>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;">secondSprite<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>instanceLink<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
instanceLink = <span style="color: #0033ff; font-weight: bold;">null</span><span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

<p>В список отображения (display list) secondSprite заносится экземпляр спрайта, даже после очищения ссылки на экземпляр, он никуда не денется и из памяти удален не будет, так как ссылка на него находится в display list&#8217;e, следовательно чтобы удалить объект из памяти необходимо убрать его из списка отображения secondSprite.</p>
<blockquote><p>Стоит заметить, что в в случае если secondSprite будет удален со сцены и ссылки на него будут уничтожены, то сборщик мусора рано или поздно соберет и его и instanceLink, даже если instanceLink будет находиться в списке отображения secondSprite. Это произойдет потому, что secondSprite и instanceLink по сути являются мертвыми объектами так как ссылка на instanceLink содержится только в мертвом объекте, а следовательно она недействительна.</p>
<p><em>Но стоит избегать этой логики при программировании, так как garbage collector&#8217;у понадобится больше одной итерации для того, чтобы определить, что instanceLink готов к уничтожению, следовательно на операцию очистки потратится больше ресурсов и процессорного времени.</em></p></blockquote>
<h3>2.3 Слушатели событий</h3>
<p>Все та же проблема ожидает вас при подписке на прослушивание событий объектов (addEventListener). Если вы подписались на событие и не удалите слушателя перед очисткой ссылок на объект, то после очистки объект оных объект так и останется в памяти и будет функционировать, так как имеется ссылка на него в виде подписки.</p>
<p>Избежать этого можно двумя путями:</p>
<ol>
<li>Использовать weakReference (мягкую ссылку) при подписке

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;">object<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">type</span><span style="color: #000066; font-weight: bold;">,</span> listener<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> <span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

<p>Мягкая ссылка означает, что в случае если сборщик мусора решит проверить можно ли удалить object, то данная подписка на событие не воспрепятствует его удалению.</li>
<li>Самостоятельно удалив слушателя:

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;">object<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">removeEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">type</span><span style="color: #000066; font-weight: bold;">,</span>listener<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

</li>
</ol>
<blockquote><p><em>Стоит избегать использования мягких ссылок там, где это не является поистине необходимым, так как сборщик мусора может уничтожить объект до того, как он выполнит свои обязанности.</em></p></blockquote>
<blockquote><p>Необходимо отметить что для экранных объектов не обязательно удалять прослушивание событий от мышки, при удалении ссылок, так как garbage collector самостоятельно &#171;обрежет&#187; эту связь, но опять же это отнимет больше ресурсов, нежели при ручной отписке от событий.</p></blockquote>
<h3>2.4 Мягкие ссылки</h3>
<p>Помимо мягких ссылок в подписке на события, можно использовать их и в Dictionary, для этого при создании экземпляра Dictionary параметр weakKeys равным true.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #6699cc; font-weight: bold;">var</span> dict <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">Dictionary</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Dictionary</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

<p>Это означает, что ключи (!) dictionary будут использоваться в качестве мягких ссылок, а не жестких. То есть:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;">dict<span style="color: #000000;">&#91;</span>instanceLink<span style="color: #000000;">&#93;</span> = <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span></pre></div></div>

<p>Не заставит сборщик мусора отказаться от идеи удалить объект instanceLink из памяти, если других ссылок на него более не существует.</p>
<h2>3. Итог</h2>
<p>После использования объектов, для того чтобы они были удалены из памяти необходимо: </p>
<ol>
<li>Удалить всех слушателей объекта</li>
<li>В случае если это экранный объект, удалить его из списка отображения</li>
<li>Уничтожить все ссылки на него</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://pastila.org/flash/udalenie-obektov-utechki-pamyati-vo-flash/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Официальное руководство по оптимизации приложений</title>
		<link>http://pastila.org/flash/oficialnoe-rukovodstvo-po-optimizacii-prilozhenij/</link>
		<comments>http://pastila.org/flash/oficialnoe-rukovodstvo-po-optimizacii-prilozhenij/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 16:54:30 +0000</pubDate>
		<dc:creator>Илья Маланьин</dc:creator>
				<category><![CDATA[Flash, Actionscript 3]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[bitmapdata]]></category>
		<category><![CDATA[документация]]></category>
		<category><![CDATA[оптимизация]]></category>
		<category><![CDATA[память]]></category>

		<guid isPermaLink="false">http://pastila.org/?p=184</guid>
		<description><![CDATA[Adobe любезно предоставили русскоязычное руководство по оптимизации приложений, в котором описано большое количество приемов оптимизации, включая новейшие фичи плеера. Полезно будет почитать не только новичку, но и профессионалу.]]></description>
			<content:encoded><![CDATA[<p>Adobe любезно предоставили <a href="http://help.adobe.com/ru_RU/as3/mobile/flashplatform_optimizing_content.pdf">русскоязычное руководство по оптимизации приложений</a>, в котором описано большое количество приемов оптимизации, включая новейшие фичи плеера.</p>
<p>Полезно будет почитать не только новичку, но и профессионалу.</p>
]]></content:encoded>
			<wfw:commentRss>http://pastila.org/flash/oficialnoe-rukovodstvo-po-optimizacii-prilozhenij/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pixel Bender 3D</title>
		<link>http://pastila.org/flash/pixel-bender-3d/</link>
		<comments>http://pastila.org/flash/pixel-bender-3d/#comments</comments>
		<pubDate>Wed, 27 Oct 2010 04:10:07 +0000</pubDate>
		<dc:creator>Илья Маланьин</dc:creator>
				<category><![CDATA[Flash, Actionscript 3]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[pixel bender]]></category>

		<guid isPermaLink="false">http://pastila.org/?p=152</guid>
		<description><![CDATA[Сегодня Kevin Goldsmith (глава команды разрабатывающей: Pixel Bender, технологии обработки изображений и работы с GPU для продуктов Adobe)  в <a href="http://blogs.adobe.com/kevin-goldsmith/">своем блоге</a> опубликовал запись о том, что они готовят новый продукт «Pixel Bender 3D» для нового 3D API «Molehill» флэш-плеера.]]></description>
			<content:encoded><![CDATA[<p>Сегодня Kevin Goldsmith (глава команды разрабатывающей: Pixel Bender, технологии обработки изображений и работы с GPU для продуктов Adobe)  в <a href="http://blogs.adobe.com/kevin-goldsmith/">своем блоге</a> опубликовал запись о том, что они готовят новый продукт «Pixel Bender 3D» для нового 3D API «Molehill» флэш-плеера.<br />
<span id="more-152"></span><br />
«Новая версия Pixel Bender включает Actionscript API, который позволит вам комбинировать материалы Pixel Bender  и вершинные ядра (kernel) прямо во время работы, а также содержит много приемов для оптимизации, и вспомогательных API, упрощающих использование шейдерного API «Molehill».</p>
<p>Вообще, я чувствую что новая версия выйдет крайне славной, и технология Flash переродится, и облагородится. Большое количество предпосылок в последнее время заставляет так думать.<br />
Тут вам и Flex Hero SDK, и Molehill и Pixel Bender для 3D и т.д. и т.п., я крайне надеюсь, что то огромное количество багов, что было во flash player&#8217;e начиная 9ой версии и которые так и не пофиксили, не перенесут в <del datetime="2010-10-27T07:40:04+00:00">одиннадцатую</del> новую версию плеера и продукт выйдет высококлассным.</p>
]]></content:encoded>
			<wfw:commentRss>http://pastila.org/flash/pixel-bender-3d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3D во Flash</title>
		<link>http://pastila.org/flash/3d-vo-flash/</link>
		<comments>http://pastila.org/flash/3d-vo-flash/#comments</comments>
		<pubDate>Mon, 25 Oct 2010 23:28:05 +0000</pubDate>
		<dc:creator>Илья Маланьин</dc:creator>
				<category><![CDATA[Flash, Actionscript 3]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[molehill]]></category>

		<guid isPermaLink="false">http://pastila.org/?p=146</guid>
		<description><![CDATA[На Adobe MAX 2010 был продемонстрирован ролик, где был показан результат использования технологии «Molehill» &#8212; дословно «низкоуровневого, использующего GPU (графический процессор), 3D API для платформы Adobe Flash». Ролик представляет собой видео с «игры» «MAX Racer», мы видим и динамическое освещение, и отражения, и какую-никакую физику, и вся эта красота рендерится на 60 FPS не загружая [...]]]></description>
			<content:encoded><![CDATA[<p>На Adobe MAX 2010 был продемонстрирован ролик, где был показан результат использования технологии «Molehill» &#8212; дословно <em>«низкоуровневого, использующего GPU (графический процессор), 3D API для платформы Adobe Flash»</em>. Ролик представляет собой видео с «игры» «MAX Racer», мы видим и динамическое освещение, и отражения, и какую-никакую физику, и вся эта красота рендерится на 60 FPS не загружая процессор совершенно. Стоит отметить, что приложение написано с использованием нового движка Alternativa 3D 8 (пока еще разрабатываемого), ориентированного на новую версию Flash player&#8217;a (Alternativa Platform сотрудничает с Adobe).</p>
<p>Технология работает на Linux и Mac через OpenGL, а в Windows используя DirectX, так, что это будет бомба, которая оставит далеко позади WebGL и Html5.<br />
Но «бомба» взорвется лишь в следующем году, и до этого момента нам остается лишь читать блог адоба и нервно пересматривать ролики.</p>
<p>Кстати вот здесь <a href="http://labs.adobe.com/technologies/flash/molehill/">первый</a> а здесь и <a href="http://blog.alternativaplatform.com/ru/2010/10/25/adobe-predstavila-budushhee-flash-posredstvom-prilozheniya-ot-alternativaplatform/">второй</a></p>
<p>Пугают только размеры будущих возможных игр.</p>
]]></content:encoded>
			<wfw:commentRss>http://pastila.org/flash/3d-vo-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FlexPMD</title>
		<link>http://pastila.org/flash/flexpmd/</link>
		<comments>http://pastila.org/flash/flexpmd/#comments</comments>
		<pubDate>Sun, 24 Oct 2010 06:06:41 +0000</pubDate>
		<dc:creator>Илья Маланьин</dc:creator>
				<category><![CDATA[Flash, Actionscript 3]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[quality]]></category>
		<category><![CDATA[качество кода]]></category>

		<guid isPermaLink="false">http://pastila.org/?p=144</guid>
		<description><![CDATA[Буквально вчера наткнулся на очень полезный инструмент от Adobe — FlexPMD. Данный инструмент позволяет отслеживать качества кода, на выходе получаем список слабых мест в коде. В основном это: * Неиспользуемый код (функции, переменные, константы, и т.д.) * Неэффективный код (злоупотребление динамическими фильтрами, тяжелые конструкторы и т.д.) * Неоправданно сложный код (вложенные циклы, большое кол-во условий, [...]]]></description>
			<content:encoded><![CDATA[<p>Буквально вчера наткнулся на очень полезный инструмент от Adobe — <a href="http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD">FlexPMD</a>.<br />
Данный инструмент позволяет отслеживать качества кода, на выходе получаем список слабых мест в коде. В основном это:</p>
<p>    * Неиспользуемый код (функции, переменные, константы, и т.д.)<br />
    * Неэффективный код (злоупотребление динамическими фильтрами, тяжелые конструкторы и т.д.)<br />
    * Неоправданно сложный код (вложенные циклы, большое кол-во условий, и т.д.)<br />
    * Слишком длинный код (для классов, методов и т.д.)<br />
    * Некорректное использование жизненного цикла Flex-компонентов (например commitProperties)</p>
<p>Инструмент можно прикрутить как угодно, к ant&#8217;у, maven&#8217;у, как плагин для эклипса, можно работать из командной строки.<br />
Выбор удобств за вами.<br />
<span id="more-144"></span></p>
<p>Проект пошел от quality-контроллера для кода java под названием PMD. Забавно то, что аббревиатура PMD не имеет четкого толкования, <a href="http://pmd.sourceforge.net/meaning.html">из мануала</a>:</p>
<p>«What does it mean?</p>
<p>We&#8217;ve been trying to find the meaning of the letters PMD &#8212; because frankly, we don&#8217;t really know. We just think the letters sound good together.<br />
However, in the spirit of the Computing Industry, we have come up with several &#171;backronyms&#187; to explain it. </p>
<p>Pretty Much Done<br />
Project Mess Detector<br />
Project Monitoring Directives<br />
Project Meets Deadline<br />
Programming Mistake Detector<br />
Pounds Mistakes Dead<br />
PMD Meaning Discovery (recursion, hooray!)<br />
Programs of Mass Destruction<br />
Programming Meticulous coDe»</p>
]]></content:encoded>
			<wfw:commentRss>http://pastila.org/flash/flexpmd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

