<?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; Программирование на Flash</title>
	<atom:link href="http://xo66ut.ru/archives/category/programmirovanie-na-flash/feed" rel="self" type="application/rss+xml" />
	<link>http://xo66ut.ru</link>
	<description>PHP, MySQL, Javascript, JQuery, ExtJS, UML, и другие интернетости...…</description>
	<lastBuildDate>Sun, 29 Aug 2010 10:20:56 +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>Работа с ActionScript3 в FlashDevelop</title>
		<link>http://xo66ut.ru/archives/467</link>
		<comments>http://xo66ut.ru/archives/467#comments</comments>
		<pubDate>Wed, 25 Aug 2010 16:17:53 +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>

		<guid isPermaLink="false">http://xo66ut.ru/?p=467</guid>
		<description><![CDATA[Преимущество и краткий обзор FlashDevelop я уже делал в одной из предыдущих статей. Несколько сумбурно, но все таки там есть что почитать.
Для начала скачиваем все необходимое:

 FlashDevelop. последний на момент написания статьи 3.2.2
Adobe Flex SDK.
Debug Flash Player для вашего барузера.

Если у вас еще не стоит Java 1.6+, то ставим ее, а для пользователей XP нужно [...]]]></description>
			<content:encoded><![CDATA[<p>Преимущество и краткий обзор FlashDevelop я уже делал в одной из предыдущих <a href="http://xo66ut.ru/archives/187" target="_self">статей</a>. Несколько сумбурно, но все таки там есть что почитать.</p>
<p>Для начала скачиваем все необходимое:</p>
<ol>
<li> <a href="http://www.flashdevelop.org/downloads/releases/FlashDevelop-3.2.2-RTM.exe" target="_blank">FlashDevelop.</a> последний на момент написания статьи 3.2.2</li>
<li><a href="http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK">Adobe Flex SDK.</a></li>
<li><a href="http://www.adobe.com/support/flashplayer/downloads.html" target="_blank">Debug Flash Player</a> для вашего барузера.</li>
</ol>
<p>Если у вас еще не стоит Java 1.6+, то ставим ее, а для пользователей XP нужно сделать апгрейд <a href="http://www.microsoft.com/downloads/details.aspx?familyid=aea55f2f-07b5-4a8c-8a44-b4e1b196d5c0&amp;displaylang=en">update .NET 2.0 framework to SP2</a>.</p>
<p><span id="more-467"></span></p>
<p>Устанавливаем FlashDevelop, сразу идем в Tools-&gt;Program Settings, и в закладке AS3Context указываем путь к Flex SDK.</p>
<p style="text-align: center;"><a href="http://xo66ut.ru/wp-content/uploads/2010/08/flashdevelop_settings.jpg"><img class="aligncenter size-full wp-image-480" title="flashdevelop_settings" src="http://xo66ut.ru/wp-content/uploads/2010/08/flashdevelop_settings.jpg" alt="flashdevelop_settings" width="499" height="364" /></a></p>
<p>Все теперь мы можем работать с AS3 и создавать Flash приложения. Создаем новый проект AS3Project.</p>
<p><a href="http://xo66ut.ru/wp-content/uploads/2010/08/flashdevelop_create_project.jpg"><img class="aligncenter size-full wp-image-481" title="flashdevelop_create_project" src="http://xo66ut.ru/wp-content/uploads/2010/08/flashdevelop_create_project.jpg" alt="flashdevelop_create_project" width="553" height="485" /></a></p>
<p>После создания проекта, справа мы видим дерево папок и файлов.</p>
<p><a href="http://xo66ut.ru/wp-content/uploads/2010/08/flashdevelop_main_as.jpg"><img class="aligncenter size-full wp-image-482" title="flashdevelop_main_as" src="http://xo66ut.ru/wp-content/uploads/2010/08/flashdevelop_main_as.jpg" alt="flashdevelop_main_as" width="420" height="261" /></a></p>
<p>Основная точка входа в проект это файл Main.as, для знакомых с ООП, этот файл является <em>Фасадом </em>приложения. Открываем файл Main.as.</p>
<pre class="brush: as3;">

package
{
 import flash.display.Sprite;
 import flash.events.Event;
 import flash.text.TextField;

 /**
 * ...
 * @author Roman
 */
 public class Main extends Sprite
 {

 public function Main():void
 {
 if (stage) init();
 else addEventListener(Event.ADDED_TO_STAGE, init);
 }

 private function init(e:Event = null):void
 {
 removeEventListener(Event.ADDED_TO_STAGE, init);
 // entry point

 var SimpleText:TextField = new TextField();
 SimpleText.text = &quot;Некоторый текст&quot;;
 this.addChild(SimpleText);
 }

 }

}
</pre>
<p>Рассмотрим данный код подробнее. Функция Main это конструктор класса, эта функция автоматически запускается при открытии flash-приложения. В данном случае она проверяет находится или уже что-нибудь на <em>&#8220;сцене&#8221;</em> нашего приложения и если нет, то запускает метод init().</p>
<p>Все это FlashDevelop генерирует автоматически,  после комментария //entry point (точка входа), мы можем писать уже наш собственный код.  В качестве примера я создал объект с типом TextField (Текстовое поле). Присвоил его свойству text значение &#8220;Некоторый текст&#8221; и с помощью метода addChild, вывел на сцену нашего основного класса Main.as, текстовое поле SimpleText.</p>
<p>Запускаем созданное приложение нажатием клавиши F5 и видим что у нас получилось:</p>
<p style="text-align: center;"><a href="http://xo66ut.ru/wp-content/uploads/2010/08/flashdevelop_simpletext.jpg"><img class="aligncenter size-full wp-image-483" title="flashdevelop_simpletext" src="http://xo66ut.ru/wp-content/uploads/2010/08/flashdevelop_simpletext.jpg" alt="flashdevelop_simpletext" width="490" height="395" /></a>Вот так просто мы написали приметивное ActionScript3 приложение.</p>
<p>Есть неплохой <a href="http://www.youtube.com/watch?v=co6ZZdpeEzU" target="_blank">скринкаст </a>по настройке FlashDevelop на Youtube, правда на английском.</p>
<p>В дальнейшем я хочу попробовать записать свой первый ScreenCast, как заменить курсор на свой в flash-приложении.</p>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=467&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/467/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>3</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>4</slash:comments>
		</item>
		<item>
		<title>Замена курсора в Flash на ActionScript 3</title>
		<link>http://xo66ut.ru/archives/156</link>
		<comments>http://xo66ut.ru/archives/156#comments</comments>
		<pubDate>Thu, 06 Aug 2009 09:04:51 +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[as3 замена курсора]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://xo66ut.ru/?p=156</guid>
		<description><![CDATA[Судя потому, что этот поисковый запрос очень популярен на моем блоге, считаю своим долгом донести до общественности такую вещь, как замена курсора в as3.
Итак, заменяем курсор
Скрыть курсор в Flash приложении довольно легко, для этого нам необходимо выполнить следующий порядок действий:

Скрыть текущий курсор мыши
Добавить на сцену курсор, который мы хотим получить
Установить «слушатель событий», чтобы он перерисовывал [...]]]></description>
			<content:encoded><![CDATA[<p>Судя потому, что этот поисковый запрос очень популярен на моем блоге, считаю своим долгом донести до общественности такую вещь, как замена курсора в as3.</p>
<p>Итак, заменяем курсор<span id="more-156"></span></p>
<p>Скрыть курсор в Flash приложении довольно легко, для этого нам необходимо выполнить следующий порядок действий:</p>
<ol>
<li>Скрыть текущий курсор мыши</li>
<li>Добавить на сцену курсор, который мы хотим получить</li>
<li>Установить «слушатель событий», чтобы он перерисовывал (двигал) наш курсор за указателем.</li>
</ol>
<p>В AS3 есть объект <strong>Mouse</strong>, у которого есть метод <strong>hide</strong>, с помощью него мы скрываем курсор, вызвав <strong>Mouse.hide()</strong>, далее создадим объект <strong>Sprite</strong>, и нарисуем наш курсор:</p>
<p><strong>var cursor:Sprite = new Sprite();</strong><br />
<strong>cursor.graphics.beginFill(0&#215;000000);</strong><br />
<strong>cursor.graphics.drawCircle(0,0,20);<br />
cursor.graphics.endFill();<br />
</strong><br />
Теперь мы можем добавить наш курсор в рабочую область:<br />
<strong>addChild(cursor);<br />
</strong><br />
Скрываем старый курсор:<br />
<strong>Mouse.hide();<br />
</strong><br />
Добавляем слушатель событий, к объекту stage (сцена), то есть когда курсор будет двигаться по рабочей области, мы будем менять его на текущие координаты курсора:<br />
<strong>stage.addEventListener(MouseEvent.MOUSE_MOVE,redrawCursor);</strong><br />
Ну и собственно сама функция замены курсора:</p>
<p><strong>function redrawCursor(event:MouseEvent):void<br />
{<br />
cursor.x = event.stageX;//координата по оси x<br />
cursor.y = event.stageY; //координата по оси y<br />
}<br />
</strong><br />
Итак вот, что у нас получилось:</p>
<pre class="brush: as3;">
var cursor:Sprite = new Sprite();
cursor.graphics.beginFill(0x000000);
cursor.graphics.drawCircle(0,0,20);
cursor.graphics.endFill();
addChild(cursor);
stage.addEventListener(MouseEvent.MOUSE_MOVE,redrawCursor);
Mouse.hide();
function redrawCursor(event:MouseEvent):void
{
cursor.x = event.stageX;
cursor.y = event.stageY;
}
</pre>
<p><em>Если есть вопросы, буду рад ответить на них в комментариях.</em></p>
<img src="http://xo66ut.ru/?ak_action=api_record_view&id=156&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xo66ut.ru/archives/156/feed</wfw:commentRss>
		<slash:comments>5</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>3</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>
