<?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>FlashImp</title>
	<atom:link href="http://flashimp.ru/feed" rel="self" type="application/rss+xml" />
	<link>http://flashimp.ru</link>
	<description>Flash Implosion new generation</description>
	<lastBuildDate>Fri, 02 Mar 2012 07:30:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>GPU on mobile</title>
		<link>http://flashimp.ru/148</link>
		<comments>http://flashimp.ru/148#comments</comments>
		<pubDate>Fri, 02 Mar 2012 07:28:43 +0000</pubDate>
		<dc:creator>Александр Козловский</dc:creator>
				<category><![CDATA[Notes]]></category>
		<category><![CDATA[GPU]]></category>

		<guid isPermaLink="false">http://flashimp.ru/?p=148</guid>
		<description><![CDATA[In application descriptor: &#60;renderMode&#62;direct&#60;/renderMode&#62; Enable Z-buffer: &#60;initialWindow&#62; &#60;depthAndStencil&#62;true&#60;/depthAndStencil&#62; &#60;/initialWindow&#62;]]></description>
			<content:encoded><![CDATA[<pre>In application descriptor:
&lt;renderMode&gt;direct&lt;/renderMode&gt;

Enable Z-buffer:
&lt;initialWindow&gt;
   &lt;depthAndStencil&gt;true&lt;/depthAndStencil&gt;
&lt;/initialWindow&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://flashimp.ru/148/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Структуры данных: MagicObject</title>
		<link>http://flashimp.ru/149</link>
		<comments>http://flashimp.ru/149#comments</comments>
		<pubDate>Thu, 29 Dec 2011 16:06:32 +0000</pubDate>
		<dc:creator>Александр Козловский</dc:creator>
				<category><![CDATA[Накодил]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Collections]]></category>
		<category><![CDATA[E4X]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://flashimp.ru/?p=149</guid>
		<description><![CDATA[source:

<em>Название MagicObject, имхо, явно лучше E4XMap и подобных названий.</em>

<strong>Intro.</strong>

В играх я частенько использую машины состояний и сложные структуры данных (коллекции, карты..) , сильно упрощающие разработку. Что актуально, кстати, не только для игр, но для риа вообще.

Сегодня хочу поделиться простенькой реализацией e4x в Объекте, где основной фишкой является расширение нативного e4x, который не позволяет callDescendants.

Например вот так:
<pre lang="actionscript3">object..method(args)</pre>
<strong>Зачем это нужно?</strong>
Допустим, дано:
- StateMachine и сложное дерево состояний;
- Анимация игрового объекта завязана на состояния, точнее, на смены состояний;
- Есть VO (ValueObjects) и есть рендеры, которые визуализируют изменения в VO;
- Рендеры имеют сложную иерархию, уровни вложенности.

<strong>Как происходит</strong> изменение состояния и отображение изменений при использовании MagicObject:
- Изменяем состояние в StateMachine;
- При удачном изменении состояния обновляем данные в VO;
- Вызываем обновление во всех рендерах внутри игрового уровня:
<pre lang="actionscript3">// magic = MagicObject instance
// magic[keyA] = Renderer instance
// magic[keyB] = Renderer instance
// magic[keyB][keyC] = Renderer instance - sub-renderer
// magic.subMagic.[keyD] = Renderer instance - sub-renderer
(magic..update)();
// или так:
(magic..update)(magic.changes);</pre>
Метод update() вызовется последовательно у всех объектов, имеющих этот метод.

<strong>Поясню как работает:</strong>
magic..update достаёт со всех уровней вложенности значения всех полей с именем update. Если там есть экземпляры класса Function, то всё это хозяйство оборачивается noname-фукцией, а ей задаются все свойства массива (для итеративного пробега) и пары, типа ключ-значение, где значение - каждое найденое поле с именем update.
<strong>На примере:</strong>
<pre lang="actionscript3">const result:Object = magic..update;
// можно вызвать:
result(); // or result(args);
// можно получить определённый элемент:
for(var key:String in magic)
	trace('in', magic, ':', key, '=', magic[key]),
	// или вызвать:
	magic[key] is Function &#038;& magic[key]();</pre>
<strong>History tracking:</strong>
<pre lang="actionscript3">const magic:MagicObject = new MagicObject();
magic.x = 0;
magic.x = 1;
 
// вернёт все изменения на первом уровней вложенности:
trace(magic.changes); // :Vector.<MagicNode>
 
// вернёт все изменения на всех уровнях вложенности:
trace(magic..changes); // [:Vector.<MagicNode>,..] или Vector.<MagicNode> если элемент один.
 
// чистим историю изменений:
magic.clearChanges();
// or magic..clearChanges();</pre>
<strong>Уведомления об изменениях:</strong>
Создали экземпляр:
<pre lang="actionscript3"> const magic:MagicObject = new MagicObject();</pre>
Дали ссылку на колбэк:
<pre lang="actionscript3">magic.notificationCallback = function():void
	{
		trace('new changes:', magic.changes);
	}</pre>
или так:
<pre lang="actionscript3">magic.notificationCallback = function(changes:Vector.<MagicNode>):void
	{
		trace('new changes:', changes);
	}</pre>
сдели какие-то изменения:
<pre lang="actionscript3"> magic.x = 0;
magic.x = 1;</pre>
.. и мы сразу получаем эти изменения в колбэк.

<a title="on BitBucket" href="https://bitbucket.org/Aleksandr_Kozlovskij/data-utils/src/fe542ffd764c/src/ru/kozlovskij/utils/data/MagicObject.as">Собственно сам класс лежит здесь.</a>

Вот <strong>пример расширения на деле:</strong>
<pre lang="actionscript3">package ru.kozlovskij.game.objects.data
{
	import ru.kozlovskij.utils.data.MagicNode;
	import ru.kozlovskij.utils.data.MagicObject;
 
	/**
	 * @author Aleksandr Kozlovskij (created: Dec 27, 2011)
	 */
	public dynamic class GameObjectData extends MagicObject
	{
		protected static const PRIVATE_ACCESSOR_PREFIX:String = '_';
 
		private var _notificationCallback:Function;
 
		//------------ constructor ------------//
 
		public function GameObjectData()
		{
			super();
			super.notificationCallback = __notificationCallback;
		}
 
		//------------ initialize ------------//
 
		//--------------- ctrl ---------------//
 
		//------------ get / set -------------//
 
		public function get selected():Boolean
		{
			return this._selected;
		}
 
		public function set selected(value:Boolean):void
		{
			this._selected = value;
		}
 
 
		override public function get notificationCallback():Function
		{
			return _notificationCallback;
		}
 
		override public function set notificationCallback(value:Function):void
		{
			_notificationCallback = value;
		}
 
		//------- handlers / callbacks -------//
 
		protected function __notificationCallback(changes:Vector.<MagicNode>):void
		{
			const ns:Namespace = nodeResetNS;
			for each(var node:MagicNode in changes)
			{
				const property:String = node.public::property;
				if(property.charAt() == PRIVATE_ACCESSOR_PREFIX)
					node.ns::property = property.substr(1);
			}
 
			// finally:
			_notificationCallback &#038;& (_notificationCallback.length ? _notificationCallback(changes) : _notificationCallback());
		}
	}
}</pre>
Получилось несколько сумбурно и возможно что-то забыл упомянуть.
Комментарии, идеи и замечания очень приветствуются. Надеюсь, кому-то это пригодится.]]></description>
			<content:encoded><![CDATA[<p>source:</p>
<p><em>Название MagicObject, имхо, явно лучше E4XMap и подобных названий.</em></p>
<p><strong>Intro.</strong></p>
<p>В играх я частенько использую машины состояний и сложные структуры данных (коллекции, карты..) , сильно упрощающие разработку. Что актуально, кстати, не только для игр, но для риа вообще.</p>
<p>Сегодня хочу поделиться простенькой реализацией e4x в Объекте, где основной фишкой является расширение нативного e4x, который не позволяет callDescendants.</p>
<p>Например вот так:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;">object..<span style="color: #004993;">method</span><span style="color: #000000;">&#40;</span>args<span style="color: #000000;">&#41;</span></pre></div></div>

<p><strong>Зачем это нужно?</strong><br />
Допустим, дано:<br />
- StateMachine и сложное дерево состояний;<br />
- Анимация игрового объекта завязана на состояния, точнее, на смены состояний;<br />
- Есть VO (ValueObjects) и есть рендеры, которые визуализируют изменения в VO;<br />
- Рендеры имеют сложную иерархию, уровни вложенности.</p>
<p><strong>Как происходит</strong> изменение состояния и отображение изменений при использовании MagicObject:<br />
- Изменяем состояние в StateMachine;<br />
- При удачном изменении состояния обновляем данные в VO;<br />
- Вызываем обновление во всех рендерах внутри игрового уровня:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #009900;">// magic = MagicObject instance</span>
<span style="color: #009900;">// magic[keyA] = Renderer instance</span>
<span style="color: #009900;">// magic[keyB] = Renderer instance</span>
<span style="color: #009900;">// magic[keyB][keyC] = Renderer instance - sub-renderer</span>
<span style="color: #009900;">// magic.subMagic.[keyD] = Renderer instance - sub-renderer</span>
<span style="color: #000000;">&#40;</span>magic..update<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #009900;">// или так:</span>
<span style="color: #000000;">&#40;</span>magic..update<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#40;</span>magic.changes<span style="color: #000000;">&#41;</span>;</pre></div></div>

<p>Метод update() вызовется последовательно у всех объектов, имеющих этот метод.</p>
<p><strong>Поясню как работает:</strong><br />
magic..update достаёт со всех уровней вложенности значения всех полей с именем update. Если там есть экземпляры класса Function, то всё это хозяйство оборачивается noname-фукцией, а ей задаются все свойства массива (для итеративного пробега) и пары, типа ключ-значение, где значение - каждое найденое поле с именем update.<br />
<strong>На примере:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;">const result<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Object</span> = magic..update;
<span style="color: #009900;">// можно вызвать:</span>
result<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>; <span style="color: #009900;">// or result(args);</span>
<span style="color: #009900;">// можно получить определённый элемент:</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> key<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">String</span> <span style="color: #0033ff; font-weight: bold;">in</span> magic<span style="color: #000000;">&#41;</span>
	<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">'in'</span>, magic, <span style="color: #990000;">':'</span>, key, <span style="color: #990000;">'='</span>, magic<span style="color: #000000;">&#91;</span>key<span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>,
	<span style="color: #009900;">// или вызвать:</span>
	magic<span style="color: #000000;">&#91;</span>key<span style="color: #000000;">&#93;</span> <span style="color: #0033ff; font-weight: bold;">is</span> <span style="color: #004993;">Function</span> <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> magic<span style="color: #000000;">&#91;</span>key<span style="color: #000000;">&#93;</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</pre></div></div>

<p><strong>History tracking:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;">const magic<span style="color: #000000; font-weight: bold;">:</span>MagicObject = <span style="color: #0033ff; font-weight: bold;">new</span> MagicObject<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
magic.<span style="color: #004993;">x</span> = <span style="color: #000000; font-weight:bold;">0</span>;
magic.<span style="color: #004993;">x</span> = <span style="color: #000000; font-weight:bold;">1</span>;
&nbsp;
<span style="color: #009900;">// вернёт все изменения на первом уровней вложенности:</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>magic.changes<span style="color: #000000;">&#41;</span>; <span style="color: #009900;">// :Vector.&lt;MagicNode&gt;</span>
&nbsp;
<span style="color: #009900;">// вернёт все изменения на всех уровнях вложенности:</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span>magic..changes<span style="color: #000000;">&#41;</span>; <span style="color: #009900;">// [:Vector.&lt;MagicNode&gt;,..] или Vector.&lt;MagicNode&gt; если элемент один.</span>
&nbsp;
<span style="color: #009900;">// чистим историю изменений:</span>
magic.clearChanges<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #009900;">// or magic..clearChanges();</span></pre></div></div>

<p><strong>Уведомления об изменениях:</strong><br />
Создали экземпляр:</p>

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

<p>Дали ссылку на колбэк:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;">magic.notificationCallback = <span style="color: #339966; font-weight: bold;">function</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
	<span style="color: #000000;">&#123;</span>
		<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">'new changes:'</span>, magic.changes<span style="color: #000000;">&#41;</span>;
	<span style="color: #000000;">&#125;</span></pre></div></div>

<p>или так:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;">magic.notificationCallback = <span style="color: #339966; font-weight: bold;">function</span><span style="color: #000000;">&#40;</span>changes<span style="color: #000000; font-weight: bold;">:</span>Vector.<span style="color: #000000; font-weight: bold;">&lt;</span>MagicNode<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
	<span style="color: #000000;">&#123;</span>
		<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">'new changes:'</span>, changes<span style="color: #000000;">&#41;</span>;
	<span style="color: #000000;">&#125;</span></pre></div></div>

<p>сдели какие-то изменения:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"> magic.<span style="color: #004993;">x</span> = <span style="color: #000000; font-weight:bold;">0</span>;
magic.<span style="color: #004993;">x</span> = <span style="color: #000000; font-weight:bold;">1</span>;</pre></div></div>

<p>.. и мы сразу получаем эти изменения в колбэк.</p>
<p><a title="on BitBucket" href="https://bitbucket.org/Aleksandr_Kozlovskij/data-utils/src/fe542ffd764c/src/ru/kozlovskij/utils/data/MagicObject.as">Собственно сам класс лежит здесь.</a></p>
<p>Вот <strong>пример расширения на деле:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span> ru.kozlovskij.game.objects.<span style="color: #004993;">data</span>
<span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">import</span> ru.kozlovskij.utils.<span style="color: #004993;">data</span>.MagicNode;
	<span style="color: #0033ff; font-weight: bold;">import</span> ru.kozlovskij.utils.<span style="color: #004993;">data</span>.MagicObject;
&nbsp;
	<span style="color: #3f5fbf;">/**
	 * @author Aleksandr Kozlovskij (created: Dec 27, 2011)
	 */</span>
	<span style="color: #0033ff; font-weight: bold;">public</span> dynamic <span style="color: #9900cc; font-weight: bold;">class</span> GameObjectData extends MagicObject
	<span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">protected</span> static const PRIVATE_ACCESSOR_PREFIX<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">String</span> = <span style="color: #990000;">'_'</span>;
&nbsp;
		<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> _notificationCallback<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Function</span>;
&nbsp;
		<span style="color: #009900;">//------------ constructor ------------//</span>
&nbsp;
		<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> GameObjectData<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
		<span style="color: #000000;">&#123;</span>
			<span style="color: #0033ff; font-weight: bold;">super</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
			<span style="color: #0033ff; font-weight: bold;">super</span>.notificationCallback = __notificationCallback;
		<span style="color: #000000;">&#125;</span>
&nbsp;
		<span style="color: #009900;">//------------ initialize ------------//</span>
&nbsp;
		<span style="color: #009900;">//--------------- ctrl ---------------//</span>
&nbsp;
		<span style="color: #009900;">//------------ get / set -------------//</span>
&nbsp;
		<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">get</span> selected<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Boolean</span>
		<span style="color: #000000;">&#123;</span>
			<span style="color: #0033ff; font-weight: bold;">return</span> <span style="color: #0033ff; font-weight: bold;">this</span>._selected;
		<span style="color: #000000;">&#125;</span>
&nbsp;
		<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">set</span> selected<span style="color: #000000;">&#40;</span><span style="color: #004993;">value</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Boolean</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
		<span style="color: #000000;">&#123;</span>
			<span style="color: #0033ff; font-weight: bold;">this</span>._selected = <span style="color: #004993;">value</span>;
		<span style="color: #000000;">&#125;</span>
&nbsp;
&nbsp;
		override <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">get</span> notificationCallback<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Function</span>
		<span style="color: #000000;">&#123;</span>
			<span style="color: #0033ff; font-weight: bold;">return</span> _notificationCallback;
		<span style="color: #000000;">&#125;</span>
&nbsp;
		override <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">set</span> notificationCallback<span style="color: #000000;">&#40;</span><span style="color: #004993;">value</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Function</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
		<span style="color: #000000;">&#123;</span>
			_notificationCallback = <span style="color: #004993;">value</span>;
		<span style="color: #000000;">&#125;</span>
&nbsp;
		<span style="color: #009900;">//------- handlers / callbacks -------//</span>
&nbsp;
		<span style="color: #0033ff; font-weight: bold;">protected</span> <span style="color: #339966; font-weight: bold;">function</span> __notificationCallback<span style="color: #000000;">&#40;</span>changes<span style="color: #000000; font-weight: bold;">:</span>Vector.<span style="color: #000000; font-weight: bold;">&lt;</span>MagicNode<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
		<span style="color: #000000;">&#123;</span>
			const ns<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Namespace</span> = nodeResetNS;
			<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> node<span style="color: #000000; font-weight: bold;">:</span>MagicNode <span style="color: #0033ff; font-weight: bold;">in</span> changes<span style="color: #000000;">&#41;</span>
			<span style="color: #000000;">&#123;</span>
				const property<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">String</span> = node.<span style="color: #0033ff; font-weight: bold;">public</span><span style="color: #000000; font-weight: bold;">::</span>property;
				<span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span>property.<span style="color: #004993;">charAt</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> == PRIVATE_ACCESSOR_PREFIX<span style="color: #000000;">&#41;</span>
					node.ns<span style="color: #000000; font-weight: bold;">::</span>property = property.<span style="color: #004993;">substr</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">1</span><span style="color: #000000;">&#41;</span>;
			<span style="color: #000000;">&#125;</span>
&nbsp;
			<span style="color: #009900;">// finally:</span>
			_notificationCallback <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #000000;">&#40;</span>_notificationCallback.<span style="color: #004993;">length</span> <span style="color: #000000; font-weight: bold;">?</span> _notificationCallback<span style="color: #000000;">&#40;</span>changes<span style="color: #000000;">&#41;</span> <span style="color: #000000; font-weight: bold;">:</span> _notificationCallback<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>;
		<span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Получилось несколько сумбурно и возможно что-то забыл упомянуть.<br />
Комментарии, идеи и замечания очень приветствуются. Надеюсь, кому-то это пригодится.</p>
]]></content:encoded>
			<wfw:commentRss>http://flashimp.ru/149/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex 4.6 Released</title>
		<link>http://flashimp.ru/134</link>
		<comments>http://flashimp.ru/134#comments</comments>
		<pubDate>Wed, 30 Nov 2011 12:15:22 +0000</pubDate>
		<dc:creator>Александр Козловский</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://flashimp.ru/?p=134</guid>
		<description><![CDATA[Вчера был выпущен в паблик Flex 4.6.0 (Release).]]></description>
			<content:encoded><![CDATA[<p>Вчера был выпущен в паблик <a href="http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4.6">Flex 4.6.0 (Release)</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://flashimp.ru/134/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TexturePacker</title>
		<link>http://flashimp.ru/128</link>
		<comments>http://flashimp.ru/128#comments</comments>
		<pubDate>Mon, 28 Nov 2011 11:38:37 +0000</pubDate>
		<dc:creator>Александр Козловский</dc:creator>
				<category><![CDATA[Новости]]></category>

		<guid isPermaLink="false">http://flashimp.ru/?p=128</guid>
		<description><![CDATA[Открыл для себя прекрасный генератор атласов тектур под OS X. Зовут "TexturePacker". Бесплатен. И Про-версию раздают. Фичи многообещающи.]]></description>
			<content:encoded><![CDATA[<p>Открыл для себя прекрасный генератор атласов тектур под OS X. Зовут "TexturePacker".<br />
Бесплатен. И Про-версию <a href="http://www.texturepacker.com/request-free-license/">раздают</a>.<br />
<a href="http://www.texturepacker.com/features/">Фичи</a> многообещающи.<br />
<img width="100%" src="http://www.texturepacker.com/files/2010/11/planet-cute.tps_.png" alt="screenshot" /></p>
]]></content:encoded>
			<wfw:commentRss>http://flashimp.ru/128/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Определятор статуса, типа и представления экранной клавиатуры.</title>
		<link>http://flashimp.ru/136</link>
		<comments>http://flashimp.ru/136#comments</comments>
		<pubDate>Fri, 28 Oct 2011 13:42:17 +0000</pubDate>
		<dc:creator>Александр Козловский</dc:creator>
				<category><![CDATA[Накодил]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[iOS]]></category>

		<guid isPermaLink="false">http://flashimp.ru/?p=136</guid>
		<description><![CDATA[Приветствую, коллеги. Коротко о главном: В комбинации AIR + iOS + {желание работать с текстом, клавой} есть одна большая проблема - это и есть большая проблема. Нет событий от экранной клавиатуры (за некоторым исключением); Нет раздельных стилей в режиме редактирования; Нет обновлений фокуса и позиции мыши/пальца в режиме редактирования; Ещё много чего нет.. Предлагаю вам, [...]]]></description>
			<content:encoded><![CDATA[<p>Приветствую, коллеги.</p>
<p><strong>Коротко о главном:</strong><br />
В комбинации AIR + iOS + {желание работать с текстом, клавой} есть одна большая проблема - это и есть большая проблема.</p>
<li>Нет событий от экранной клавиатуры (за некоторым исключением);</li>
<li>Нет раздельных стилей в режиме редактирования;</li>
<li>Нет обновлений фокуса и позиции мыши/пальца в режиме редактирования;</li>
<li>Ещё много чего нет..</li>
<p></br><br />
Предлагаю вам, товарищи, мой детектор статуса, типа и представления экранной клавиатуры. Только для iOS. Актуализирован для работы под iOS 5.0.</p>
<p><img src="http://flashimp.ru/wp-content/uploads/6236812533b4792f55446191aebbaf1639ecae72-ipad_kb_split.png" alt="iOS Split Keyboard" width="100%" /><br />
<strong>Он скажет вам:</strong></p>
<li>Тип представления экранной клавиатуры</li>
<li>Экранная клавиатура активирована;</li>
<li>Экранная клавиатура деактивирована;</li>
<li>Сменился relatedObject;</li>
<li>Пользователь изменил тип представления экранной клавиатуры (сдвинул или раздвинул).</li>
<p><strong>Note:</strong><br />
Работает с обычными текстовыми полями и с новеньким StageText.<br />
В симуляторе не работает и не должно, ибо он крив и только лживо симулирует. Только iOS.</p>
<p>Это не ANE. Only pure AS3.</p>
<p>Да, только библиотека <a href="http://kozlovskij.ru/files/projects/iOSSoftKeyboardControllers/iOSSoftKeyboardControllers.swc">SWC</a> + <a href="http://kozlovskij.ru/files/projects/iOSSoftKeyboardControllers/iOSSoftKeyboardControllers.zip">демо-проект</a> + <a href="http://kozlovskij.ru/files/projects/iOSSoftKeyboardControllers/doc.zip">дока</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://flashimp.ru/136/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wallaby prerelease</title>
		<link>http://flashimp.ru/118</link>
		<comments>http://flashimp.ru/118#comments</comments>
		<pubDate>Wed, 09 Mar 2011 08:44:17 +0000</pubDate>
		<dc:creator>Александр Козловский</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[HTML5]]></category>

		<guid isPermaLink="false">http://flashimp.ru/?p=118</guid>
		<description><![CDATA[Вышел обещанный н MAX'e фрэймворк для конвертации Flash-контента в HTML5. На самом деле это AIR-приложение, сыренькое. Конвертируются только .FLA, состряпанные в Flash Pro CS5. Link on labs. Help.]]></description>
			<content:encoded><![CDATA[<p>Вышел обещанный н MAX'e фрэймворк для конвертации Flash-контента в HTML5.</p>
<p>На самом деле это AIR-приложение, сыренькое. Конвертируются только .FLA, состряпанные в Flash Pro CS5.</p>
<p><a href="http://labs.adobe.com/technologies/wallaby/" target="_blank">Link</a> on labs. Help.</p>
]]></content:encoded>
			<wfw:commentRss>http://flashimp.ru/118/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Flash Player 10.3 Beta</title>
		<link>http://flashimp.ru/116</link>
		<comments>http://flashimp.ru/116#comments</comments>
		<pubDate>Wed, 09 Mar 2011 08:40:09 +0000</pubDate>
		<dc:creator>Александр Козловский</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[FP10]]></category>

		<guid isPermaLink="false">http://flashimp.ru/?p=116</guid>
		<description><![CDATA[Flash Player 10.3 for Windows, Mac, and Linux introduces new developer features and enhanced user privacy protection, such as: Media Measurement Acoustic Echo Cancellation Integration with browser privacy control for local storage Native Control Panel Auto-Update Notification for Mac OS Link.]]></description>
			<content:encoded><![CDATA[<p>Flash Player 10.3 for Windows, Mac, and Linux introduces new developer features and enhanced user privacy protection, such as:</p>
<ul>
<li> Media Measurement</li>
<li> Acoustic Echo Cancellation</li>
<li> Integration with browser privacy control for local storage</li>
<li> Native Control Panel</li>
<li> Auto-Update Notification for Mac OS</li>
</ul>
<p><a href="http://labs.adobe.com/technologies/flashplatformruntimes/flashplayer10-3/" target="_blank">Link.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flashimp.ru/116/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple снимает ограничения для Flash &#8211; разработчиков.</title>
		<link>http://flashimp.ru/114</link>
		<comments>http://flashimp.ru/114#comments</comments>
		<pubDate>Thu, 09 Sep 2010 14:11:02 +0000</pubDate>
		<dc:creator>FIZZER</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[iOS]]></category>

		<guid isPermaLink="false">http://flashimp.ru/?p=114</guid>
		<description><![CDATA[Сегодня Apple сообщили, что ограничения в использовании средств разработки под iOS будут сняты. "Мы снимаем все ограничения которые касаются средств разработки используемые для создания приложений под iOS, запрещенным остается только загрузка дополнительного кода созданным приложением. Это предоставит разработчикам больше свободы в выборе инструментов, в которых они нуждаются. В то же время безопасность приложений останется на [...]]]></description>
			<content:encoded><![CDATA[<p>Сегодня Apple сообщили, что ограничения в использовании средств разработки под iOS будут сняты.</p>
<p>"Мы снимаем все ограничения которые касаются средств разработки используемые для создания приложений под iOS, запрещенным остается только загрузка дополнительного кода созданным приложением. Это предоставит разработчикам больше свободы в выборе инструментов, в которых они нуждаются. В то же время безопасность приложений останется на том же уровне."</p>
]]></content:encoded>
			<wfw:commentRss>http://flashimp.ru/114/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;m alive. FlashImp too.</title>
		<link>http://flashimp.ru/112</link>
		<comments>http://flashimp.ru/112#comments</comments>
		<pubDate>Sun, 15 Aug 2010 13:27:21 +0000</pubDate>
		<dc:creator>FIZZER</dc:creator>
				<category><![CDATA[Новости]]></category>

		<guid isPermaLink="false">http://flashimp.ru/?p=112</guid>
		<description><![CDATA[В последнее время я сильно погряз в болоте работы, сроки сдачи которой давно проебал. Собственно, в болоте этом я сижу все время, но обычно не больше чем по колено, а тут накрывает с головой. Тем не менее, я отчаянно барахтаюсь в попытке выбраться из отвратительной трясины лени и безответственности. В скором времени начну выкладывать некоторые [...]]]></description>
			<content:encoded><![CDATA[<p>В последнее время я сильно погряз в болоте работы, сроки сдачи которой давно проебал. Собственно, в болоте этом я сижу все время, но обычно не больше чем по колено, а тут накрывает с головой. Тем не менее, я отчаянно барахтаюсь в попытке выбраться из отвратительной трясины лени и безответственности.<br />
В скором времени начну выкладывать некоторые наработки, эксперименты, идеи.</p>
]]></content:encoded>
			<wfw:commentRss>http://flashimp.ru/112/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>It&#8217;s Adobe :) LOL</title>
		<link>http://flashimp.ru/107</link>
		<comments>http://flashimp.ru/107#comments</comments>
		<pubDate>Thu, 17 Jun 2010 10:20:48 +0000</pubDate>
		<dc:creator>FIZZER</dc:creator>
				<category><![CDATA[Новости]]></category>

		<guid isPermaLink="false">http://flashimp.ru/?p=107</guid>
		<description><![CDATA[download link]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_108" class="wp-caption alignnone" style="width: 570px">Check out cool app description...<a href="http://labs.adobe.com/technologies/widgetbrowser/"><img class="size-full wp-image-108" title="Screen shot 2010-06-12 at 12.48.25 AM" src="http://flashimp.ru/wp-content/uploads/Screen-shot-2010-06-12-at-12.48.25-AM.png" alt="Adobe Dreamweaver Widget Browser" width="560" height="466" /></a><p class="wp-caption-text">Adobe Dreamweaver Widget Browser</p></div><br />
<a href="http://labs.adobe.com/downloads/widgetbrowser.html">download link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flashimp.ru/107/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>UINativeWindow</title>
		<link>http://flashimp.ru/101</link>
		<comments>http://flashimp.ru/101#comments</comments>
		<pubDate>Wed, 28 Apr 2010 10:26:21 +0000</pubDate>
		<dc:creator>FIZZER</dc:creator>
				<category><![CDATA[Накодил]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[native]]></category>

		<guid isPermaLink="false">http://flashimp.ru/?p=101</guid>
		<description><![CDATA[package ru.kozlovskij.air &#123; import flash.display.DisplayObject; import flash.display.DisplayObjectContainer; import flash.display.NativeWindow; import flash.display.NativeWindowInitOptions; import flash.events.Event; &#160; import mx.core.IUIComponent; import mx.events.FlexEvent; import mx.managers.WindowedSystemManager; &#160; /** * Composition of &#60;code&#62;NativeWindow&#60;/code&#62; and &#60;code&#62;IUIComponent&#60;/code&#62;. * * @author Aleksandr.Kozlovskiy */ public class UINativeWindow extends NativeWindow &#123; protected var systemManager:WindowedSystemManager; protected var childDisplayObject:IUIComponent; protected var rootDisplayObject:IUIComponent; &#160; /** * After initialization &#60;code&#62;childDisplayObject&#60;/code&#62; added [...]]]></description>
			<content:encoded><![CDATA[
<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #9900cc; font-weight: bold;">package</span> ru.kozlovskij.air
<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: #004993;">DisplayObject</span>;
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span>.<span style="color: #004993;">DisplayObjectContainer</span>;
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span>.NativeWindow;
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span>.NativeWindowInitOptions;
	<span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span>.<span style="color: #004993;">Event</span>;
&nbsp;
	<span style="color: #0033ff; font-weight: bold;">import</span> mx.core.IUIComponent;
	<span style="color: #0033ff; font-weight: bold;">import</span> mx.events.FlexEvent;
	<span style="color: #0033ff; font-weight: bold;">import</span> mx.managers.WindowedSystemManager;
&nbsp;
	<span style="color: #3f5fbf;">/**
	 * Composition of &lt;code&gt;NativeWindow&lt;/code&gt; and &lt;code&gt;IUIComponent&lt;/code&gt;.
	 * 
	 * @author Aleksandr.Kozlovskiy
	 */</span>	
	<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> UINativeWindow extends NativeWindow
	<span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">protected</span> <span style="color: #6699cc; font-weight: bold;">var</span> systemManager<span style="color: #000000; font-weight: bold;">:</span>WindowedSystemManager;
		<span style="color: #0033ff; font-weight: bold;">protected</span> <span style="color: #6699cc; font-weight: bold;">var</span> childDisplayObject<span style="color: #000000; font-weight: bold;">:</span>IUIComponent;
		<span style="color: #0033ff; font-weight: bold;">protected</span> <span style="color: #6699cc; font-weight: bold;">var</span> rootDisplayObject<span style="color: #000000; font-weight: bold;">:</span>IUIComponent;
&nbsp;
		<span style="color: #3f5fbf;">/**
		 * After initialization &lt;code&gt;childDisplayObject&lt;/code&gt; added to &lt;code&gt;systemManager&lt;/code&gt;'s displaylist.
		 * 
		 * 
		 * @param initOptions:NativeWindowInitOptions - Analogically NativeWindow initOptions.
		 * @param rootDisplayObject:IUIComponent - Root Application or other IUIComponent implementation. Mast extends DisplayObject.
		 * @param childDisplayObject:IUIComponent - Container. Child Application or other IUIComponent implementation. Mast extends DisplayObject.
		 * 
		 */</span>		
		<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> UINativeWindow<span style="color: #000000;">&#40;</span>initOptions<span style="color: #000000; font-weight: bold;">:</span>NativeWindowInitOptions,
									   rootDisplayObject<span style="color: #000000; font-weight: bold;">:</span>IUIComponent,
									   childDisplayObject<span style="color: #000000; font-weight: bold;">:</span>IUIComponent<span style="color: #000000;">&#41;</span>
		<span style="color: #000000;">&#123;</span>
			<span style="color: #0033ff; font-weight: bold;">super</span><span style="color: #000000;">&#40;</span>initOptions<span style="color: #000000;">&#41;</span>;
			<span style="color: #0033ff; font-weight: bold;">this</span>.rootDisplayObject = rootDisplayObject;
			<span style="color: #0033ff; font-weight: bold;">this</span>.childDisplayObject = childDisplayObject;
&nbsp;
			addChildren<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
			<span style="color: #004993;">stage</span>.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span>.<span style="color: #004993;">RESIZE</span>, stageResizeHandler<span style="color: #000000;">&#41;</span>;
		<span style="color: #000000;">&#125;</span>
&nbsp;
		<span style="color: #0033ff; font-weight: bold;">protected</span> <span style="color: #339966; font-weight: bold;">function</span> addChildren<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
		<span style="color: #000000;">&#123;</span>
			childDisplayObject.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span>FlexEvent.CREATION_COMPLETE, childCreationCompleteHandler, <span style="color: #0033ff; font-weight: bold;">false</span>, <span style="color: #000000; font-weight:bold;">0</span>, <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000000;">&#41;</span>;
			<span style="color: #000000;">&#40;</span><span style="color: #004993;">stage</span>.<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>systemManager = <span style="color: #0033ff; font-weight: bold;">new</span> WindowedSystemManager<span style="color: #000000;">&#40;</span>rootDisplayObject<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #0033ff; font-weight: bold;">as</span> <span style="color: #004993;">DisplayObjectContainer</span><span style="color: #000000;">&#41;</span>
				.<span style="color: #004993;">addChild</span><span style="color: #000000;">&#40;</span>childDisplayObject <span style="color: #0033ff; font-weight: bold;">as</span> <span style="color: #004993;">DisplayObject</span><span style="color: #000000;">&#41;</span>;
&nbsp;
			stageResizeHandler<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
		<span style="color: #000000;">&#125;</span>
&nbsp;
		<span style="color: #0033ff; font-weight: bold;">protected</span> <span style="color: #339966; font-weight: bold;">function</span> childCreationCompleteHandler<span style="color: #000000;">&#40;</span>e<span style="color: #000000; font-weight: bold;">:</span>FlexEvent<span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
		<span style="color: #000000;">&#123;</span>
			childDisplayObject.<span style="color: #004993;">removeEventListener</span><span style="color: #000000;">&#40;</span>FlexEvent.CREATION_COMPLETE, childCreationCompleteHandler<span style="color: #000000;">&#41;</span>;
			stageResizeHandler<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
		<span style="color: #000000;">&#125;</span>
&nbsp;
&nbsp;
		<span style="color: #009900;">// ------------------ resize ----------------------- //</span>
&nbsp;
		<span style="color: #0033ff; font-weight: bold;">protected</span> <span style="color: #339966; font-weight: bold;">function</span> stageResizeHandler<span style="color: #000000;">&#40;</span>e<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Event</span> = <span style="color: #0033ff; font-weight: bold;">null</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span>
		<span style="color: #000000;">&#123;</span>
			childDisplayObject.<span style="color: #004993;">width</span> = <span style="color: #004993;">stage</span>.<span style="color: #004993;">stageWidth</span>;
			childDisplayObject.<span style="color: #004993;">height</span> = <span style="color: #004993;">stage</span>.<span style="color: #004993;">stageHeight</span>;
		<span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://flashimp.ru/101/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Creative Suite 5 to launch on April 12th</title>
		<link>http://flashimp.ru/99</link>
		<comments>http://flashimp.ru/99#comments</comments>
		<pubDate>Wed, 24 Mar 2010 07:51:43 +0000</pubDate>
		<dc:creator>Александр Козловский</dc:creator>
				<category><![CDATA[Новости]]></category>

		<guid isPermaLink="false">http://flashimp.ru/?p=99</guid>
		<description><![CDATA[Ура, товарищи! Ждёмс..]]></description>
			<content:encoded><![CDATA[<p>Ура, товарищи! Ждёмс..</p>
]]></content:encoded>
			<wfw:commentRss>http://flashimp.ru/99/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Emergency Flash Platform World Help</title>
		<link>http://flashimp.ru/94</link>
		<comments>http://flashimp.ru/94#comments</comments>
		<pubDate>Tue, 16 Feb 2010 14:22:22 +0000</pubDate>
		<dc:creator>Александр Козловский</dc:creator>
				<category><![CDATA[Новости]]></category>

		<guid isPermaLink="false">http://flashimp.ru/?p=94</guid>
		<description><![CDATA[Приветствую, дамы и господа разработчики! Обращаюсь к тем членам нашего комьюнити, ощущающих острую нехватку "огонька" и денюшек, - экстрима в общем. Все желающие участвовать в интересных и не очень, но чрезвычайно горячих проектах, в качестве скорой программерской помощи - милости прошу (мыло в конце поста). Меня в первую очередь интересуют реально крутые монстры своего ремесла [...]]]></description>
			<content:encoded><![CDATA[<p>Приветствую, дамы и господа разработчики!<br />
Обращаюсь к тем членам нашего комьюнити, ощущающих острую нехватку "огонька" и денюшек, - экстрима в общем.<br />
Все желающие участвовать в интересных и не очень, но чрезвычайно горячих проектах, в качестве скорой программерской помощи - милости прошу (мыло в конце поста).</p>
<p>Меня в первую очередь интересуют реально крутые монстры своего ремесла с правдивым опытом работы от трёх лет и могущих мономоментно сорваться с места и полностью погрузиться в разруливание сложных по реализации или по срокам задач.</p>
<p>Новички, желающие получить себе в резюме пару красивых строчек, в бумажник положить пару красивых бумажек, поработать с великими мира сего - вы нужны.</p>
<p>Работает это все так:<br />
-вы присылаете мне письмо, в котором пишете:<br />
--ФИО (+ в теме письма)<br />
--Опыт работы (срок службы в рядах флэш-разработчиков)<br />
--Список компаний, с которыми вы лично сотрудничали<br />
--Специализация (что лучше и быстрее всего получается)<br />
--Контакты, по которым вас можно выцепить где угодно (в разумное время суток естественно)<br />
--Способы расчета с вами<br />
--другая информация, в т.ч. ссылки на работы, резюме и т.п.<br />
- и всё.</p>
<p>А потом ВНЕЗАПНО получаете что-то вроде "За две недели надо сделать такую игрушку вот по этому ТЗ. Денег столько, сроки такие, дизайн есть. Берешься?" и понеслась..</p>
<p>Электропочта: EmergencyFlashPlatformWorldHelp@   Kozlovskij.ru или FlashImp.ru</p>
]]></content:encoded>
			<wfw:commentRss>http://flashimp.ru/94/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book: &#8220;Hello! Flex 4&#8243;</title>
		<link>http://flashimp.ru/90</link>
		<comments>http://flashimp.ru/90#comments</comments>
		<pubDate>Thu, 24 Dec 2009 18:15:55 +0000</pubDate>
		<dc:creator>Александр Козловский</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex4]]></category>

		<guid isPermaLink="false">http://flashimp.ru/?p=90</guid>
		<description><![CDATA[На заграничных прилавках появилась первая книжка про Flex 4: "Hello! Flex 4". Автор: Peter Armstrong. PDF ebook стоит $22.50.]]></description>
			<content:encoded><![CDATA[<p>На заграничных прилавках появилась первая книжка про Flex 4: "<a title="Book: Hello! Flex 4" href="http://www.manning.com/armstrong3/" target="_blank">Hello! Flex 4</a>". Автор: <a title="Peter Armstrong 's Blog" href="http://www.peterarmstrong.com/" target="_blank">Peter Armstrong</a>.<br />
PDF ebook стоит $22.50.</p>
]]></content:encoded>
			<wfw:commentRss>http://flashimp.ru/90/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Package Assistant (public alpha)</title>
		<link>http://flashimp.ru/85</link>
		<comments>http://flashimp.ru/85#comments</comments>
		<pubDate>Wed, 23 Dec 2009 18:50:57 +0000</pubDate>
		<dc:creator>Александр Козловский</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[ADT]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[AIR2]]></category>
		<category><![CDATA[assistant]]></category>
		<category><![CDATA[command line]]></category>
		<category><![CDATA[native installers]]></category>
		<category><![CDATA[packager]]></category>

		<guid isPermaLink="false">http://flashimp.ru/?p=85</guid>
		<description><![CDATA[Serge Jespers опубликовал Package Assistant, о котором писал ранее. Текущая версия: "public alpha". Скачать можно тут (.dmg). Это AIR2-приложение представляет из себя некоего "помощника" для сборки приложений с нативными (встроенными) инсталяторами. Эти самые инсталяторы - есть одна из фич AIR2. Так вот, чтобы воспользоваться этой вкусняжкой, приходилось иметь дело с ADT (command line compiler) , [...]]]></description>
			<content:encoded><![CDATA[<p>Serge Jespers <a title="AIR 2 Package Assistant “public alpha”" href="http://www.webkitchen.be/2009/12/23/air-2-package-assistant-public-alpha/" target="_blank">опубликовал</a> Package Assistant, о котором <a title="Introducing: Package Assistant (AIR 2 package utility built with AIR 2)" href="http://www.webkitchen.be/2009/12/17/introducing-package-assistant-air-2-package-utility-built-with-air-2/" target="_blank">писал ранее</a>.<br />
Текущая версия: "public alpha".<br />
Скачать можно <a title="download the application" href="http://dl.dropbox.com/u/117996/PackageAssistant.dmg" target="_self">тут</a> (.dmg).</p>
<p>Это AIR2-приложение представляет из себя некоего "помощника" для сборки приложений с нативными (встроенными) инсталяторами. Эти самые инсталяторы - есть одна из фич AIR2.</p>
<p>Так вот, чтобы воспользоваться этой вкусняжкой, приходилось иметь дело с ADT (command line compiler) , что не очень удобно. А Package Assistant дает нам UI к компилятору.<br />
Вот, что пишет сам автор:</p>
<blockquote><p>The wizard style application allows you to easily identify the files it needs and after just 4 steps you simply<br />
hit the compile button. A lot easier than fiddling around with the command line <img src='http://flashimp.ru/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p></blockquote>
<p>Можно посмотреть <a title="скринкаст" href="http://vimeo.com/8235248" target="_blank">скринкаст</a> (недельной давности).</p>
]]></content:encoded>
			<wfw:commentRss>http://flashimp.ru/85/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

