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

<channel>
	<title>Блог маленького, но очень отважного программиста &#187; Flex</title>
	<atom:link href="http://xo66ut.ru/archives/tag/flex/feed" rel="self" type="application/rss+xml" />
	<link>http://xo66ut.ru</link>
	<description>PHP, MySQL, Javascript, JQuery, ExtJS, UML, и другие интернетости...…</description>
	<lastBuildDate>Tue, 04 Oct 2011 08:40:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Борьба с cache Flash&#8217;a в Internet Explorer</title>
		<link>http://xo66ut.ru/archives/437</link>
		<comments>http://xo66ut.ru/archives/437#comments</comments>
		<pubDate>Fri, 18 Jun 2010 07:41:46 +0000</pubDate>
		<dc:creator>Xo66uT</dc:creator>
				<category><![CDATA[ActionSript]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Программирование на Flash]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[ActionScript3]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/?p=437</guid>
		<description><![CDATA[
Когда мы отправляем на сервер запрос одной и той же структуры и с одними и теми же параметрами, он кешируется, поэтому когда нам нужно запросить новую порцию данных по этому же url, браузер говорит flash, что эти данные у него уже есть и запроса на сервер не делает. Это относительно распространенная проблема с кешированием в [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><img class="size-full wp-image-439 aligncenter" style="border: 0pt none; text-align: center;" title="ie_cache" src="http://xo66ut.ru/wp-content/uploads/2010/06/ie_cache.jpg" alt="" width="300" height="300" /></p>
<p>Когда мы отправляем на сервер запрос одной и той же структуры и с одними и теми же параметрами, он кешируется, поэтому когда нам нужно запросить новую порцию данных по этому же url, браузер говорит flash, что эти данные у него уже есть и запроса на сервер не делает. Это относительно распространенная проблема с кешированием в Internet Explorer. У меня она возникла при написании чата, требования к чату были такими, что можно было использовать только flash (только он помогает победить same-origin-policy), нужно было отправлять запросы к домену отличному от текущего. Подробнее о чате напишу как-нибудь в другой раз, про все эти политики безопасности и ограничения, и что предлагает flash для решения этих проблем. Итак, как исправлять ?!</p>
<h2>Flash.</h2>
<p>Решение в принципе лежит на поверхности, подобным пользуются не только в flash, это распространенный способ избежать кеширования в браузере. Мы просто добавляем уникальный параметр в запрос. В данном примере я использую timestamp через метод класса Date() &#8211; date.getTime(), который передаю в качестве параметра key в запросе.</p>
<pre class="brush: jscript;">

var request:URLRequest = new URLRequest(&quot;http://domain.ru/chat_receive.php&quot;);
var variables:URLVariables = new URLVariables();
 var date:Date = new Date();
 variables.key = date.getTime();

 request.data = variables;
 request.method = URLRequestMethod.GET;
</pre>
<p>Важно передавать параметры через URLVariables, первый раз я просто добавил параметры прямо в строку url &#8220;http://domain.ru/chat_receive.php&#8221;, почему-то IE это не очень понравилось, и он все равно все успешно кешировал.</p>
<h2>Back-end.</h2>
<p>Теперь делаем фикс на back-end, у меня это PHP, но реализации для других языков отличается не существенно. Зачем мы это делаем ? Способ который помог избежать проблемы, не отключает кеширование, то есть информация все равно попадает в кеш, и теперь ее на порядки больше. Для того чтобы не забивать кеш браузера, мы ставим в заголовок параметр Expires. А также отдаем в заголовке параметры, что кешировать не надо (в отличие от других браузеров ie этого не слушается, для этого мы и передавали уникальный параметр). Вот что у нас получилось:</p>
<pre class="brush: php;">
header(&quot;Expires: Mon, 26 Jul 1997 05:00:00 GMT&quot;); // disable IE caching
 header(&quot;Last-Modified: &quot; . gmdate( &quot;D, d M Y H:i:s&quot;) . &quot; GMT&quot;);
 header(&quot;Cache-Control: no-store, no-cache, must-revalidate&quot;); // HTTP/1.1
 header(&quot;Pragma: no-cache&quot;); // HTTP/1.0
</pre>
<p>Все Internet Explorer побежден.</p>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=437&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/437/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>FlashDevelop как замена Adobe Flash CS4</title>
		<link>http://xo66ut.ru/archives/187</link>
		<comments>http://xo66ut.ru/archives/187#comments</comments>
		<pubDate>Sun, 18 Apr 2010 11:02:28 +0000</pubDate>
		<dc:creator>Xo66uT</dc:creator>
				<category><![CDATA[ActionSript]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Программирование на Flash]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[ActionScript3]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[FlashDevelop]]></category>
		<category><![CDATA[userfriendly]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/?p=187</guid>
		<description><![CDATA[Хотелось бы провести небольшой обзор интересного редактора FlashDevelop. Каждый работавший в Adobe Flash CS с ActionScript обращал внимание на неудобство работы с кодом в этом IDE, а так же отсутствие навигации по файлам проекта, да что там, на отсутствие вообще такого понятия, как проект. Возможно есть такие, кто сейчас скажет: &#8220;Серьезный проект, да тебе во [...]]]></description>
			<content:encoded><![CDATA[<p>Хотелось бы провести небольшой обзор интересного редактора <a href="http://www.flashdevelop.org/" target="_blank">FlashDevelop</a>. Каждый работавший в Adobe Flash CS с ActionScript обращал внимание на неудобство работы с кодом в этом IDE, а так же отсутствие навигации по файлам проекта, да что там, на отсутствие вообще такого понятия, как проект. Возможно есть такие, кто сейчас скажет: &#8220;Серьезный проект, да тебе во Flex&#8221;. С одной стороны не могу не согласиться, во Flex работы с проектами на уровне, да и плагин Flex к Eclipse очень хорош. Но работа с Flex, это работа в MXML. А что делать когда нет желания-умения-возможностей. Итак, если все выше написанное вам близко, вам под кат.<span id="more-187"></span></p>
<p>FlashDevelop это бесплатный OpenSource редактор распространяемый по лицензии MIT.</p>
<p>Он не является полной заменой Flash Builder. Имеет умное автодополнение при написание кода в ActionScript. Для установки FlashDevelop требуется Microsoft .NET 2.0 framework и JRE, который требуется для компиляции Flex и Flex Air приложений. При помощи haxe можно скомпилировать для платформ Flash, JavaScript, NekoVM, также можно скомпилировать бинарные исполняемые приложения для Linux и Windows. Для компиляции ActionScript 2 в состав дистрибутива включен MTASC.</p>
<p><img class="alignright" src="http://www.flashdevelop.org/wikidocs/images/fdwiki.png" alt="" width="135" height="135" />Основные возможности редактора:</p>
<ul>
<li>Подсветка кода</li>
<li>Продвинутый редактор фрагментов кода, а также большой набор этих фрагментов.</li>
<li>Интуитивная и понятная панель инструментов</li>
<li>Архитектура основанная на плагинах</li>
</ul>
<p>Но главное это возможности работы с Flash:</p>
<ul>
<li>Полноценная поддержка ActionScript2, ActionScript3 и (внимание!) <strong>MXML</strong>.</li>
<li>Автоматическая расстановка переносов и завершение тегов и функций.</li>
<li>Быстрая навигация по коду &#8211; переходы к объявлениям.</li>
<li>Интегрированный менеджер проектов, который фиксирует все прикрепленные (assets) файлы, свойства проекта, ну и конечно же рабочие файлы проекта</li>
<li>Настраиваемый интерфейс для AS2API и ASDocs (генераторов документации).</li>
</ul>
<p style="text-align: center;">
<div id="attachment_323" class="wp-caption aligncenter" style="width: 501px"><a href="http://xo66ut.ru/wp-content/uploads/2010/04/flashdevelop.jpg"><img class="size-full wp-image-323 " title="flashdevelop" src="http://xo66ut.ru/wp-content/uploads/2010/04/flashdevelop.jpg" alt="Скриншот программы." width="491" height="420" /></a><p class="wp-caption-text">Скриншот программы.</p></div>
<p><strong>Вывод</strong>: Если рассматривать редактор как альтернативу CS4 IDE, то преимущество очевидно, это:</p>
<ol>
<li>Бесплатное OpenSource приложение</li>
<li>Менеджер проектов</li>
<li>Удобство создания preloader,</li>
<li>Для кого-то не мало важно &#8211; генерация ASDocs</li>
</ol>
<p>Вы еще не пользуетесь ? Тогда мы идем к вам <img src='http://xo66ut.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=187&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/187/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MD5 Flex класс</title>
		<link>http://xo66ut.ru/archives/172</link>
		<comments>http://xo66ut.ru/archives/172#comments</comments>
		<pubDate>Wed, 19 Aug 2009 10:42:00 +0000</pubDate>
		<dc:creator>Xo66uT</dc:creator>
				<category><![CDATA[ActionSript]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Программирование на Flash]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/?p=172</guid>
		<description><![CDATA[В очередной раз удивившись, поисковому запросу к моему блогу (&#8220;flex класс md5&#8243;). Решил помочь ищющим. Хотя тут сразу надо оговорится, что класс для flash, так же применим и для flex. Соответственно он будет обычным, написанным на ActionScript 3 классом. Скачать его можно тут. Как подключать класс писать не буду, думаю вам это известно.
Как всегда отвечаю [...]]]></description>
			<content:encoded><![CDATA[<p>В очередной раз удивившись, поисковому запросу к моему блогу (&#8220;flex класс md5&#8243;). Решил помочь ищющим. Хотя тут сразу надо оговорится, что класс для flash, так же применим и для flex. Соответственно он будет обычным, написанным на ActionScript 3 классом. Скачать его можно <a href="http://xo66ut.ru/examples/flash/MD5.as">тут</a>. Как подключать класс писать не буду, думаю вам это известно.<br />
Как всегда отвечаю на вопросы в комментариях.</p>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=172&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/172/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Изучаю ActionScript3 (продолжение)</title>
		<link>http://xo66ut.ru/archives/116</link>
		<comments>http://xo66ut.ru/archives/116#comments</comments>
		<pubDate>Wed, 08 Jul 2009 18:46:23 +0000</pubDate>
		<dc:creator>Xo66uT</dc:creator>
				<category><![CDATA[ActionSript]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Программирование на Flash]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[ActionScript3]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/?p=116</guid>
		<description><![CDATA[Закончилась первая неделя моего изучения ActionScript3. Не знаю насколько быстро или медленно это (изучение) идет, сравнивать не с чем и не с кем. Стараюсь все свободное от работы время проводить за Flash, но множество отвлечений мешает. Подводить итоги первой недели наверное не буду, если вам интересно то все этапы здесь, а так продолжаем работать дальше, [...]]]></description>
			<content:encoded><![CDATA[<p>Закончилась первая неделя моего изучения ActionScript3. Не знаю насколько быстро или медленно это (изучение) идет, сравнивать не с чем и не с кем. Стараюсь все свободное от работы время проводить за Flash, но множество отвлечений мешает. Подводить итоги первой недели наверное не буду, если вам интересно то все этапы <a href="http://xo66ut.ru/archives/87">здесь</a>, а так продолжаем работать дальше, надеюсь нашу идею приложения для контакта, не реализуют раньше нас, посему поторопимся, поменьше разговоров <img src='http://xo66ut.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Итак, вторая неделя изучения ActionScript3.<span id="more-116"></span></p>
<h2>День 6.</h2>
<p>Выяснил, что удобнее писать код не в action у сцены, а в отдельном подключаемом классе. Классы в AS3 полноценные, также Оо, применяются паттерны проектирования, видел пример применения паттерна <strong>Состояние </strong>(<strong>State</strong>), так что все по взрослому. Так как взаимодействие по обычному методу с api vkontakte, было установлено, то стал <span style="text-decoration: line-through;">мучаться </span>делать взаимодейтсвие по защищенной схеме, от моего сервера к api. Хотя пока работы с голосами мы не планируем, выяснилось, чтобы отправить сообщение в раздел Приложения-&gt;оповещения, применяется метод <strong>secure.sendNotification</strong>, который работает только при отправке запроса со своего сервера, посредством защищенного метода взаимодействия с api.<br />
Так же я решил перейти к &#8220;оживлению&#8221;, самого приложения, взял у дизайнера макет и начал писать класс для замены курсора, в нашем приложении-рисовалке это просто жизненно необходимо. Также начал писать класс для рисования, <strong>Drawing</strong> , суть которого опишу подробнее, по окончании его написания. Дабы соответствовать правилам, коды я пишу в отдельных файлах, разделяя классы на пакеты. Вообщем работа идет.</p>
<h2>День 7.</h2>
<p>Написан класс <strong>Drawing</strong> отвечающий за рисование, написан класс <strong>Drag </strong>отвечающий за перетаскивание элементов. Разобрался как использовать клас для  поведения конкретных элементов, не разобрался, как передавать классу объект для манипулирования. Буду разбираться дальше.</p>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=116&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/116/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Изучаю ActionScript3</title>
		<link>http://xo66ut.ru/archives/87</link>
		<comments>http://xo66ut.ru/archives/87#comments</comments>
		<pubDate>Tue, 30 Jun 2009 08:29:48 +0000</pubDate>
		<dc:creator>Xo66uT</dc:creator>
				<category><![CDATA[ActionSript]]></category>
		<category><![CDATA[Программирование на Flash]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[ActionScript3]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/?p=87</guid>
		<description><![CDATA[Предыстория.
Появилась острая необходимость в ускоренных темпах обучится ActionScript3, в качестве тестового задания решили c дизайнером написать простенькое, но полезное приложение для vkontakte.ru.
Далее вы сможете узнать, как все это происходило&#8230;
День 1.
Посидели над заменой курсора с Дизайнером. Разобрались с эвентами, оказывается событие on () это AS2, немного огорчились, но в итоге разобрались с реализацией событий через AS3 [...]]]></description>
			<content:encoded><![CDATA[<p>Предыстория.<br />
Появилась острая необходимость в ускоренных темпах обучится ActionScript3, в качестве тестового задания решили c дизайнером написать простенькое, но полезное приложение для vkontakte.ru.</p>
<p>Далее вы сможете узнать, как все это происходило&#8230;<span id="more-87"></span></p>
<h2>День 1.</h2>
<p>Посидели над заменой курсора с Дизайнером. Разобрались с эвентами, оказывается событие on () это AS2, немного огорчились, но в итоге разобрались с реализацией событий через AS3 &#8211; <strong>AddEventListener</strong>().</p>
<h2>День 2.</h2>
<p>Целый день просидел над созданием взаимодействия приложения с api вконтакте. Более менее разобрался с ООП в AS3, подключил пакеты для использования шифрования. В тестовых приложениях контакта нашел пакет взаимодействия с api DataProvider, разобраться, как правильно работает, до конца не смог.</p>
<h2>День 3.</h2>
<p>Немножко усовершенствовали бызовый функционал приложения. В основном работал дизайнер, я изучал работу c классом <strong>XML</strong> в AS3.  Потом рабирался с отправкой запроса на сервер через класс <strong>URLRequest</strong>.  Буду пробовать писать свой класс для взаимодействия с api vkontakte.</p>
<h2>День 4.</h2>
<p>Пришел с работы и сразу решил заняться нащим приложением. Надо было все таки &#8220;добить&#8221; взаимодействие с api. Решил пока не париться с использованием класса DataProvider от готового api, а попробовать взаимодействовать прямо в лоб. Так как библиотека для шифрования md5 была уже прикручена, оставалось дело за малым, составить правильный запрос, отправить его и получить ответ. С составлением запроса мне помогло тестового приложение вконтакте, любезно предоставленное видимо таким же, как я, познователем. Итак запрос составлен, выяснею в хелпе как же все таки его отправить, ага класс <strong>URLRequest</strong> у нас его отправляет, а получает значит <strong>URLLoader</strong>. Да чуть не забыл, а ответ то в XML, значит надо еще xml класс, как он у нас называется? Угу, <strong>XML</strong>, просто и со вкусом. <img src='http://xo66ut.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   Связываем все, разбираемся с методами и вуаля, получаем.</p>
<pre class="brush: jscript;">
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
var externalXML:XML;
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest(&quot;http://api.vkontakte.ru/api.php?api_id=&quot; + api_id + &quot;&amp;amp;amp;amp;amp;method=getFriends&amp;amp;amp;amp;amp;sig=&quot; + sig);
loader.load(request);
loader.addEventListener(Event.COMPLETE, onComplete);
function onComplete(event:Event):void
{
var loader:URLLoader = event.target as URLLoader;
if (loader != null)
{
externalXML = new XML(loader.data);
trace(externalXML.toXMLString());
}
else
{
trace(&quot;loader is not a URLLoader!&quot;);
}
}
</pre>
<h2>День 5.</h2>
<p>Была успешно написана библиотека для взаимодействия с api vkontakte. Начал на ее основе писать класс &#8220;прелоадер&#8221;, который будет делать следующее:</p>
<ol>
<li>Подгружать переменные из массива flashvars.</li>
<li>Проверять добавлено ли приложение на страницу пользователя.</li>
<li>Разрешен ли доступ к друзьям, аудиозаписям, видеозаписям пользователей.</li>
<li>Выгружать информацию о текущем пользователе приложения.</li>
<li>Выгружать информацию о друзьях пользователя и выбирать друзей, которые уже добавили приложение к себе на страницу.</li>
</ol>
<p>Заметил, что данный класс можно сделать универсальным для всех приложений, так как все приложения необходимо добавлять на страницу и разрешать им действия, а также проверять это. Да и выборка друзей, а тем более информация о текущем пользователе очень полезна.</p>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=87&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/87/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

