﻿<?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; flex</title>
	<atom:link href="http://malinnikov.ru/tag/flex/feed/" rel="self" type="application/rss+xml" />
	<link>http://malinnikov.ru</link>
	<description>Абсолютно неофициальная страница Павла Малинникова</description>
	<lastBuildDate>Sun, 20 May 2012 01:05:24 +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>Кто ругает flash и почему?</title>
		<link>http://malinnikov.ru/kto-rugaet-flash-i-pochemu/</link>
		<comments>http://malinnikov.ru/kto-rugaet-flash-i-pochemu/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 14:11:46 +0000</pubDate>
		<dc:creator>Павел Малинников</dc:creator>
				<category><![CDATA[Мысли вслух]]></category>
		<category><![CDATA[Наблюдения]]></category>
		<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[психология]]></category>

		<guid isPermaLink="false">http://malinnikov.ru/?p=2124</guid>
		<description><![CDATA[В последнее время в определённых кругах нарастает волна на тему «технология флеш уже не нужна и должна умереть». Похоже, это связано с выходом айпада от Apple, на котором флеш не работает. Как, впрочем, и на айфоне.
Кроме того, сам Стив Джобс сказал, что флеш — это сплошной баг, написанный лентяями, он не нужен, потому что грядёт [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignleft" style="width: 330px"><img src="http://lh4.ggpht.com/_WB6KL0U2lTQ/S8CDJD1fvtI/AAAAAAAAAQc/IdqtNQI4c1M/IMG_4376.PNG" alt="" width="320" height="480" /><p class="wp-caption-text">Сегодняшний скриншот сайта New York Times с айфона. Синяя иконка с вопросом показывает, что эта часть сайта не работает.</p></div>
<p>В последнее время в определённых кругах нарастает волна на тему «технология флеш уже не нужна и должна умереть». Похоже, это связано с выходом айпада от Apple, на котором флеш не работает. Как, впрочем, и на айфоне.</p>
<p>Кроме того, сам Стив Джобс сказал, что флеш — это сплошной баг, написанный лентяями, он не нужен, потому что грядёт HTML5, в котором есть тег &lt;video&gt;, который браузер будет показывать сам, без всякого флеша.</p>
<p>Это заявление довольно агрессивно. Чем объяснить мотивы таких нападок со стороны Apple? Известно, что флеш-плеер на маке работает хуже, чем под виндовс. Обидно? Да. Наверное, Adobe не любит макинтош, уделяет ему недостаточно внимания?</p>
<p>Постойте, почему тогда сами разработчики Adobe сидят на маках? Они любят есть кактусы и колоться? Adobe пишет софт для маков, не так ли? Я обратил внимание, что даже видео-уроки по Flex записаны в Eclipse на маке.</p>
<p>Может быть, есть другие причины? Сами Adobe говорят, что Apple не пускает их к API, при помощи которого можно было бы получить аппаратное ускорение. Маркетологи Adobe пытаются нас обмануть? А сам Adobe ведёт разработку своих продуктов на маках тоже для маскировки своей нелюбви к мак-платформе?<span id="more-2124"></span></p>
<div class="wp-caption aligncenter" style="width: 490px"><img src="http://lh6.ggpht.com/_WB6KL0U2lTQ/S8B6Dzj6t-I/AAAAAAAAAQQ/RcKCEW6ZwCs/iPhoneOS_noFlash%5B1%5D.jpg" alt="" width="480" height="320" /><p class="wp-caption-text">Страница загрузки флеш-плеера. Надпись: Apple запрещает использование технологий, необходимых для таких продуктов, как флеш-плеер. До тех пор, пока Apple не снимет эти ограничения, Adobe не сможет предоставить флеш-плеер для айфона или для айпод-тача.</p></div>
<p style="text-align: center;">
<p>Точного ответа нам не узнать, все будут кивать друг на друга. Но при закрытости Apple недопущение разработчиков к каким-то уровням системы выглядит правдоподобным. Хотя есть новая версия плеера, которая (вроде бы) стала лучше работать на маке.</p>
<p>Ну хорошо, Apple делает свою игру, запрещая флеш на своих устройствах, обвиняя его тормознутости и дырявости и имеет на это право. У него могут быть на это свои причины: например, желание откусить долю видеосервисов, продвинув при помощи HTML5 свой кодек H.264.</p>
<p>Это игра на уровне корпораций. Но каковы мотивы отдельных пользователей, которые принимают все это за чистую монету и начинают подпевать хором: «Да, флеш — говно, он должен умереть!»?</p>
<p>Скорее всего, это люди, не совсем представляющие себе, что такое флеш. Они считают, что «это для мультиков, оно тормозит, реклама показывается и неожиданно музыка начинает играть». Это говорит об их значительной оторванности от реальных задач бизнеса с точки зрения IT. Наиболее продвинутые из них, впрочем, приводят доводы «поубедительнее». Вроде: «во флеше ссылку нельзя открыть в новом окне, это разрушает сценарий работы пользователя».</p>
<p>Ах вы, дорогие мои суперспециалисты! Вы что, даже не понимаете, что во флеше нет никаких «ссылок» и вообще никаких элементов HTML? Что это просто «кино», которое может показать вам нечто похожее на ссылку, а может показать совсем другое, чего не сделать в HTML, для этого люди и пользуются им, для расширения возможностей? О каких «не таких» ссылках вы говорите? Вы же, вроде бы, понимаете, что флеш — это плагин, так какого чёрта вы говорите такие космические глупости?</p>
<p>Когда пользователь просматривает в браузере 3D-модель или карту, или другое приложение, по своей природе ничего общего не имеющее с веб-страницей, у него не разрушаются сценарии? Реальная задача из жизни: нужно предоставить сотрудникам доступ к рабочему месту из дома, или из интернет-кафе. Нужно интернет-приложение, веб-вариант корпоративной системы документооборота.</p>
<p>Так вот, это приложение — <em>не сайт</em>. Браузер в данном случае — просто средство доставки приложения пользователю.</p>
<p>Это можно сделать при помощи HTML и Ajax, конечно. Но когда система по функционалу становится сопоставимой с Gmail или Яндекс-почтой, количество строк кода выходит за 10 тысяч и внесение изменений становится уже сложным, логично посмотреть вокруг в поисках других технологий.</p>
<p>Я был в такой ситуации и нашел Flex. Это позволило забыть о наступивших сложностях и легко наращивать функционал приложения. Поэтому я могу оценить флеш, как технологию и очень высоко. А что делать с оценками «специалистов», которые не сталкивались с проблемами бизнеса, судят о флеше по сайтам говённых игрушек? Кому оно может быть интересно, кроме них самих?</p>
<p>Как относиться к заявлениям типа: «эта технология плоха, потому что у меня на маке она плохо работает»? Они абсурдны так же, как если бы кто-то сказал: «овощи невкусные, потому что мне здесь дают только затхлую брюкву».</p>
<p>У Apple есть ещё одна причина нелюбви к флешу. Он может стать способом распространения приложений (в том числе невысокого качества) для айфона и айпада. Apple не сможет цензурировать их в App Store, не сможет контролировать процесс их создания. Поэтому Apple запрещает средства разработки, отличные от своих, хотя это и не гарантирует отсутствие говённых приложений, написанных на Objective C.</p>
<p>Ну и пожалуйста, хозяин — барин. Я, как Flex-разработчик, и не просил давать мне возможность писать на флеше под айфон, я и так смогу сделать нативную версию. Никто и не надеялся, что один и тот же вариант приложения подойдет для работы на десктопе и на мобильном устройстве. Я-то могу изучать новые вещи и не пытаюсь ругать технологии, в которых не смог разобраться. Мне лично не нужна работа флеша на айфоне или на маке.</p>
<p>Зато мне интересны психологические явления, которые заставляют людей <em>бойкотировать</em> флеш. Смотрите, если технология плоха, она просто умирает сама, она нигде не представлена, её никому не приходится бойкотировать. Если ты продуктивный чувак, ты ищешь вокруг клёвые штуки и прикидываешь, как бы с пользой их применить. Если встречается какая-то штуковина и она — говно, ты закрываешь эту вкладку браузера и в ту же секунду забываешь об этом.</p>
<p>Но стоны «хоть бы это говно поскорее сдохло» слышны регулярно. Казалось бы, забудь ты о флеше, поставь флешерезалку и всё, флеша нет. Не получается. Значит, всё-таки, для чего-то он нужен. А работает на маке плохо. Но признаться, что ты заложник мака, нельзя даже себе. Остаётся с новыми силами искать публикации о флеше таких же, как ты, в очередной раз доказывать себе, что это флеш виноват в том, что ты не можешь пользоваться интернетом полноценно.</p>
<p>Это похоже на болезнь, от которой умные люди страдают даже сильнее, так как в состоянии придумать более убедительные аргументы в защиту «своей» точки зрения. Это психологическая ловушка, в которую попали некоторые пользователи маков из-за чрезмерной лояльности, превратив обычные технические холиворы в свои реальные личностные комплексы.</p>
<p>Какой вывод можно сделать для себя в этой ситуации? Нет ничего плохого в том, что человек использует мак или ищет для себя разные инструменты. Плохое начинается тогда, когда он теряет способность объективно смотреть на вещи, но делает заявления комического масштаба на уровне технологий, забывая о том, что это <em>только его</em> неудачный опыт с брюквой. А ещё, когда боится изменить своё мнение, предпочитая оставаться в таком дурацком положении.</p>
<p>Не будет флеша, будет что-то другое, всё меняется. Но жертвы брендов, торговых марок и прочих тотемов, похоже, будут всегда.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://lh4.ggpht.com/_WB6KL0U2lTQ/S8CDI-8U4uI/AAAAAAAAAQY/Nln4wrGOnPg/70771224-L%5B1%5D.jpg" alt="" width="320" height="240" /></p>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://malinnikov.ru/kto-rugaet-flash-i-pochemu/feed/</wfw:commentRss>
		<slash:comments>28</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/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>Ajax versus Flex</title>
		<link>http://malinnikov.ru/ajax-vs-flex/</link>
		<comments>http://malinnikov.ru/ajax-vs-flex/#comments</comments>
		<pubDate>Mon, 29 Dec 2008 12:52:57 +0000</pubDate>
		<dc:creator>Павел Малинников</dc:creator>
				<category><![CDATA[Наблюдения]]></category>
		<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://malinnikov.ru/?p=277</guid>
		<description><![CDATA[— а я-то думаю, что это меня так на флеш кидануло&#8230;

ajax flex 
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">— а я-то думаю, что это меня так на флеш кидануло&#8230;</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-276" style="margin: 10px;" title="viz" src="http://malinnikov.ru/wp-content/uploads/2008/12/viz.png" alt="viz" width="580" height="260" /></p>
<p style="text-align: center;"><span style="color: #4684ee;"><strong>ajax</strong></span> <span style="color: #dc3912;"><strong>flex </strong></span></p>
]]></content:encoded>
			<wfw:commentRss>http://malinnikov.ru/ajax-vs-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex Profiler</title>
		<link>http://malinnikov.ru/flex-profiler/</link>
		<comments>http://malinnikov.ru/flex-profiler/#comments</comments>
		<pubDate>Sat, 27 Dec 2008 23:36:06 +0000</pubDate>
		<dc:creator>Павел Малинников</dc:creator>
				<category><![CDATA[Разработка ПО]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://malinnikov.ru/?p=248</guid>
		<description><![CDATA[Потихоньку перевожу свои аяксовые компоненты на флеш. В субботу воевал с местным сборщиком мусора. Обнуляю ссылки на объект, всё как положено. Не удаляются инстанции при пересоздании объекта, хоть тресни!
Оказалось, при навешивании обработчиков при помощи addEventListener не стоит пренебрегать последним параметром, и указывать useWeakReference = false, иначе объект никогда не будет удален из памяти.
Но об этом [...]]]></description>
			<content:encoded><![CDATA[<p>Потихоньку перевожу свои аяксовые компоненты на флеш. В субботу воевал с местным сборщиком мусора. Обнуляю ссылки на объект, всё как положено. Не удаляются инстанции при пересоздании объекта, хоть тресни!</p>
<p>Оказалось, при навешивании обработчиков при помощи <em>addEventListener </em>не стоит пренебрегать последним параметром, и указывать <em>useWeakReference = false</em>, иначе объект никогда не будет удален из памяти.</p>
<p>Но об этом хоть в справке написано, а вот о том, а что делать, если обработчик навешивается, как операция <em>mx.states.SetEventHandler</em>? Я что-то не нашел способа указать «слабую ссылку». Так и будет пухнуть приложение в памяти. Вывод: обязательно пользоваться профайлером, во Flex Builder’е он вполне ничего.</p>
<p><img class="alignnone size-medium wp-image-386" title="flexprofile" src="http://malinnikov.ru/wp-content/uploads/2008/12/flexprofile-600x364.png" alt="flexprofile" width="600" height="364" /></p>
]]></content:encoded>
			<wfw:commentRss>http://malinnikov.ru/flex-profiler/feed/</wfw:commentRss>
		<slash:comments>0</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>

