<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Flash, Flex, Air</title>
	<atom:link href="http://flash.digy.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://flash.digy.net</link>
	<description></description>
	<lastBuildDate>Sat, 12 May 2012 09:46:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Часть 2: Сборка assets в SWC при помощи Ant&#8217;a</title>
		<link>http://flash.digy.net/2012/03/part2-build-assets-swc-ant/</link>
		<comments>http://flash.digy.net/2012/03/part2-build-assets-swc-ant/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 20:48:05 +0000</pubDate>
		<dc:creator>WD479</dc:creator>
				<category><![CDATA[Ant]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[swc]]></category>

		<guid isPermaLink="false">http://flash.digy.net/?p=171</guid>
		<description><![CDATA[В первой части описывались основы сборки SWC библиотек. В этой части рассмотрим случай когда необходимо собрать множество изображений в один swc-файл. Для этого будем использовать так же Apache Ant. В качестве примера возьмём библиотеку флагов famfamfam включающую в себя почти 250 png-иконок. Для этого понадобится: Для каждого изображения создать AS-класс на основе шаблона (отличие будет [...]]]></description>
			<content:encoded><![CDATA[<p>В <a href="http://flash.digy.net/2012/02/build-swc-with-apache-ant/">первой части</a> описывались основы сборки SWC библиотек.</p>
<p>В этой части рассмотрим случай когда необходимо собрать множество изображений в один swc-файл. Для этого будем использовать так же <a href="http://ant.apache.org/">Apache Ant</a>. В качестве примера возьмём библиотеку флагов <a href="http://www.famfamfam.com/lab/icons/flags/">famfamfam</a> включающую в себя почти 250 png-иконок.</p>
<p>Для этого понадобится:
<ul>
<li>Для каждого изображения создать AS-класс на основе шаблона (отличие будет только в названии файла, имени класса и включенном изображении);</li>
<li>Скомпилировать созданные классы в SWC;</li>
<li>Удалить все созданные AS-классы.</li>
</ul>
<p>В скрипте использована библиотека <a href="http://ant-contrib.sourceforge.net/">ant-contrib</a>, которая дает нам FOR для обработки файлов. Она включена в архив с исходниками в конце заметки.</p>
<p>buildIconsLib.properties</p>
<pre class="brush: xml; title: ; notranslate">###  buildIconsLib.properties  ###

FLEX_HOME=D:\\SDKs\\4.6.0

dir.lib = ${basedir}\\lib

# source config
src.dir = ${basedir}\\src
#src.ASTemplate = ${src.dir}\\templates\\BitmapTemplate.tpl
src.ASTemplate = ${src.dir}\\templates\\BitmapDataTemplate.tpl
#src.ASTemplate = ${src.dir}\\templates\\SoundTemplate.tpl

# asset config
 # директория с иконками
assets.dir = ${src.dir}\\com\\assets\\icons
 # путь куда будут генерироваться классы (такой же как и package)
assets.classesDir = app\\icons
assets.package = app.icons
assets.classNamePrefix = Icon_
assets.relativeDir = ../../com/assets/icons
assets.extension = png

# library config
lib.swcPath = ${dir.lib}\\icons.swc</pre>
<p>Билд-файл состоит из 4 целей (targets): </p>
<p><strong>1. createTemporaryClasses</strong> &#8211; генерируем AS классы по шаблону.</p>
<pre class="brush: xml; title: ; notranslate">&lt;target name=&quot;createTemporaryClasses&quot;&gt;
	&lt;path id=&quot;assetList&quot;&gt;
		&lt;fileset dir=&quot;${assets.dir}&quot; includes=&quot;*.${assets.extension}&quot;/&gt;
	&lt;/path&gt;
	&lt;pathconvert targetos=&quot;unix&quot; property=&quot;assetList2&quot; pathsep=&quot;,&quot; refid=&quot;assetList&quot;&gt;
		&lt;mapper&gt;
			&lt;!--http://ant.apache.org/manual/Types/mapper.html--&gt;
			&lt;chainedmapper&gt;
				&lt;flattenmapper/&gt;
				&lt;globmapper from=&quot;*.${assets.extension}&quot; to=&quot;*&quot;/&gt;
			&lt;/chainedmapper&gt;
		&lt;/mapper&gt;
	&lt;/pathconvert&gt;
	&lt;for param=&quot;file&quot; list=&quot;${assetList2}&quot;&gt;
		&lt;sequential&gt;
			&lt;copy filtering=&quot;true&quot; file=&quot;${src.ASTemplate}&quot; tofile=&quot;${src.dir}\\${assets.classesDir}\\${assets.classNamePrefix}@{file}.as&quot; overwrite=&quot;true&quot;&gt;
				&lt;filterset&gt;
					&lt;filter token=&quot;ASSET_PACKAGE&quot; value=&quot;${assets.package}&quot;/&gt;
					&lt;filter token=&quot;ASSET_NAME&quot; value=&quot;@{file}&quot;/&gt;
					&lt;filter token=&quot;ASSET_PATH&quot; value=&quot;${assets.relativeDir}&quot;/&gt;
					&lt;filter token=&quot;ASSET_EXTENSION&quot; value=&quot;${assets.extension}&quot;/&gt;
					&lt;filter token=&quot;ASSET_CLASS_PREFIX&quot; value=&quot;${assets.classNamePrefix}&quot;/&gt;
				&lt;/filterset&gt;
			&lt;/copy&gt;
		&lt;/sequential&gt;
	&lt;/for&gt;
&lt;/target&gt;</pre>
<p>Создаем список файлов с иконками, а затем, pathconvert&#8217;ом убираем расширения файлов.<br />
В цикле для каждого png файла создаем свой класс &#8211; копируем файл шаблона и задаем ему новое имя и заменем параметры.</p>
<p><strong>2. build SWC</strong> &#8211; сборка сгенерированных классов</p>
<pre class="brush: xml; title: ; notranslate">&lt;!-- build the swc --&gt;
&lt;target name=&quot;build SWC&quot;&gt;
	&lt;path id=&quot;classList&quot;&gt;
		&lt;fileset dir=&quot;${src.dir}&quot;&gt;
			&lt;include name=&quot;${assets.classesDir}\*.as&quot;/&gt;
		&lt;/fileset&gt;
	&lt;/path&gt;

	&lt;pathconvert property=&quot;classList2&quot; pathsep=&quot; &quot; dirsep=&quot;.&quot; refid=&quot;classList&quot;&gt;
		&lt;mapper&gt;
			&lt;chainedmapper&gt;
				&lt;flattenmapper/&gt;
				&lt;globmapper from=&quot;*.as&quot; to=&quot;${assets.package}.*&quot;/&gt;
			&lt;/chainedmapper&gt;
		&lt;/mapper&gt;
	&lt;/pathconvert&gt;

	&lt;!-- компилируем классы из списка в swc --&gt;
	&lt;compc output=&quot;${lib.swcPath}&quot; include-classes=&quot;${classList2}&quot;&gt;
		&lt;source-path path-element=&quot;${src.dir}&quot;/&gt;
	&lt;/compc&gt;
&lt;/target&gt;</pre>
<p>Создаем список сгенерированных классов. Затем pathconvert&#8217;ом конвертируем имена файлов в названия классов (полный путь включая package) для передачи в include-classes компилятора.</p>
<p><strong>3. deleteTemporaryClasses</strong> &#8211; удаляем созданные временные классы</p>
<pre class="brush: xml; title: ; notranslate">&lt;target name=&quot;deleteTemporaryClasses&quot;&gt;
	&lt;delete&gt;
		&lt;fileset dir=&quot;${src.dir}&quot;&gt;
			&lt;include name=&quot;${assets.classesDir}\\*.as&quot;/&gt;
		&lt;/fileset&gt;
	&lt;/delete&gt;
	&lt;echo&gt;Deleted temporary classes&lt;/echo&gt;
&lt;/target&gt;</pre>
<p><strong>4. buildAssetLibrary </strong>- стартовая (deafult) процедура &#8211; только запускает остальные в порядке очереди.</p>
<pre class="brush: xml; title: ; notranslate">&lt;target name=&quot;buildAssetLibrary&quot;&gt;
	&lt;tstamp&gt;&lt;format property=&quot;StartInstTime&quot; pattern=&quot;dd-MMM-yyyy  hh:mm:ss&quot; locale=&quot;en,UK&quot;/&gt;&lt;/tstamp&gt;
	&lt;echo&gt;[${StartInstTime}] Starting build..&lt;/echo&gt;
	&lt;antcall target=&quot;createTemporaryClasses&quot; /&gt;
	&lt;antcall target=&quot;build SWC&quot; /&gt;
	&lt;antcall target=&quot;deleteTemporaryClasses&quot; /&gt;
	&lt;tstamp&gt;&lt;format property=&quot;EndInstTime&quot; pattern=&quot;dd-MMM-yyyy  hh:mm:ss&quot; locale=&quot;en,UK&quot;/&gt;&lt;/tstamp&gt;
	&lt;echo&gt;[${EndInstTime}] Build finished.&lt;/echo&gt;
	&lt;echo&gt;Asset library built to ${lib.swcPath}&lt;/echo&gt;
&lt;/target&gt;</pre>
<p>В результате у нас будет готовая для использования библиотека всех флагов.</p>
<p>Исходные коды со скриптами: <a href="http://flash.digy.net/wp-content/uploads/2012/02/BuildSWC_ASL.zip">zip-архив</a> (220Kb)<br />
<strong>Пояснения:</strong><br />
buildIconsLib.xml &#8211; билд-файл собирающий swc из иконок.<br />
buildSWCs.xml &#8211; билд-файл создающий swc со стилями, swc с переводами и обращается к buildIconsLib.xml для создания swc с иконками. </p>
<p><strong>Полезные ссылки:</strong><br />
<a href="http://flash.digy.net/2012/02/build-swc-with-apache-ant/">Часть 1: Сборка SWC библиотек при помощи Apache Ant</a><br />
<a href="http://livedocs.adobe.com/flex/3/html/help.html?content=anttasks_1.html">Using Flex Ant Tasks</a><br />
<a href="http://blog.madebypi.co.uk/2009/09/14/ant-flex-auto-generate-swc-lib/">Auto-generate SWC asset libraries with Apache Ant and the Flex SDK</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flash.digy.net/2012/03/part2-build-assets-swc-ant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Часть 1: SWC и Apache Ant: Основы</title>
		<link>http://flash.digy.net/2012/02/build-swc-with-apache-ant/</link>
		<comments>http://flash.digy.net/2012/02/build-swc-with-apache-ant/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 08:08:41 +0000</pubDate>
		<dc:creator>WD479</dc:creator>
				<category><![CDATA[Ant]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[swc]]></category>

		<guid isPermaLink="false">http://flash.digy.net/?p=152</guid>
		<description><![CDATA[Это первая заметка из небольшой серии, посвященной сборке, подключению и использованию swc-библиотек. Особено актуально для тех, кто собирается разрабатывать мобильные приложения под iOS, но об этом позже Азы и простые примеры. SWC &#8211; скомпилированая библиотека. Часто используемые классы или сотня-другая картинок/звуков, собранных в один swc файл, можно повторно использовать в других проектах, или, например, раздать [...]]]></description>
			<content:encoded><![CDATA[<p>Это первая заметка из небольшой серии, посвященной сборке, подключению и использованию swc-библиотек. Особено актуально для тех, кто собирается разрабатывать мобильные приложения под iOS, но об этом позже <img src='http://flash.digy.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Азы и простые примеры.</strong></p>
<p>SWC &#8211; скомпилированая библиотека. Часто используемые классы или сотня-другая картинок/звуков, собранных в один swc файл, можно повторно использовать в других проектах, или, например, раздать тестерам =)  При этом исходные коды останутся в одном месте. В SWC можно скомпилировать файлы переводов для добавления в приложение многоязычности, или таблицу стилей &#8211; тогда полученный swc можно будет использовать как основную или дополнительную тему в приложении.</p>
<p>SWC создается при помощи компилятора <a href="http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_22.html">compc</a>. Для автоматизации сборки SWC и приложений будем использовать <a href="http://ru.wikipedia.org/wiki/Apache_Ant">Apache Ant</a>.</p>
<h2><strong>Сборка SWC:</strong></h2>
<pre class="brush: xml; title: ; notranslate">&lt;target name=&quot;buildSWC&quot;&gt;
	&lt;compc output=&quot;${basedir}/swc/MyLib.swc&quot; keep-generated-actionscript=&quot;false&quot; incremental=&quot;false&quot;&gt;
		&lt;source-path path-element=&quot;${dir.src}&quot; /&gt;
		&lt;!-- Включить все .as файлы из данной директории --&gt;
		&lt;include-sources dir=&quot;${dir.src}/app/utils/&quot; includes=&quot;*.as&quot; /&gt;
		&lt;!-- Включить все файлы из данной директории и поддиректорий --&gt;
		&lt;include-sources dir=&quot;${dir.src}/app/comps/&quot; includes=&quot;*&quot; /&gt;
		&lt;!-- Включение класса --&gt;
		&lt;include-classes /&gt;
		&lt;!-- Включить из конфиг-файла. По сути тоже самое, но в отдельном файле --&gt;
		&lt;load-config filename=&quot;${basedir}/build/classes-list.xml&quot;/&gt;
	&lt;/compc&gt;
&lt;/target&gt;</pre>
<p>classes-list.xml</p>
<pre class="brush: xml; title: ; notranslate">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
&lt;flex-config&gt;
	&lt;include-classes&gt;
		&lt;class&gt;app.events.MyEvent&lt;/class&gt;
		&lt;class&gt;app.comps.Button&lt;/class&gt;
	&lt;/include-classes&gt;
&lt;/flex-config&gt;</pre>
<h2><strong>SWC с файлами локализации:</strong></h2>
<pre class="brush: xml; title: ; notranslate">&lt;target name=&quot;buildSWC-locale&quot;&gt;
	&lt;compc output=&quot;${basedir}/swc/locale.swc&quot;&gt;
		&lt;locale&gt;ru_RU&lt;/locale&gt;
		&lt;!-- Путь к директории с локалями --&gt;
		&lt;source-path path-element=&quot;${dir.src}/locale&quot;/&gt;
		&lt;!-- Имя подключаемой локали (одной или более) --&gt;
		&lt;include-resource-bundles&gt;Resources&lt;/include-resource-bundles&gt;
	&lt;/compc&gt;
&lt;/target&gt;</pre>
<p>Файл Resources.properties:</p>
<pre class="brush: xml; title: ; notranslate">AppTitle = Заголовок
HelloMsg = Превед!</pre>
<p>В случае если надо надо несколько языков иметь в одном файле:</p>
<pre class="brush: xml; title: ; notranslate">&lt;target name=&quot;buildSWC-locale&quot;&gt;
	&lt;compc output=&quot;${dir.lib}/locale.swc&quot; allow-source-path-overlap=&quot;true&quot;&gt;
		&lt;locale&gt;en_US&lt;/locale&gt;
		&lt;locale&gt;ru_RU&lt;/locale&gt;
		&lt;source-path path-element=&quot;${dir.src}/locale/{locale}&quot;/&gt;
		&lt;include-resource-bundles&gt;Resources&lt;/include-resource-bundles&gt;
	&lt;/compc&gt;
&lt;/target&gt;</pre>
<p>Компилятор будет поочередно перебирать локали и подставлять их вместо {locale}.<br />
И в данном случае надо будет добавить опцию allow-source-path-overlap=&#8221;true&#8221;.</p>
<h2><strong>SWC файл со стилями:</strong></h2>
<pre class="brush: xml; title: ; notranslate">&lt;target name=&quot;buildSWC-styles&quot;&gt;
	&lt;compc output=&quot;${basedir}/swc/style.swc&quot;&gt;
		&lt;include-file name=&quot;MyStyles.css&quot; path=&quot;${dir.src}\css\MyStyles.css&quot; /&gt;
	&lt;/compc&gt;
&lt;/target&gt;</pre>
<p><strong>Полезные ссылки:</strong><br />
Adobe: <a href="http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_30.html">About SWC files</a><br />
Adobe: <a href="http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00001911.html">Understanding SWC files</a><br />
Adobe: <a href="http://livedocs.adobe.com/flex/3/html/help.html?content=anttasks_6.html">Using the compc task</a><br />
Adobe: <a href="http://livedocs.adobe.com/flex/3/html/help.html?content=l10n_3.html">Creating resources</a><br />
Adobe: <a href="http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7f3c.html">Using resource modules</a><br />
Adobe: <a href="http://cookbooks.adobe.com/post_Easily_compile_resource_bundles_using_Ant-12765.html">Easily compile resource bundles using Ant</a><br />
Adobe: <a href="http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7f85.html#WS2db454920e96a9e51e63e3d11c0bf62883-7fc6">Compiling a theme SWC file</a><br />
<a href="http://yzh44yzh.com/ru/good_swc">Делаем правильные swc библиотеки</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flash.digy.net/2012/02/build-swc-with-apache-ant/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Загрузка созданых на лету файлов (FZip, UploadPostHelper)</title>
		<link>http://flash.digy.net/2011/03/upload-files-fzip-uploadposthelper/</link>
		<comments>http://flash.digy.net/2011/03/upload-files-fzip-uploadposthelper/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 22:16:41 +0000</pubDate>
		<dc:creator>WD479</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Tips & Tricks]]></category>

		<guid isPermaLink="false">http://flash.digy.net/?p=147</guid>
		<description><![CDATA[Порой надо загрузить на сервер файлы, сгенерированные программно – скриншоты, архивы и другое. Из-за ограничений безопасности FileReference’у [ru] необходимо участие пользователя для загрузки файлов – при выборе внешнего файла для загрузки – заполняются все его хэдеры. Обойти это ограничение можно используя класс UploadPostHelper. Функция загрузки будет выглядеть так: private function uploadFile&#40;ba:ByteArray, fileName:String&#41;:void &#123; var urlRequest:URLRequest [...]]]></description>
			<content:encoded><![CDATA[<p>Порой надо загрузить на сервер файлы, сгенерированные программно – скриншоты, архивы и другое. Из-за ограничений безопасности <a href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/FileReference.html">FileReference</a>’у [<a href="http://help.adobe.com/ru_RU/AS3LCR/Flex_4.0/flash/net/FileReference.html">ru</a>] необходимо участие пользователя для загрузки файлов – при выборе внешнего файла для загрузки – заполняются все его хэдеры.<br />
Обойти это ограничение можно используя класс <a href="http://code.google.com/p/nascomaslib/source/browse/trunk/src/be/nascom/flash/net/upload/UploadPostHelper.as?r=7">UploadPostHelper</a>.</p>
<p>Функция загрузки будет выглядеть так:</p>
<div class="codecolorer-container actionscript default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> uploadFile<span style="color: #66cc66;">&#40;</span>ba:ByteArray, fileName:<span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span> <span style="color: #66cc66;">&#123;</span><br />
<span style="color: #000000; font-weight: bold;">var</span> urlRequest:URLRequest = <span style="color: #000000; font-weight: bold;">new</span> URLRequest<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; urlRequest.<span style="color: #0066CC;">url</span> = uploadPath;<br />
&nbsp; urlRequest.<span style="color: #0066CC;">contentType</span> = <span style="color: #ff0000;">'multipart/form-data; boundary='</span> + UploadPostHelper.<span style="color: #006600;">getBoundary</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; urlRequest.<span style="color: #006600;">method</span> = URLRequestMethod.<span style="color: #006600;">POST</span>;<br />
&nbsp; urlRequest.<span style="color: #0066CC;">data</span> = UploadPostHelper.<span style="color: #006600;">getPostData</span><span style="color: #66cc66;">&#40;</span>fileName, ba<span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; urlRequest.<span style="color: #006600;">requestHeaders</span>.<span style="color: #0066CC;">push</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> URLRequestHeader<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'Cache-Control'</span>, <span style="color: #ff0000;">'no-cache'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<br />
<br />
&nbsp; <span style="color: #000000; font-weight: bold;">var</span> urlLoader:URLLoader = <span style="color: #000000; font-weight: bold;">new</span> URLLoader<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; urlLoader.<span style="color: #006600;">dataFormat</span> = URLLoaderDataFormat.<span style="color: #006600;">BINARY</span>;<br />
&nbsp; urlLoader.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">COMPLETE</span>, completeHandler<span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; urlLoader.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>IOErrorEvent.<span style="color: #006600;">IO_ERROR</span>, ioError<span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; urlLoader.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>SecurityErrorEvent.<span style="color: #006600;">SECURITY_ERROR</span>, onSError<span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; urlLoader.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>HTTPStatusEvent.<span style="color: #006600;">HTTP_STATUS</span>, onhttp<span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; urlLoader.<span style="color: #0066CC;">load</span><span style="color: #66cc66;">&#40;</span>urlRequest<span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #66cc66;">&#125;</span></div></div>
<p><a href="http://flash.digy.net/wp-content/uploads/2011/03/fUploadFile.zip">Здесь</a> можно скачать пример проекта (flashdevelop, клиентская часть), который архивирует текстовые данные используя <a href="http://codeazur.com.br/lab/fzip/">FZip</a> и отправляет файл на сервер.</p>
]]></content:encoded>
			<wfw:commentRss>http://flash.digy.net/2011/03/upload-files-fzip-uploadposthelper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AIR for Android: Hello World!</title>
		<link>http://flash.digy.net/2011/02/air-for-android-hello-world/</link>
		<comments>http://flash.digy.net/2011/02/air-for-android-hello-world/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 09:47:10 +0000</pubDate>
		<dc:creator>WD479</dc:creator>
				<category><![CDATA[AIR]]></category>

		<guid isPermaLink="false">http://flash.digy.net/?p=113</guid>
		<description><![CDATA[1. Необходимые файлы. Adobe AIR SDK 2.5: (depositfiles.com) Android SDK: Свежие весии на android.com (depositfiles: sdk r09, sdk r10) AIR Runtime Android: (один из них нужен, если будете устанавлиавать приложение на реальное устройство) com.adobe.air.v2.5.0.1660.apk.zip com.adobe.air.v2.5.1.1774.apk.zip com.adobe.air.v2.6.apk.zip AIR Runtime Android Emulator Froyo (для эмулятора): Runtime_Emulator_Froyo_20100930.zip Исходники приложения (FlashDevelop проект, примеры .bat-скриптов упаковки и устновки apk и [...]]]></description>
			<content:encoded><![CDATA[<p><span id="more-113"></span><!--noteaser--></p>
<p><strong>1. Необходимые файлы.</strong></p>
<p><strong>Adobe AIR SDK 2.5</strong>: <a href="http://depositfiles.com/ru/files/iww4k76m6">(depositfiles.com)</a><br />
<strong>Android SDK</strong>: Свежие весии на <a href="http://developer.android.com/sdk/index.html">android.com</a> (depositfiles: <a href="http://depositfiles.com/ru/files/h0qezjuy9">sdk r09</a>, <a href="http://depositfiles.com/files/cuafspbtt">sdk r10</a>)<br />
<strong>AIR Runtime Android</strong>: (один из них нужен, если будете устанавлиавать приложение на реальное устройство)<br />
<a href="http://depositfiles.com/files/3gerjfe42">com.adobe.air.v2.5.0.1660.apk.zip</a><br />
<a href="http://depositfiles.com/files/espmpuio0">com.adobe.air.v2.5.1.1774.apk.zip</a><br />
<a href="http://depositfiles.com/files/g0w3hye69">com.adobe.air.v2.6.apk.zip</a><br />
<strong>AIR Runtime Android Emulator Froyo (для эмулятора)</strong>:<br />
<a href="http://depositfiles.com/files/r1s66fdii">Runtime_Emulator_Froyo_20100930.zip</a><br />
<strong>Исходники приложения</strong> (FlashDevelop проект, примеры .bat-скриптов упаковки и устновки apk и скрипты apache ant): <a href="http://depositfiles.com/files/04abaxy7s">AF4droid.sources</a></p>
<p><strong>2. Установка.</strong></p>
<p>. Распаковываем Adobe AIR SDK 2.5 прямо в папку с flex sdk (я использовал версии 3.4 и 4.1 &#8211; обе успешно:) )</p>
<p>. Запускаем installer_r10-windows.exe.<br />
. Если вас встречает такой скрин,<br />
<a href="http://flash.digy.net/wp-content/uploads/2011/02/needJava.png"><img src="http://flash.digy.net/wp-content/uploads/2011/02/needJava.png" alt="" title="Android SDK Tools Setup: Java" width="505" height="388" class="aligncenter size-full wp-image-115" /></a><br />
то вам нужко скачать <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Java JDK</a>  (depositfiles: <a href="http://depositfiles.com/files/p4j958q19">JDK 6.24, win32 jdk-6u24-windows-i586.exe.zip</a>).<br />
. Next, Next.. Start SDK Manager:<br />
<a href="http://flash.digy.net/wp-content/uploads/2011/02/aSdkEnd.png"><img src="http://flash.digy.net/wp-content/uploads/2011/02/aSdkEnd.png" alt="" title="aSdkEnd" width="505" height="388" class="aligncenter size-full wp-image-119" /></a><br />
. На следющем скрине выбираем пункты которые надо установить. Я добавил USB driver и выбрал sdk 2.2. Позже всегда можно доустановить необходимое. (все будет выкачиваться с сети)<br />
<a href="http://flash.digy.net/wp-content/uploads/2011/02/AAIR-Packages.png"><img src="http://flash.digy.net/wp-content/uploads/2011/02/AAIR-Packages-300x252.png" alt="" title="AAIR-Packages" width="300" height="252" class="aligncenter size-medium wp-image-120" /></a><br />
. Ждем установки, потом появится &#8220;Done. 5 Packages Installed.&#8221; и жмем Close.<br />
. Теперь слева выбираем  Virtual Devices и жмем New.<br />
<a href="http://flash.digy.net/wp-content/uploads/2011/02/AAIR-AVD1.png"><img src="http://flash.digy.net/wp-content/uploads/2011/02/AAIR-AVD1-300x174.png" alt="" title="AAIR-AVD1" width="300" height="174" class="aligncenter size-medium wp-image-121" /></a><br />
. Выбираем необходимый API и другие настройки и жмём Create AVD:<br />
<a href="http://flash.digy.net/wp-content/uploads/2011/02/AAIR-AVD2.png"><img src="http://flash.digy.net/wp-content/uploads/2011/02/AAIR-AVD2.png" alt="" title="AAIR-AVD2" width="402" height="568" class="aligncenter size-full wp-image-122" /></a><br />
. После успешного создания выбираем эмулятор в списке и кликаем Start. Откроется окно эмулятора. Процесс запуска очень не спешен и занимает некоторое время.</p>
<p>. Пока эмулятор запускается, компилируем наше приложение. Собирается оно аналогично простому air-приложению за исключением:
<ul>
<li>application.xml:</p>
<div class="codecolorer-container xml default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></span> <br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;application</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;http://ns.adobe.com/air/application/2.5&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span> <br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>AF4droid<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/id<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>AF4_droid<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;versionNumber<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1.0<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/versionNumber<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;supportedProfiles<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>mobileDevice<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/supportedProfiles<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;filename<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>AF4droid<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/filename<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;copyright<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/copyright<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;initialWindow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>AF4_droid<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;content<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>AF4droid.swf<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/content<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;visible<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>true<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/visible<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/initialWindow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> <br />
&nbsp; <span style="color: #808080; font-style: italic;">&lt;!--&lt;icon&gt;</span><br />
<span style="color: #808080; font-style: italic;">&nbsp; &nbsp; &lt;image72x72&gt;icons/icon_72.png&lt;/image72x72&gt;</span><br />
<span style="color: #808080; font-style: italic;">&nbsp; &lt;/icon&gt;--&gt;</span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/application<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></div>
<p>1. versionNumber вместо version;<br />
2. иконка имеер размер 72х72 пикселя;<br />
3. добавлен тэг supportedProfiles.</li>
<li>При сборке APK-файла добавляется директива -target apk сразу вслед за -package<br />
<font color='#FF0000'>Внимание:</font> для приложений для эмулятора использовать надо <strong>-target apk-debug</strong></li>
</ul>
<p>. Создаем простое приложение и билд-скрипт для apache ant. Перепроверьте flexSDK, androidSDK и другие пути.</p>
<p><strong>Main.mxml</strong>:</p>
<div class="codecolorer-container xml default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;s:Application</span> <span style="color: #000066;">xmlns:fx</span>=<span style="color: #ff0000;">&quot;http://ns.adobe.com/mxml/2009&quot;</span></span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">xmlns:s</span>=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/spark&quot;</span></span><br />
<span style="color: #009900;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">xmlns:mx</span>=<span style="color: #ff0000;">&quot;library://ns.adobe.com/flex/mx&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; <br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;fx:Declarations<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">&lt;!-- Place non-visual elements (e.g., services, value objects) here --&gt;</span><br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/fx:Declarations<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; <br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;s:Button</span> <span style="color: #000066;">label</span>=<span style="color: #ff0000;">&quot;My Button&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/s:Application<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></div>
<p><strong>build.properties</strong>:</p>
<div class="codecolorer-container properties default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="properties codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000080; font-weight:bold;">FLEX_HOME</span><span style="color: #000000;">=</span><span style="color: #008000; font-weight:bold;">D:/SDKs/flex_sdk_4.1.0.16076</span><br />
<span style="color: #000080; font-weight:bold;">dir.src</span> <span style="color: #000000;">=</span><span style="color: #008000; font-weight:bold;">$<span style="">&#123;</span>basedir<span style="">&#125;</span>/src</span><br />
<span style="color: #000080; font-weight:bold;">dir.lib</span> <span style="color: #000000;">=</span><span style="color: #008000; font-weight:bold;">$<span style="">&#123;</span>basedir<span style="">&#125;</span>/lib</span><br />
<span style="color: #000080; font-weight:bold;">dir.deploy</span> <span style="color: #000000;">=</span><span style="color: #008000; font-weight:bold;"> $<span style="">&#123;</span>basedir<span style="">&#125;</span>/bin</span><br />
<span style="color: #000080; font-weight:bold;">build.isDebug</span> <span style="color: #000000;">=</span><span style="color: #008000; font-weight:bold;"> true</span><br />
<br />
<span style="color: #000080; font-weight:bold;">ADL</span><span style="color: #000000;">=</span><span style="color: #008000; font-weight:bold;">$<span style="">&#123;</span>FLEX_HOME<span style="">&#125;</span>/bin/adl.exe</span><br />
<span style="color: #000080; font-weight:bold;">ADT.JAR</span><span style="color: #000000;">=</span><span style="color: #008000; font-weight:bold;">$<span style="">&#123;</span>FLEX_HOME<span style="">&#125;</span>/lib/adt.jar</span><br />
<br />
<span style="color: #000080; font-weight:bold;">APP_DESCRIPTOR</span> <span style="color: #000000;">=</span><span style="color: #008000; font-weight:bold;"> application.xml</span><br />
<span style="color: #000080; font-weight:bold;">STORETYPE</span> <span style="color: #000000;">=</span><span style="color: #008000; font-weight:bold;"> pkcs12</span><br />
<span style="color: #000080; font-weight:bold;">KEYSTORE</span> <span style="color: #000000;">=</span><span style="color: #008000; font-weight:bold;"> AF4droid.pfx</span><br />
<span style="color: #000080; font-weight:bold;">APP_ROOT_FILE</span> <span style="color: #000000;">=</span><span style="color: #008000; font-weight:bold;"> AF4droid.swf</span><br />
<span style="color: #000080; font-weight:bold;">AIR_FILE</span> <span style="color: #000000;">=</span><span style="color: #008000; font-weight:bold;"> $<span style="">&#123;</span>basedir<span style="">&#125;</span>/apk/AF4droid.apk</span></div></div>
<p><strong>buildAPK.xml</strong>:</p>
<div class="codecolorer-container xml default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;height:300px;"><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;project</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Android AIR&quot;</span> <span style="color: #000066;">basedir</span>=<span style="color: #ff0000;">&quot;.&quot;</span> <span style="color: #000066;">default</span>=<span style="color: #ff0000;">&quot;BuildAPK&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;property</span> <span style="color: #000066;">file</span>=<span style="color: #ff0000;">&quot;build.properties&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;taskdef</span> <span style="color: #000066;">resource</span>=<span style="color: #ff0000;">&quot;flexTasks.tasks&quot;</span> <span style="color: #000066;">classpath</span>=<span style="color: #ff0000;">&quot;${dir.lib}/flexTasks.jar&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
<br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;BuildAPK&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>&nbsp; <br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;antcall</span> <span style="color: #000066;">target</span>=<span style="color: #ff0000;">&quot;Compile&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;antcall</span> <span style="color: #000066;">target</span>=<span style="color: #ff0000;">&quot;Package&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Compile&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mxmlc</span> <span style="color: #000066;">file</span>=<span style="color: #ff0000;">&quot;${dir.src}/Main.mxml&quot;</span> </span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">output</span>=<span style="color: #ff0000;">&quot;${dir.deploy}/AF4droid.swf&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">incremental</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">debug</span>=<span style="color: #ff0000;">&quot;${build.isDebug}&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">warnings</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">strict</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">locale</span>=<span style="color: #ff0000;">&quot;en_US&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">show-unused-type-selector-warnings</span>=<span style="color: #ff0000;">&quot;false&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">target-player</span>=<span style="color: #ff0000;">&quot;10.0.0&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">optimize</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">use-network</span>=<span style="color: #ff0000;">&quot;false&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">configname</span>=<span style="color: #ff0000;">&quot;air&quot;</span></span><br />
<span style="color: #009900;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;load-config</span> <span style="color: #000066;">filename</span>=<span style="color: #ff0000;">&quot;${FLEX_HOME}/frameworks/air-config.xml&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;source-path</span> <span style="color: #000066;">path-element</span>=<span style="color: #ff0000;">&quot;${dir.src}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;default-size</span> <span style="color: #000066;">width</span>=<span style="color: #ff0000;">&quot;800&quot;</span> <span style="color: #000066;">height</span>=<span style="color: #ff0000;">&quot;600&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/mxmlc<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;echo<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Building App finished successfully!<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/echo<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Package&quot;</span> <span style="color: #000066;">description</span>=<span style="color: #ff0000;">&quot;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;delete</span> <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${basedir}/apk&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;mkdir</span>&nbsp; <span style="color: #000066;">dir</span>=<span style="color: #ff0000;">&quot;${basedir}/apk&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;java</span> <span style="color: #000066;">jar</span>=<span style="color: #ff0000;">&quot;${ADT.JAR}&quot;</span> <span style="color: #000066;">fork</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="color: #000066;">failonerror</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-package&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-target&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;apk-debug&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-storetype&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${STORETYPE}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-keystore&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${KEYSTORE}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-storepass&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;fd&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${AIR_FILE}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${APP_DESCRIPTOR}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-C&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${dir.deploy}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;arg</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;${APP_ROOT_FILE}&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/java<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;echo<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>AIR app packaging finished. AIR file: ${AIR_FILE}<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/echo<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/project<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></div>
<p>Результатом выполнения скрипта будет файл AF4droid.apk, который и будет устанавливаться на устройства.</p>
<p>. Вернемсяя к нашему эмулятору. Успешно запущенный эмулятор выглядит так:<br />
<a href="http://flash.digy.net/wp-content/uploads/2011/02/AAIR-AVD-run.png"><img src="http://flash.digy.net/wp-content/uploads/2011/02/AAIR-AVD-run-300x275.png" alt="" title="AAIR-AVD-run" width="300" height="275" class="aligncenter size-medium wp-image-125" /></a></p>
<p>.Теперь нам надо установить на эмулятор AIR Runtime.<br />
Общий вид команды установки APK-файлов:</p>
<div class="codecolorer-container actionscript default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">adb -<span style="color: #0066CC;">e</span> <span style="color: #0066CC;">install</span> -r <span style="color: #66cc66;">%</span>APK_FILE<span style="color: #66cc66;">%</span></div></div>
<p>adb нахдится в android-sdk\platform-tools. Можете добавить путь к этой папке в системные переменные операционно системы.<br />
ключ <strong>-e</strong> указывает что комманда должна выполняться на эмуляторе;<br />
ключ <strong>-r</strong> указывает что приложение должно быть переустановленно в случае, если оно уже было установленно ранее.</p>
<p>. Копируем файл Runtime_Emulator_Froyo_20100930.apk в корень D:/ и устанавливаем его на виртуальное устройство:</p>
<div class="codecolorer-container actionscript default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">adb -<span style="color: #0066CC;">e</span> <span style="color: #0066CC;">install</span> -r D:<span style="color: #66cc66;">/</span>Runtime_Emulator_Froyo_20100930.<span style="color: #006600;">apk</span></div></div>
<p>Если установка успешна, то в Settings/Applications/Manage Applications/ появится Adobe AIR.<br />
<a href="http://flash.digy.net/wp-content/uploads/2011/02/AAIR-InsallAIR1.png"><img src="http://flash.digy.net/wp-content/uploads/2011/02/AAIR-InsallAIR1-300x275.png" alt="" title="AAIR-InsallAIR" width="300" height="275" class="aligncenter size-medium wp-image-138" /></a></p>
<p>. Теперь надо установить наш APK-файл. Копируем его в корень D:/ (либо укажите полный путь к нему)</p>
<div class="codecolorer-container actionscript default" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><div class="actionscript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">adb -<span style="color: #0066CC;">e</span> <span style="color: #0066CC;">install</span> -r D:<span style="color: #66cc66;">/</span>com.<span style="color: #006600;">adobe</span>.<span style="color: #006600;">air</span>.<span style="color: #006600;">v2</span>.5.15320.<span style="color: #006600;">apk</span></div></div>
<p><a href="http://flash.digy.net/wp-content/uploads/2011/02/AAIR-InsallAPK.png"><img src="http://flash.digy.net/wp-content/uploads/2011/02/AAIR-InsallAPK-300x275.png" alt="" title="AAIR-InsallAPK" width="300" height="275" class="aligncenter size-medium wp-image-127" /></a></p>
<p>. В меню появится наше приложение:<br />
<a href="http://flash.digy.net/wp-content/uploads/2011/02/AAIR-Menu.png"><img src="http://flash.digy.net/wp-content/uploads/2011/02/AAIR-Menu-300x275.png" alt="" title="AAIR-Menu" width="300" height="275" class="aligncenter size-medium wp-image-128" /></a></p>
<p>. И, собственно, само приложение <img src='http://flash.digy.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<a href="http://flash.digy.net/wp-content/uploads/2011/02/AAIR-RunningApp.png"><img src="http://flash.digy.net/wp-content/uploads/2011/02/AAIR-RunningApp-300x275.png" alt="" title="AAIR-RunningApp" width="300" height="275" class="aligncenter size-medium wp-image-135" /></a></p>
<p><strong>Пояснения:</strong><br />
<a href="http://depositfiles.com/files/04abaxy7s">Исходный код</a> приложения:<br />
Т.к. сертификат уже сгенерирован (со стандартным паролем fd), то для создания APK достаточно запустить ant-скрипт, который скомпилирует приложение и упакует APK.<br />
Файлы InstallAPK.bat и PackageAPK.bat приведены для ознакомления.</p>
]]></content:encoded>
			<wfw:commentRss>http://flash.digy.net/2011/02/air-for-android-hello-world/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Error: Optimization gone wrong, fix code.</title>
		<link>http://flash.digy.net/2011/01/error-optimization-gone-wrong-fix-code/</link>
		<comments>http://flash.digy.net/2011/01/error-optimization-gone-wrong-fix-code/#comments</comments>
		<pubDate>Mon, 31 Jan 2011 09:35:23 +0000</pubDate>
		<dc:creator>WD479</dc:creator>
				<category><![CDATA[AIR]]></category>

		<guid isPermaLink="false">http://flash.digy.net/?p=82</guid>
		<description><![CDATA[java.lang.RuntimeException: Optimization gone wrong, fix code. Этими тёплыми словами приветствовал меня mxmlc при попытке сборки air приложения. Всезнающий гугл никакой информации не дал. Слава свн&#8217;у =) Проблема заключалась в том, что в теле одного из классов встретилась директва import. Причем компиляция flex-версии проходила успешно и работала без ошибок. Но при попытке скомпилировать air-версию всплывала эта [...]]]></description>
			<content:encoded><![CDATA[<p><em>java.lang.RuntimeException: Optimization gone wrong, fix code.</em><br />
Этими тёплыми словами приветствовал меня mxmlc при попытке сборки air приложения.<br />
Всезнающий гугл никакой информации не дал. Слава свн&#8217;у =)<br />
Проблема заключалась в том, что в теле одного из классов встретилась директва <em>import</em>. Причем компиляция flex-версии проходила успешно и работала без ошибок. Но при попытке скомпилировать air-версию всплывала эта ошибка.</p>
]]></content:encoded>
			<wfw:commentRss>http://flash.digy.net/2011/01/error-optimization-gone-wrong-fix-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ant plugin для FlashDevelop</title>
		<link>http://flash.digy.net/2010/03/ant-plugin-%d0%b4%d0%bb%d1%8f-flashdevelop/</link>
		<comments>http://flash.digy.net/2010/03/ant-plugin-%d0%b4%d0%bb%d1%8f-flashdevelop/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 22:50:35 +0000</pubDate>
		<dc:creator>WD479</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[FlashDevelop]]></category>

		<guid isPermaLink="false">http://flash.digy.net/?p=79</guid>
		<description><![CDATA[Появился очень простой, но очень полезный плагин для FlashDevelop&#8217;а &#8211; Ant panel plugin. Для настройки надо указать либо путь к папке ant/bin в переменных среды (%PATH%), либо в Tools/Program Settings/Ant Plugin указать путь к анту.]]></description>
			<content:encoded><![CDATA[<p>Появился очень простой, но <em>очень полезный</em> плагин для FlashDevelop&#8217;а &#8211; <a href="http://www.flashdevelop.org/community/viewtopic.php?f=4&#038;t=6105">Ant panel plugin</a>.<br />
<img src="http://dl.dropbox.com/u/1674435/fd/ant-plugin.png" alt="Ant task panel plugin" /><br />
Для настройки надо указать либо путь к папке ant/bin в переменных среды (%PATH%), либо в Tools/Program Settings/Ant Plugin указать путь к анту.</p>
]]></content:encoded>
			<wfw:commentRss>http://flash.digy.net/2010/03/ant-plugin-%d0%b4%d0%bb%d1%8f-flashdevelop/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flex 4 Gumbo во FlexDevelop 3</title>
		<link>http://flash.digy.net/2010/03/flex-4-gumbo-%d0%b2%d0%be-flexdevelop-3/</link>
		<comments>http://flash.digy.net/2010/03/flex-4-gumbo-%d0%b2%d0%be-flexdevelop-3/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 14:51:44 +0000</pubDate>
		<dc:creator>WD479</dc:creator>
				<category><![CDATA[FlashDevelop]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://flash.digy.net/?p=76</guid>
		<description><![CDATA[Настроить FlashDevelop для компиляции используя Flex 4 (Gumbo) SDK легко. Намного больше времени прийдется потратить на то, что бы заставить работать подсветку AS синтаксиса, авто-заполнение mxml и много другое, без чего работать с новым sdk не комфортно:). Последний официальный релиз FD был 3.0.6 RTM от 04 ноября 2009 года. С тех пор разработчики сделали очень [...]]]></description>
			<content:encoded><![CDATA[<p>Настроить <a href="http://www.flashdevelop.org/">FlashDevelop</a> для компиляции используя Flex 4 (Gumbo) <a href="http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4">SDK</a> легко.<br />
Намного больше времени прийдется потратить на то, что бы заставить работать подсветку AS синтаксиса, авто-заполнение mxml и много другое, без чего работать с новым sdk не комфортно:). Последний официальный релиз FD был <a href="http://www.flashdevelop.org/community/viewtopic.php?f=11&#038;t=5669">3.0.6 RTM</a> от 04 ноября 2009 года. С тех пор разработчики сделали очень много изменений, включая улучшенное автозаполнение AS кода в mxml, а так же поддержку flex4.<br />
Вытянув сегодня с <a href="http://code.google.com/p/flashdevelop/source/checkout">официального SVN</a> исходники получил вроде бы рабочую версию )<br />
Flex 4 проект можно создавать сразу из меню Projects:<br />
<img src="http://flash.digy.net/wp-content/uploads/2010/03/fd-projects.png" alt="Create Project window - FlashDevelop" /><br />
Не забудте указать в Tools/Program Settings/AS3 Content/Flex SDK Location путь в Flex SDK 4 <img src='http://flash.digy.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Скачать сборку можно тут: <a href="http://depositfiles.com/files/iks9d3wn6">FlashDevelop 3.1.0 r863 (.7z 4.5Mb)</a> (сборка от 01 марта)</p>
]]></content:encoded>
			<wfw:commentRss>http://flash.digy.net/2010/03/flex-4-gumbo-%d0%b2%d0%be-flexdevelop-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3crypto: примеры и bugfix&#8217;ы =)</title>
		<link>http://flash.digy.net/2010/02/as3crypto-%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%80%d1%8b-%d0%b8-bugfix%d1%8b/</link>
		<comments>http://flash.digy.net/2010/02/as3crypto-%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%80%d1%8b-%d0%b8-bugfix%d1%8b/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 20:17:23 +0000</pubDate>
		<dc:creator>WD479</dc:creator>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://flash.digy.net/?p=60</guid>
		<description><![CDATA[Думаю многие уже сталкивались с такой библиотекой как as3crypto. Замечательная библиотека, позволяющая работать с такими алгоритмами шифрования как: RSA,AES, DES, 3DES, BlowFish, XTEA, RC4 + много других плюшек:). На официальной демо-странице можно оценить её возможности. Документацию по ней можно не искать &#8211; её нет. Единственный вариант &#8211; изучать исходники демки. Но скачав последнюю (1.3) версию [...]]]></description>
			<content:encoded><![CDATA[<p>Думаю многие уже сталкивались с такой библиотекой как <a href="http://code.google.com/p/as3crypto/">as3crypto</a>. Замечательная библиотека, позволяющая работать с такими алгоритмами шифрования как: RSA,AES, DES, 3DES, BlowFish, XTEA, RC4 + много других плюшек:). На официальной <a href="http://crypto.hurlant.com/demo/">демо-странице</a> можно оценить её возможности. Документацию по ней можно не искать &#8211; её нет. Единственный вариант &#8211; изучать <a href="http://crypto.hurlant.com/demo/srcview/index.html">исходники</a> демки.<br />
Но скачав последнюю (1.3) версию получил &#8220;приветствие&#8221;:<br />
<em>\src\com\hurlant\crypto\symmetric\AESKey.as(214): col: 29: Warning: flex2.compiler.as3.SignatureExtension.SignatureGenerationFailed[node=&#8217;ForStatement&#8217;, level=&#8217;warning&#8217;, cause=&#8217;flex2.compiler.as3.SignatureAssertionRuntimeException: Unreachable Codepath</em><br />
Нашёл несколько исправлений, но рабочим оказалось только <a href="http://code.google.com/p/as3crypto/issues/detail?id=22">это</a>.</p>
<p>Простой пример DES шифрования (<a href="http://flash.digy.net/wp-content/uploads/2010/02/Crypto.zip">исходный код</a> с исправленным AESKey.as)<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" WIDTH="400" HEIGHT="300"><br />
<PARAM NAME="MOVIE" VALUE="http://flash.digy.net/wp-content/uploads/2010/02/Crypto.swf"><br />
<EMBED SRC="http://flash.digy.net/wp-content/uploads/2010/02/Crypto.swf" WIDTH="400" HEIGHT="300"><br />
</EMBED></OBJECT></p>
]]></content:encoded>
			<wfw:commentRss>http://flash.digy.net/2010/02/as3crypto-%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%80%d1%8b-%d0%b8-bugfix%d1%8b/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title></title>
		<link>http://flash.digy.net/2010/02/52/</link>
		<comments>http://flash.digy.net/2010/02/52/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 19:24:33 +0000</pubDate>
		<dc:creator>WD479</dc:creator>
				<category><![CDATA[Без категории]]></category>

		<guid isPermaLink="false">http://flash.digy.net/?p=52</guid>
		<description><![CDATA[Да, давненько была последняя запись. Как всегда главная проблема &#8211; количество часов в сутках:)Попробую всё же реинкарнировать блог, но, к сожалению, все комментарии были безвозвратно утерянны (]]></description>
			<content:encoded><![CDATA[<p>Да, давненько была последняя запись. Как всегда главная проблема &#8211; количество часов в сутках:)<BR>Попробую всё же реинкарнировать блог, но, к сожалению, все комментарии были безвозвратно утерянны (</p>
]]></content:encoded>
			<wfw:commentRss>http://flash.digy.net/2010/02/52/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Хороший стиль Flex-программирования.</title>
		<link>http://flash.digy.net/2008/05/%d1%85%d0%be%d1%80%d0%be%d1%88%d0%b8%d0%b9-%d1%81%d1%82%d0%b8%d0%bb%d1%8c-flex-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f/</link>
		<comments>http://flash.digy.net/2008/05/%d1%85%d0%be%d1%80%d0%be%d1%88%d0%b8%d0%b9-%d1%81%d1%82%d0%b8%d0%bb%d1%8c-flex-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f/#comments</comments>
		<pubDate>Thu, 29 May 2008 09:06:44 +0000</pubDate>
		<dc:creator>WD479</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Переводы]]></category>

		<guid isPermaLink="false">http://flash.digy.net/?p=50</guid>
		<description><![CDATA[На adobe есть хороший документ: Flex SDK coding conventions and best practices Оказывается две главы из него уже есть на русском языке в блоге racer242: Именование Использование языка программирования UPD: 29.05.2008 Три главы: Структура файла]]></description>
			<content:encoded><![CDATA[<p>На adobe есть хороший документ:<br />
<a href="http://opensource.adobe.com/wiki/display/flexsdk/Coding+Conventions">Flex SDK coding conventions and best practices</a></p>
<p>Оказывается две главы из него уже есть на русском языке в блоге <a href="http://racer242.blogspot.com/">racer242</a>:<br />
<a href="http://racer242.blogspot.com/2008/05/flex.html">Именование</a><br />
<a href="http://racer242.blogspot.com/2008/05/flex_23.html">Использование языка программирования</a></p>
<p><strong>UPD: 29.05.2008</strong><br />
Три главы: <a href="http://racer242.blogspot.com/2008/05/flex_29.html">Структура файла</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flash.digy.net/2008/05/%d1%85%d0%be%d1%80%d0%be%d1%88%d0%b8%d0%b9-%d1%81%d1%82%d0%b8%d0%bb%d1%8c-flex-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%bc%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d1%8f/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

