﻿<?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>Малинников.ru &#187; интернет-приложения</title>
	<atom:link href="http://malinnikov.ru/tag/internet-prilozheniya/feed/" rel="self" type="application/rss+xml" />
	<link>http://malinnikov.ru</link>
	<description>Абсолютно неофициальная страница Павла Малинникова</description>
	<lastBuildDate>Thu, 22 Dec 2011 15:05:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Кошерный HTML(5)</title>
		<link>http://malinnikov.ru/koshernyj-html5/</link>
		<comments>http://malinnikov.ru/koshernyj-html5/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 08:49:09 +0000</pubDate>
		<dc:creator>Павел Малинников</dc:creator>
				<category><![CDATA[Дневник]]></category>
		<category><![CDATA[Наблюдения]]></category>
		<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[интернет-приложения]]></category>

		<guid isPermaLink="false">http://malinnikov.ru/?p=2258</guid>
		<description><![CDATA[Нужно делать приложение для айпада и айфона, документооборот. Всё это есть на флексе, но флеш на этих устройствах не работает, приходится искать какую-то замену.
Я считаю, что лучший вариант — это нативная разработка, но есть много вопросов по распространению приложения внутри компании и его обновления. У Эппла есть понятие in-house приложений для предприятий или вариант «вечного тестирования» по ad-hoc схеме, но, чтобы подать [...]]]></description>
			<content:encoded><![CDATA[<p>Нужно делать приложение для айпада и айфона, документооборот. Всё это есть на флексе, но флеш на этих устройствах не работает, приходится искать какую-то замену.</p>
<p>Я считаю, что лучший вариант — это нативная разработка, но есть много вопросов по распространению приложения внутри компании и его обновления. У Эппла есть понятие in-house приложений для предприятий или вариант «вечного тестирования» по ad-hoc схеме, но, чтобы подать заявку на Team-development, нужен <noindex><a href="http://developer.apple.com/support/iphone/enrollment.html#systemrequirements" target="_blank" class="extlink">ряд сведений о компании</a></noindex>, типа DUNS-номера и т.п, который нужно еще как-то получить. Кроме того, даже по ad-hoc схеме возможны неожиданные <noindex><a href="http://habrahabr.ru/blogs/iphone/57370/" target="_blank" class="extlink">нюансы</a></noindex>.</p>
<p>Это все реально, наверное, но бюрократию пока решил оставить на десерт, а пока посмотрел варианты безфлешовой разработки вебовских RIA.</p>
<p>Очень интересный фрейморк <noindex><a href="http://cappuccino.org/" class="extlink">Cappuccino</a></noindex>. Люди понимают, что для серьёзных разработок без полноценного ООП не обойтись, используют надстройку над JS — ObjectiveJ. В результате HTML+JS.</p>
<p class="noimgshadow" style="text-align: center;"><img src="http://lh3.ggpht.com/_WB6KL0U2lTQ/S9Ksk8x5b1I/AAAAAAAAAYI/9XXcJCPiP70/HomeScreenshot%5B1%5D.png" alt="" width="600" height="423" /></p>
<p>Интересно визуально и с техничесой точки зрения. К сожалению, на десктопе под виндовс приложение с несколькими гридами и диалогами потребляет больше проц. времени, чем аналогичное флексовое. Пользователь оценивает степень интерактивности словами «зачётно тормозит».</p>
<p>Для айфона же использовать его вообще пока не удалось — сафари завершает загрузку страницы по таймауту, на дождавшись старта самого приложения. На айпаде, вроде бы, <noindex><a href="http://groups.google.com/group/objectivej/browse_thread/thread/12496e860869dfdc/f485f16e93662a89?lnk=gst&amp;q=ipad#" target="_self" class="extlink">то же самое</a></noindex>.</p>
<p>Есть надежда на <noindex><a href="http://iwebkit.net/" target="_blank" class="extlink">iWebKIt</a></noindex> или <noindex><a href="http://www.jqtouch.com/" target="_blank" class="extlink">что-то подобное</a></noindex>, это хоть как-то работает, хотя простейшие демки находятся на грани, после которой нормальная работа заканчивается. Пока не знаю, как он потянет реальные формы.</p>
<p>Есть еще <noindex><a href="http://touch.sproutcore.com/hedwig/" class="extlink">SproutCore</a></noindex>, на айфоне выглядит примерно так:</p>
<p><img class="aligncenter" src="http://lh4.ggpht.com/_WB6KL0U2lTQ/S9KgytiDz6I/AAAAAAAAAYE/sU7Ygh0sLaU/IMG_6001.jpg" alt="" width="320" height="480" /></p>
<p>Одним словом, производительность и качество связки HTML+JS для RIA на айфон/айпад требует значительного улучшения. Буду рад ошибаться, может быть, есть другие фреймворки, получше. Иначе придётся писать на чистом js, без фреймворков вообще, борясь за производительность.</p>
<p>В будущем все улучшится, неверное. Но точка зрения, представляющая флеш, как основной источник «тормозов» в вебе, а HTML+JS в качестве спасителя Зорро  на белом коне, чересчур оптимистична.</p>
]]></content:encoded>
			<wfw:commentRss>http://malinnikov.ru/koshernyj-html5/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Форматы файлов Microsoft Office</title>
		<link>http://malinnikov.ru/formaty-fajlov-microsoft-office/</link>
		<comments>http://malinnikov.ru/formaty-fajlov-microsoft-office/#comments</comments>
		<pubDate>Tue, 26 May 2009 22:01:28 +0000</pubDate>
		<dc:creator>Павел Малинников</dc:creator>
				<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[интернет-приложения]]></category>
		<category><![CDATA[оказывается]]></category>
		<category><![CDATA[офис]]></category>
		<category><![CDATA[софт]]></category>

		<guid isPermaLink="false">http://malinnikov.ru/?p=1350</guid>
		<description><![CDATA[Оказывается, уже почти год опубликованы форматы doc, xls, ppt.
А я только сегодня узнал об этом из статьи Joel&#8217;а Spolsky. В ней он рассказывает, почему они такие сложные и что по этому поводу можно придумать.
Прямо скажем, ничего хитрого он там не придумал — предлагает не заморачиваться с бинарником, а взять да и купить Windows 2003 сервер, [...]]]></description>
			<content:encoded><![CDATA[<p><span class="noimgshadow"><img src="http://malinnikov.ru/wp-content/uploads/2009/05/officeall_t1.png" width="63" height="63" class="alignleft size-full wp-image-1351" /></span>Оказывается, уже почти год <noindex><a href="http://www.microsoft.com/interop/docs/OfficeBinaryFormats.mspx#EXB" class="extlink">опубликованы форматы doc, xls, ppt</a></noindex>.</p>
<p>А я только сегодня узнал об этом из <noindex><a href="http://www.joelonsoftware.com/items/2008/02/19.html?" class="extlink">статьи Joel&#8217;а Spolsky</a></noindex>. В ней он рассказывает, почему они такие сложные и что по этому поводу можно придумать.</p>
<p>Прямо скажем, ничего хитрого он там не придумал — предлагает не заморачиваться с бинарником, а взять да и купить Windows 2003 сервер, поставить туда лицензионный офис и когда кто-то зааплоадит doc-файл на ваш вебсервис с намерением сделать из него pdf, запускать Word да и через COM-автоматизацию всё это в нём делать. Ну писать для Екселя файлы в CSV или в формате Lotus 1-2-3, а для Ворда — в rtf или в html.</p>
]]></content:encoded>
			<wfw:commentRss>http://malinnikov.ru/formaty-fajlov-microsoft-office/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wiki-эффекты</title>
		<link>http://malinnikov.ru/wiki-effekty/</link>
		<comments>http://malinnikov.ru/wiki-effekty/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 21:31:51 +0000</pubDate>
		<dc:creator>Павел Малинников</dc:creator>
				<category><![CDATA[Наблюдения]]></category>
		<category><![CDATA[банки]]></category>
		<category><![CDATA[интернет-приложения]]></category>
		<category><![CDATA[инциденты]]></category>

		<guid isPermaLink="false">http://malinnikov.ru/?p=698</guid>
		<description><![CDATA[Я как-то писал на тему, как сделать википедию из любой страницы сайта. Сайт ПриватБанка пользуется именно этой технологией довольно широко. Так вот, сегодня на главной странице логина (где вводится код подтверждения из смс) wiki-блок был доступен для публичного редактирования.
Не знаю, по каким причинам, то ли в привате что-то прошляпили, то ли сам сервис так себя [...]]]></description>
			<content:encoded><![CDATA[<p>Я <a href="http://malinnikov.ru/wiki-piki/">как-то писал</a> на тему, как сделать википедию из любой страницы сайта. Сайт <noindex><a href="http://privatbank.ua" class="extlink">ПриватБанка</a></noindex> пользуется именно этой технологией довольно широко. Так вот, сегодня на главной странице логина (где вводится код подтверждения из смс) wiki-блок был доступен для публичного редактирования.</p>
<p>Не знаю, по каким причинам, то ли в привате что-то прошляпили, то ли сам сервис так себя повел, но народ успел излить хорошую часть бреда, находящегося у него в голове, на бедные страницы приватовского сайта.</p>
<p>Дырку, правда, быстро закрыли, но, думаю, мы не раз еще увидим такую ситуацию, т.к. любая ненулевая вероятность какой-нибудь .опы обычно стремится к единице.</p>
]]></content:encoded>
			<wfw:commentRss>http://malinnikov.ru/wiki-effekty/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Wiki-пики</title>
		<link>http://malinnikov.ru/wiki-piki/</link>
		<comments>http://malinnikov.ru/wiki-piki/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 22:17:17 +0000</pubDate>
		<dc:creator>Павел Малинников</dc:creator>
				<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[блоггинг]]></category>
		<category><![CDATA[интернет-приложения]]></category>

		<guid isPermaLink="false">http://malinnikov.ru/?p=556</guid>
		<description><![CDATA[Как сделать википедию из любой страницы сайта: http://edwik.com/
Web 2.0-решение на тему совместной правки содержания страницы и управления версиями содержимого. Автор вставляет простенький блок скрипта, например:
12345678&#60;div style=&#34;border: 4px silver solid; padding: 10px;&#34; id=&#34;wiki&#34;&#62;
&#60;script type=&#34;text/javascript&#34;&#62;
&#160; &#160; &#60;!--
&#160; &#160; var sj_id = 35301;
&#160; &#160; // --&#62;
&#60;/script&#62;
&#60;script src=&#34;https://sj.siteheart.com/sj.js&#34;&#62;&#60;/script&#62;
&#60;/div&#62;
затем пишет начальный вариант текста, который, как я понимаю, хранится на sj.siteheart.com, [...]]]></description>
			<content:encoded><![CDATA[<p>Как сделать википедию из любой страницы сайта: <noindex><a href="http://edwik.com/" class="extlink">http://edwik.com/</a></noindex></p>
<p>Web 2.0-решение на тему совместной правки содержания страницы и управления версиями содержимого. Автор вставляет простенький блок скрипта, например:</p>
<div class="codecolorer-container javascript " style="overflow:auto;white-space:nowrap;width:100%"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="javascript codecolorer" style="font-family: Courier New, monospace">&lt;div style=&quot;border: 4px silver solid; padding: 10px;&quot; id=&quot;wiki&quot;&gt;<br />
<span class="sy0">&lt;</span>script type<span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;!--</span><br />
&nbsp; &nbsp; <span class="kw2">var</span> sj_id <span class="sy0">=</span> <span class="nu0">35301</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="co1">// --&gt;</span><br />
<span class="sy0">&lt;/</span>script<span class="sy0">&gt;</span><br />
&lt;script src=&quot;https://sj.siteheart.com/sj.js&quot;&gt;&lt;/script&gt;<br />
&lt;/div&gt;</div></td></tr></tbody></table></div>
<p>затем пишет начальный вариант текста, который, как я понимаю, хранится на sj.siteheart.com, настраивает правила редактирования блока и получает уведомления об изменении содержимого на почту.<span id="more-556"></span></p>
<p>Например: нижеследующий текст доступен для публичной правки (спамерам просьба не беспокоиться, в данном случае индексация поисковиками отключена, хотя технология позволяет предоставлять текст для индексации).</p>
<div style="border: 4px silver solid; padding: 10px;" id="wiki">
<script type="text/javascript">
    <!--
    var sj_id = 35301;
    // -->
</script><br />
<script src="https://sj.siteheart.com/sj.js"></script>
</div>
]]></content:encoded>
			<wfw:commentRss>http://malinnikov.ru/wiki-piki/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Реальные проекты</title>
		<link>http://malinnikov.ru/realnye-proekty/</link>
		<comments>http://malinnikov.ru/realnye-proekty/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 00:44:31 +0000</pubDate>
		<dc:creator>Павел Малинников</dc:creator>
				<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[интернет-приложения]]></category>
		<category><![CDATA[работа]]></category>

		<guid isPermaLink="false">http://malinnikov.ru/?p=472</guid>
		<description><![CDATA[Оцениваю трудоёмкость Flex-производства продуктов, которые делал на работе при помощи Аякс подходов.
На выходных сделал динамическую подгрузку данных во флексовое дерево.
Приблизительно такими могли бы быть системы качества (только для коллег), можно посмотреть, как это всё работает.
Остальным придётся подождать, когда выложу дерево с тестовыми, не рабочими данными.
]]></description>
			<content:encoded><![CDATA[<p>Оцениваю трудоёмкость Flex-производства продуктов, которые делал на работе при помощи Аякс подходов.</p>
<p>На выходных сделал динамическую подгрузку данных во флексовое дерево.</p>
<p><a href="http://malinnikov.ru/files/bin-release/QS.html">Приблизительно такими могли бы быть системы качества</a> (только для коллег), можно посмотреть, как это всё работает.</p>
<p>Остальным придётся подождать, когда выложу дерево с тестовыми, не рабочими данными.</p>
]]></content:encoded>
			<wfw:commentRss>http://malinnikov.ru/realnye-proekty/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Очаги цивилизации</title>
		<link>http://malinnikov.ru/ochagi-civilizacii/</link>
		<comments>http://malinnikov.ru/ochagi-civilizacii/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 22:00:04 +0000</pubDate>
		<dc:creator>Павел Малинников</dc:creator>
				<category><![CDATA[Наблюдения]]></category>
		<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[интернет-приложения]]></category>

		<guid isPermaLink="false">http://malinnikov.ru/?p=350</guid>
		<description><![CDATA[Есть просто фантастический сервис http://maps.google.com, это все знают. Не все знают, что в его составе есть режим «Просмотр улиц»,  в котором можно видеть панорамное изображение улиц и перекрёстков, передвигаясь по ним при помощи трёхмерных указателей (тоже всё на флеше, кстати, сделано).
Понятно, что какие-то молодцы изъездили все улицы, все сфотографировали, сопоставили с географическими координатами, адресами и [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://malinnikov.ru/wp-content/uploads/2009/01/google_streets.jpg"><img class="alignleft size-thumbnail wp-image-351" style="margin: 10px;" title="google_streets" src="http://malinnikov.ru/wp-content/uploads/2009/01/google_streets-200x163.jpg" alt="google_streets" width="200" height="163" /></a>Есть просто фантастический сервис <noindex><a href="http://maps.google.com/" class="extlink">http://maps.google.com</a></noindex>, это все знают. Не все знают, что в его составе есть режим «Просмотр улиц»,  в котором можно видеть панорамное изображение улиц и перекрёстков, передвигаясь по ним при помощи трёхмерных указателей (тоже всё на флеше, кстати, сделано).</p>
<p>Понятно, что какие-то молодцы изъездили все улицы, все сфотографировали, сопоставили с географическими координатами, адресами и теперь — красота, все можно посмотреть.<span id="more-350"></span></p>
<p>Тут неизбежен такой вопрос. Его задавали все, кому я этот просмотр улиц показывал: «Почему улицы городов оцифрованы не везде?» У нас, в общем, почему ничего не видно, на улицах-то? А?</p>
<p>Тут надо отбросить все свои патриотические амбиции и, посмотрев на карту покрытия этого сервиса, осознать, в каких местах находятся очаги цивилизации, а в каких местах находимся мы с вами, дорогие друзья.</p>
<p style="text-align: center;"><a href="http://malinnikov.ru/wp-content/uploads/2009/01/google_streets_cover.jpg"></a><a href="http://malinnikov.ru/wp-content/uploads/2009/01/google_streets_cover.jpg"><img class="aligncenter size-medium wp-image-352" title="google_streets_cover" src="http://malinnikov.ru/wp-content/uploads/2009/01/google_streets_cover-300x203.jpg" alt="google_streets_cover" width="300" height="203" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://malinnikov.ru/ochagi-civilizacii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Защищено: Флеш — не только для игр</title>
		<link>http://malinnikov.ru/flash-tablebrowse/</link>
		<comments>http://malinnikov.ru/flash-tablebrowse/#comments</comments>
		<pubDate>Sun, 04 Jan 2009 21:21:58 +0000</pubDate>
		<dc:creator>Павел Малинников</dc:creator>
				<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[интернет-приложения]]></category>

		<guid isPermaLink="false">http://malinnikov.ru/?p=309</guid>
		<description><![CDATA[Цитаты нет, потому что запись защищена.]]></description>
			<content:encoded><![CDATA[<form action="http://malinnikov.ru/wp-pass.php" method="post">
<p>Эта запись защищена паролем. Для её просмотра введите, пожалуйста, пароль:</p>
<p><label for="pwbox-309">Пароль:<br />
<input name="post_password" id="pwbox-309" type="password" size="20" /></label><br />
<input type="submit" name="Submit" value="Отправить" /></p></form>
]]></content:encoded>
			<wfw:commentRss>http://malinnikov.ru/flash-tablebrowse/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Идеи носятся в воздухе</title>
		<link>http://malinnikov.ru/idei-nosyatsya-v-vozduxe/</link>
		<comments>http://malinnikov.ru/idei-nosyatsya-v-vozduxe/#comments</comments>
		<pubDate>Fri, 26 Dec 2008 21:56:56 +0000</pubDate>
		<dc:creator>Павел Малинников</dc:creator>
				<category><![CDATA[Наблюдения]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[бизнес]]></category>
		<category><![CDATA[интернет-приложения]]></category>

		<guid isPermaLink="false">http://malinnikov.ru/?p=238</guid>
		<description><![CDATA[Только что выражал свои восторги относительно Adobe Flex, как на тебе — студия Лебедева анонсирует «вершину сайтостроительства» (цитата) — Техснабэкспорт, полностью выполненный во флеше. Причём особых премудростей там не демонстрируется: всё просто (и наверняка дорого, как всегда), для Техснабэкспорта в самый раз, молодцы.
Видно, наступает такая тема: Flex.
P.S. Наступила.
]]></description>
			<content:encoded><![CDATA[<p>Только что <a href="http://malinnikov.ru/adobe-flex/">выражал свои восторги</a> относительно <em>Adobe Flex</em>, как на тебе — студия Лебедева анонсирует «вершину сайтостроительства» (цитата) — <noindex><a href="http://www.tenex2009.ru/" target="_blank" class="extlink">Техснабэкспорт</a></noindex>, полностью выполненный во флеше. Причём особых премудростей там не демонстрируется: всё просто (и наверняка дорого, как всегда), для Техснабэкспорта в самый раз, молодцы.</p>
<p>Видно, наступает такая тема: Flex.</p>
<p><em>P.S. Наступила.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://malinnikov.ru/idei-nosyatsya-v-vozduxe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adobe Flex</title>
		<link>http://malinnikov.ru/adobe-flex/</link>
		<comments>http://malinnikov.ru/adobe-flex/#comments</comments>
		<pubDate>Fri, 26 Dec 2008 11:53:45 +0000</pubDate>
		<dc:creator>Павел Малинников</dc:creator>
				<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[интернет-приложения]]></category>
		<category><![CDATA[отзывы]]></category>

		<guid isPermaLink="false">http://malinnikov.ru/?p=539</guid>
		<description><![CDATA[Выходные прошли в знакомстве с технологией флеш. Такого восторга я не испытывал со времен, когда первый раз увидел изнутри OpenGL.
Это очень, товарищи! Жалею теперь, что откладывал это знакомство, думал, успеется. Надо было давно это заюзать. Перед вами будущее распределённых корпоративных приложений, а для всяких eBay, Nasdaq и прочих монстров — уже настоящее.
Так, впечатлений много — [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://malinnikov.ru/wp-content/uploads/word/122108_1909_AdobeFlex1.png" alt="" align="left" />Выходные прошли в знакомстве с технологией флеш. Такого восторга я не испытывал со времен, когда первый раз увидел изнутри OpenGL.</p>
<p>Это <em>очень</em>, товарищи! Жалею теперь, что откладывал это знакомство, думал, успеется. Надо было давно это заюзать. Перед вами будущее распределённых корпоративных приложений, а для всяких eBay, Nasdaq и прочих монстров — уже настоящее.<span id="more-539"></span></p>
<p>Так, впечатлений много — подробнее напишу позже. <noindex><a href="/files/bin-release/TextFlex.html">Вот какой этюдик</a> для пробы набросал, посмотрев за ночь курс <a href="http://www.adobe.com/devnet/flex/videotraining/" class="extlink">Flex in a week</a></noindex>. Получение данных в XML, отображение в гриде, анимация при переходе от одного viewstate к другому.</p>
<p>Исходники:</p>
<div class="codecolorer-container actionscript " style="overflow:auto;white-space:nowrap;width:100%;height:500px"><table cellspacing="0" cellpadding="0"><tbody><tr><td class="line-numbers"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br /></div></td><td><div class="actionscript codecolorer" style="font-family: Courier New, monospace"><span class="sy0">&lt;</span>?<span class="kw3">xml</span> <span class="kw3">version</span>=<span class="st0">&quot;1.0&quot;</span> encoding=<span class="st0">&quot;utf-8&quot;</span>?<span class="sy0">&gt;</span><br />
<span class="sy0">&lt;</span>mx:Application xmlns:mx=<span class="st0">&quot;http://www.adobe.com/2006/mxml&quot;</span> &nbsp; layout=<span class="st0">&quot;absolute&quot;</span> fontSize=<span class="st0">&quot;14&quot;</span> fontFamily=<span class="st0">&quot;Arial&quot;</span> <br />
&nbsp; &nbsp; <span class="kw3">borderColor</span>=<span class="st0">&quot;#000000&quot;</span> themeColor=<span class="st0">&quot;#547FD6&quot;</span> <span class="kw3">color</span>=<span class="st0">&quot;#000000&quot;</span> backgroundGradientAlphas=<span class="st0">&quot;[1.0, 1.0]&quot;</span> <br />
&nbsp; &nbsp; backgroundGradientColors=<span class="st0">&quot;[#FFFFFF, #FFFFFF]&quot;</span> <span class="kw3">width</span>=<span class="st0">&quot;100%&quot;</span> <span class="kw3">height</span>=<span class="st0">&quot;100%&quot;</span> initialize=<span class="st0">&quot;init()&quot;</span> currentState=<span class="st0">&quot;Base&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>mx:states<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:State <span class="kw3">name</span>=<span class="st0">&quot;Base&quot;</span><span class="sy0">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:State <span class="kw3">name</span>=<span class="st0">&quot;DocView&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:RemoveChild <span class="kw3">target</span>=<span class="st0">&quot;{panel}&quot;</span><span class="sy0">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:<span class="kw3">SetProperty</span> <span class="kw3">target</span>=<span class="st0">&quot;{panel}&quot;</span> <span class="kw3">name</span>=<span class="st0">&quot;y&quot;</span> value=<span class="st0">&quot;60&quot;</span><span class="sy0">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>mx:State<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;/</span>mx:states<span class="sy0">&gt;</span>&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>mx:transitions<span class="sy0">&gt;</span>&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:Transition fromState=<span class="st0">&quot;*&quot;</span> toState=<span class="st0">&quot;DocView&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:Sequence<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:Parallel<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:Dissolve <span class="kw3">target</span>=<span class="st0">&quot;{panel}&quot;</span> alphaFrom=<span class="st0">&quot;1&quot;</span> alphaTo=<span class="st0">&quot;0&quot;</span> targetArea=<span class="st0">&quot;{tArea}&quot;</span><span class="sy0">/&gt;</span>&nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:Move <span class="kw3">target</span>=<span class="st0">&quot;{panel}&quot;</span><span class="sy0">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>mx:Parallel<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:RemoveChildAction <span class="kw3">target</span>=<span class="st0">&quot;{panel}&quot;</span> <span class="sy0">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>mx:Sequence<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>mx:Transition<span class="sy0">&gt;</span>&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:Transition fromState=<span class="st0">&quot;DocView&quot;</span> toState=<span class="st0">&quot;*&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:Sequence<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:Parallel<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:Dissolve <span class="kw3">target</span>=<span class="st0">&quot;{panel}&quot;</span> alphaFrom=<span class="st0">&quot;0&quot;</span> alphaTo=<span class="st0">&quot;1&quot;</span> targetArea=<span class="st0">&quot;{tArea}&quot;</span><span class="sy0">/&gt;</span>&nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:Move <span class="kw3">target</span>=<span class="st0">&quot;{panel}&quot;</span><span class="sy0">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>mx:Parallel<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:RemoveChildAction <span class="kw3">target</span>=<span class="st0">&quot;{panel}&quot;</span> <span class="sy0">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>mx:Sequence<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>mx:Transition<span class="sy0">&gt;</span>&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="sy0">&lt;/</span>mx:transitions<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>mx:Script<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;!</span><span class="br0">&#91;</span>CDATA<span class="br0">&#91;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> mx.<span class="me1">collections</span>.<span class="me1">ArrayCollection</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> mx.<span class="me1">rpc</span>.<span class="me1">events</span>.<span class="me1">ResultEvent</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">import</span> mx.<span class="me1">graphics</span>.<span class="sy0">*</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>Bindable<span class="br0">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">var</span> docData:ArrayCollection;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span>Bindable<span class="br0">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">var</span> tArea:RoundedRectangle;&nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> resultHandler<span class="br0">&#40;</span>event:ResultEvent<span class="br0">&#41;</span>: <span class="kw3">void</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; docData = event.<span class="me1">result</span>.<span class="me1">packet</span>.<span class="kw3">data</span>.<span class="me1">r</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> init<span class="br0">&#40;</span><span class="br0">&#41;</span>: <span class="kw3">void</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; myDataSrc.<span class="kw3">send</span><span class="br0">&#40;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">private</span> <span class="kw2">function</span> toggleGrid<span class="br0">&#40;</span><span class="br0">&#41;</span>: <span class="kw3">void</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tArea = <span class="kw2">new</span> RoundedRectangle<span class="br0">&#40;</span>-<span class="nu0">1</span>,-<span class="nu0">1</span>, panel.<span class="kw3">width</span>+<span class="nu0">2</span>, panel.<span class="kw3">height</span>+<span class="nu0">10</span>, <span class="nu0">5</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">this</span>.<span class="me1">currentState</span> <span class="sy0">!</span>= <span class="st0">&quot;DocView&quot;</span><span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">this</span>.<span class="me1">currentState</span> = <span class="st0">&quot;DocView&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; toggleButton.<span class="me1">label</span> = <span class="st0">&quot;Показать таблицу&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">this</span>.<span class="me1">currentState</span>=<span class="st0">&quot;&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; toggleButton.<span class="me1">label</span> = <span class="st0">&quot;Скрыть таблицу&quot;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> &nbsp; &nbsp; &nbsp; <br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#93;</span><span class="br0">&#93;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <span class="sy0">&lt;/</span>mx:Script<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>mx:HTTPService id=<span class="st0">&quot;myDataSrc&quot;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">url</span>=<span class="st0">&quot;utfdata.xml&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; result=<span class="st0">&quot;resultHandler(event)&quot;</span><span class="sy0">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>mx:Panel id=<span class="st0">&quot;panel&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; top=<span class="st0">&quot;20&quot;</span> bottom=<span class="st0">&quot;244&quot;</span> <span class="kw3">left</span>=<span class="st0">&quot;250&quot;</span> <span class="kw3">right</span>=<span class="st0">&quot;141&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; autoLayout=<span class="st0">&quot;true&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; borderStyle=<span class="st0">&quot;inset&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; title=<span class="st0">&quot;Основные документы&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:DataGrid id=<span class="st0">&quot;mainGrid&quot;</span> <span class="kw3">width</span>=<span class="st0">&quot;100%&quot;</span> <span class="kw3">height</span>=<span class="st0">&quot;100%&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dataProvider=<span class="st0">&quot;{docData}&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; change=<span class="st0">&quot;toggleGrid()&quot;</span><span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:columns<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:DataGridColumn<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dataField=<span class="st0">&quot;NUM_DOC&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; headerText=<span class="st0">&quot;№ документа&quot;</span><span class="sy0">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:DataGridColumn<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dataField=<span class="st0">&quot;UPD_DATE&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; headerText=<span class="st0">&quot;Обновлено&quot;</span><span class="sy0">/&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;</span>mx:DataGridColumn<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dataField=<span class="st0">&quot;FILE_NAME&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; headerText=<span class="st0">&quot;Имя файла&quot;</span><span class="sy0">/&gt;</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>mx:columns<span class="sy0">&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sy0">&lt;/</span>mx:DataGrid<span class="sy0">&gt;</span>&nbsp; <br />
&nbsp; &nbsp; <span class="sy0">&lt;/</span>mx:Panel<span class="sy0">&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span class="sy0">&lt;</span>mx:<span class="kw3">Button</span> id=<span class="st0">&quot;toggleButton&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; click=<span class="st0">&quot;toggleGrid()&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; x=<span class="st0">&quot;26&quot;</span> y=<span class="st0">&quot;20&quot;</span> label=<span class="st0">&quot;Скрыть таблицу&quot;</span><span class="sy0">/&gt;</span><br />
<br />
<br />
<span class="sy0">&lt;/</span>mx:Application<span class="sy0">&gt;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://malinnikov.ru/adobe-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

