<?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>Nicolas Prof blog &#187; AS3</title>
	<atom:link href="http://blog.nicolasprof.com/tag/as3/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.nicolasprof.com</link>
	<description>Flash блог</description>
	<lastBuildDate>Thu, 29 Dec 2011 17:47:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>UAFPUG #25 : Николаев</title>
		<link>http://blog.nicolasprof.com/uafpug-25-nikolaev</link>
		<comments>http://blog.nicolasprof.com/uafpug-25-nikolaev#comments</comments>
		<pubDate>Tue, 15 Feb 2011 16:11:58 +0000</pubDate>
		<dc:creator>Nicolas Prof</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[FWA]]></category>
		<category><![CDATA[MotoCMS]]></category>
		<category><![CDATA[UAFPUG]]></category>

		<guid isPermaLink="false">http://blog.nicolasprof.com/?p=702</guid>
		<description><![CDATA[Краткий фото отчет поездки в Николаев. Для отчета, был создан небольшой фото слайдер. Уже было лень делать стрелки, поэтому все управление сделано через горячие клавишы. Любые клавиши, символизирующие для вас влево/вправо, будут работать. Все фотографии были сделаны с помощью Nexus S, где-то повезло с качеством, где-то нет. Спасибо за промокод, для получения бесплатной версии MotoCMS [...]]]></description>
			<content:encoded><![CDATA[<p>Краткий фото отчет поездки в Николаев.<br />
Для отчета, был создан небольшой фото слайдер. Уже было лень делать стрелки, поэтому все управление сделано через горячие клавишы. Любые клавиши, символизирующие для вас влево/вправо, будут работать.<br />
Все фотографии были сделаны с помощью Nexus S, где-то повезло с качеством, где-то нет.<br />
Спасибо за промокод, для получения бесплатной версии MotoCMS и за фирменную ручку Adobe.</p>
<p><a href="/f/fpug25/slider.swf?dataURL=/f/fpug25/xml/data.xml&#038;base=/f/fpug25/" rel="shadowbox;height=550;width=700" title="UAFPUG #25">Смотреть</a></p>
<p>P.S.<br />
Если горячие клавиши(стрелка влево/вправо) не работают, кликните по слайдеру, чтобы Flash приложение получило фокус.<br />
Почему то в Google Chrome, в ShadowBox какие то черные полосы поверх Flash содержимого, даже не знаю как с этим бороться&#8230;</p>
<p>Видео:<br />
<a href="http://www.youtube.com/watch?v=aUvkhy_Stg4">Начало</a>, не сразу додумался включить запись&#8230;<br />
<a href="http://www.youtube.com/watch?v=Lvu-dyIQjxY">Немного о MotoCMS</a><br />
<a href="http://www.youtube.com/watch?v=afWEgvhF5zs">Рекомендации</a> при создании хорошего Flash сайта</p>
<p>Видео снималось с помощью Nexus S, без какого либо штатива, поэтому все фигового качества и дрожит!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nicolasprof.com/uafpug-25-nikolaev/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>XML : Nesting level</title>
		<link>http://blog.nicolasprof.com/xml-nesting-level</link>
		<comments>http://blog.nicolasprof.com/xml-nesting-level#comments</comments>
		<pubDate>Thu, 10 Feb 2011 15:37:42 +0000</pubDate>
		<dc:creator>Nicolas Prof</dc:creator>
				<category><![CDATA[Опыт]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[E4X]]></category>
		<category><![CDATA[Snippet]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://blog.nicolasprof.com/?p=696</guid>
		<description><![CDATA[Есть задача, имея ссылку на XML Node, узнать его уровень вложения в определенном типе элементов. 1 2 3 4 5 6 7 8 function getNestingLevel&#40;$node : XML, $level : int, $name : String&#41; : int&#123; var parent : XML = $node.parent&#40;&#41;; if&#40;parent != null &#38;&#38; parent.localName&#40;&#41; == $name&#41;&#123; return getNestingLevel&#40;parent, ++$level, $name&#41;; &#125; &#160; return [...]]]></description>
			<content:encoded><![CDATA[<p>Есть задача, имея ссылку на XML Node, узнать его уровень вложения в определенном типе элементов.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #339966; font-weight: bold;">function</span> getNestingLevel<span style="color: #000000;">&#40;</span>$node <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">XML</span><span style="color: #000066; font-weight: bold;">,</span> $level <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">int</span><span style="color: #000066; font-weight: bold;">,</span> $name <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">String</span><span style="color: #000000;">&#41;</span> <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">int</span><span style="color: #000000;">&#123;</span>
	<span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">parent</span> <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">XML</span> = $node<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">parent</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">parent</span> <span style="color: #000066; font-weight: bold;">!</span>= <span style="color: #0033ff; font-weight: bold;">null</span> <span style="color: #000066; font-weight: bold;">&amp;&amp;</span> <span style="color: #004993;">parent</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">localName</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> == $name<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">return</span> getNestingLevel<span style="color: #000000;">&#40;</span><span style="color: #004993;">parent</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000066; font-weight: bold;">++</span>$level<span style="color: #000066; font-weight: bold;">,</span> $name<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #000000;">&#125;</span>
&nbsp;
	<span style="color: #0033ff; font-weight: bold;">return</span> $level<span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>Где и как этим пользоваться?<br />
Есть структура XML для древовидного меню к примеру, элементы которого имеют имя &#8211; item.<br />
Тогда:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">level</span> <span style="color: #000066; font-weight: bold;">:</span> <span style="color: #004993;">int</span> = getNestingLevel<span style="color: #000000;">&#40;</span>someInnerXMLElement<span style="color: #000066; font-weight: bold;">,</span> <span style="color: #000000; font-weight:bold;">0</span><span style="color: #000066; font-weight: bold;">,</span> <span style="color: #990000;">&quot;item&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.nicolasprof.com/xml-nesting-level/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PROFGallery 4 : Very first look</title>
		<link>http://blog.nicolasprof.com/profgallery-4-very-first-look</link>
		<comments>http://blog.nicolasprof.com/profgallery-4-very-first-look#comments</comments>
		<pubDate>Wed, 09 Feb 2011 13:34:08 +0000</pubDate>
		<dc:creator>Nicolas Prof</dc:creator>
				<category><![CDATA[Application]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Datolite]]></category>
		<category><![CDATA[Layout]]></category>
		<category><![CDATA[PROFGallery]]></category>
		<category><![CDATA[Transition Engine]]></category>

		<guid isPermaLink="false">http://blog.nicolasprof.com/?p=667</guid>
		<description><![CDATA[Решил поделиться тем, что уже сделано. Данная версия галереи уже использует упрощенную систему автоматического размещения(логика чем то похожа на HTML) объектов: 1 2 3 &#60;layout&#62; &#60;layer type=&#34;viewer&#34; padding=&#34;20&#34; width=&#34;100%&#34; height=&#34;100%&#34; /&#62; &#60;/layout&#62; А так же новую систему для построения эффектов, которая описывается примерно так: 1 2 3 &#60;transition effectType=&#34;Fade&#34;&#62; &#60;fade time=&#34;0.8&#34; ease=&#34;Cubic.easeInOut&#34;/&#62; &#60;/transition&#62; Необходимо отметить, [...]]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript">
			var flashvars = {};
			var params = {};
			params.base = "/f/pg4demo/1/";
			var attributes = {};
			swfobject.embedSWF("/f/pg4demo/1/gallery.swf", "pg4demo1", "600", "420", "10.1.0", false, flashvars, params, attributes);
</script></p>
<div id="pg4demo1"><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></div>
<p>Решил поделиться тем, что уже сделано. Данная версия галереи уже использует упрощенную систему автоматического размещения(логика чем то похожа на HTML) объектов:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;">	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;layout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;layer</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;viewer&quot;</span> <span style="color: #000066;">padding</span>=<span style="color: #ff0000;">&quot;20&quot;</span> <span style="color: #000066;">width</span>=<span style="color: #ff0000;">&quot;100%&quot;</span> <span style="color: #000066;">height</span>=<span style="color: #ff0000;">&quot;100%&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/layout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>А так же новую систему для построения эффектов, которая описывается примерно так:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;">			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;transition</span> <span style="color: #000066;">effectType</span>=<span style="color: #ff0000;">&quot;Fade&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;fade</span> <span style="color: #000066;">time</span>=<span style="color: #ff0000;">&quot;0.8&quot;</span> <span style="color: #000066;">ease</span>=<span style="color: #ff0000;">&quot;Cubic.easeInOut&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/transition<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Необходимо отметить, что эффекты будут строится из примитивов, то есть указав эффект Fade.Rotate.Scale, мы получим комплейсный эффект, который будет изменять alpha, rotate и scale параметры слоя с изображением. Настройки указываются в теле transition, если же система не находит подходящих параметров, будут использоваться значения по умолчанию.</p>
<p>На данном этапе разработки, приложение использует разделенную XML структуру данных: config(компоненты и настройки для них, все компоненты независимы, за счет чего можно достичь максимальной динамики построения галереи, то есть достаточно включить компонент для просмотра изображений и слайдшоу, и вы получите самое обычное слайдшоу на странице), data(информация о изображениях: пути, описание), en(данные локализации), layout(размещение компонентов на сцене).</p>
<p>Проект разрабатывается на <a href="https://sourceforge.net/projects/profgallery/">SourceForge</a></p>
<p>P.S.<br />
Первая публикация о PROFGallery 4, совпала с выходом Flash Player 10.2, как символично <img src='http://blog.nicolasprof.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Галерея будет требовать минимум 10.0-ой версии плеера.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nicolasprof.com/profgallery-4-very-first-look/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Speed Coding : Simple Flash Gallery</title>
		<link>http://blog.nicolasprof.com/speed-coding-simple-flash-gallery</link>
		<comments>http://blog.nicolasprof.com/speed-coding-simple-flash-gallery#comments</comments>
		<pubDate>Sat, 08 Jan 2011 14:27:00 +0000</pubDate>
		<dc:creator>Nicolas Prof</dc:creator>
				<category><![CDATA[Эксперименты]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Gallery]]></category>
		<category><![CDATA[Speed Coding]]></category>

		<guid isPermaLink="false">http://blog.nicolasprof.com/?p=650</guid>
		<description><![CDATA[Flash, AS3, MVCS, Tweenlite.]]></description>
			<content:encoded><![CDATA[<p><object width="618" height="360"><param name="movie" value="http://www.youtube.com/v/DA4kD4QoTgs?fs=1&amp;hl=en_GB&amp;rel=0&amp;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/DA4kD4QoTgs?fs=1&amp;hl=en_GB&amp;rel=0&amp;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="618" height="360"></embed></object></p>
<p>Flash, AS3, MVCS, Tweenlite.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nicolasprof.com/speed-coding-simple-flash-gallery/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Metacritic Widget</title>
		<link>http://blog.nicolasprof.com/metacritic-widget</link>
		<comments>http://blog.nicolasprof.com/metacritic-widget#comments</comments>
		<pubDate>Fri, 22 Oct 2010 11:03:24 +0000</pubDate>
		<dc:creator>Nicolas Prof</dc:creator>
				<category><![CDATA[Application]]></category>
		<category><![CDATA[Опыт]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Metacritic]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Widget]]></category>

		<guid isPermaLink="false">http://blog.nicolasprof.com/?p=589</guid>
		<description><![CDATA[В нынешнее время информационных технологий мы все больше и больше начали ценить свое время. Мы уже не хотим терять 2 часа своей жизни на убогий фильм или сидеть, скучать в кинотеатре над дешевым творением очередного горе режиссера &#8211; тратим драгоценное время, портим себе настроение и т.п. Так же есть еще игры, где объективная оценка критична. [...]]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript">
			var flashvars = {};
			var params = {};
			params.base = "/f/metacritic/";
			var attributes = {};
			swfobject.embedSWF("/f/metacritic/list.swf", "list", "200", "300", "10.0.0", false, flashvars, params, attributes);
</script></p>
<p><script type="text/javascript">
			var flashvars = {};
			var params = {};
			params.base = "/f/metacritic/";
			var attributes = {};
			swfobject.embedSWF("/f/metacritic/mark.swf", "mark", "180", "80", "10.0.0", false, flashvars, params, attributes);
</script></p>
<div style="position: relative;">
<div style="left: 0px; position: absolute; top: 0px;">
<div id="list"><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></div>
</div>
<div style="left: 0px; position: absolute; top: 330px;">
<div id="mark"><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></div>
</div>
<div style="margin-left: 220px;">
<p>В нынешнее время информационных технологий мы все больше и больше начали ценить свое время. Мы уже не хотим терять 2 часа своей жизни на убогий фильм или сидеть, скучать в кинотеатре над дешевым творением очередного горе режиссера &#8211; тратим драгоценное время, портим себе настроение и т.п.<br />
Так же есть еще игры, где объективная оценка критична. Конечно, многие разработчики предлагают ознакомиться с игрой посредством Demo версии, но не у всех есть время на демонстрационную версию игры. Здесь мы тоже хотим знать ответ на главный вопрос: «Как игра? Стоит покупать/качать?»<br />
Не будем делать излишней рекламы, и вдаваться в подробности, но существует замечательный портал-агрегат оценок мультимедийной продукции: игры, фильмы, телевизионные шоу, музыка. Это Metacritic. Прелесть этого портала, что он собирает оценки престижных издательств, интернет порталов, и предоставляет нам уже объективное мнение критиков о продукции. Так же существует оценка пользователей, и каждый волен сам уже сделать выбор какая оценка для него более приоритетная: оценка критиков или пользователей.
</p>
<p>Немного о приложении:<br />
1. Подстраивается под любой размер. (По умолчанию, изменяется размер шрифта)<br />
2. Обладая исходными файлами вы можете легко изменить дизайн.</p>
<p>Логика работы следующая: вы передаете в приложение тип мультимедиа содержимого и полное название, к примеру: game, xbox-360, Dante&#8217;s Inferno; приложение формирует ссылку, и обрабатывает данные, и отображает уже оценку.</p>
<p>Так же вы можете воспользоваться демонстрацией работы приложения, нажимайте по интересующим вас играм или фильмам.</p>
<p><a href="http://blog.nicolasprof.com/wp-content/plugins/download-monitor/download.php?id=14" title="Metacritic Widget"><strong>Download Source Files (<span class="downCount">228</span> times)</strong></a>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.nicolasprof.com/metacritic-widget/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SimplePreloader for Animator</title>
		<link>http://blog.nicolasprof.com/simplepreloader-for-animator</link>
		<comments>http://blog.nicolasprof.com/simplepreloader-for-animator#comments</comments>
		<pubDate>Thu, 06 May 2010 17:05:34 +0000</pubDate>
		<dc:creator>Nicolas Prof</dc:creator>
				<category><![CDATA[Опыт]]></category>
		<category><![CDATA[Эксперименты]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://blog.nicolasprof.com/?p=510</guid>
		<description><![CDATA[Специально для людей, которые не очень «дружат» с AS3. Сделал простенький preloader. Ради интереса воспользовался ByteTween. Все что нужно, это иметь под рукой preloader.fla, в котором, на сцене должен находиться MovieClip, будущий preloader. Preloader может состоять из 100 фреймов, каждый фрейм соответствует проценту загрузки, а так же может содержать текстовое поле (Dynamic) с именем &#8216;txt&#8217;, [...]]]></description>
			<content:encoded><![CDATA[<p>Специально для людей, которые не очень «дружат» с AS3. Сделал простенький preloader.<br />
Ради интереса воспользовался ByteTween.</p>
<p>Все что нужно, это иметь под рукой preloader.fla, в котором, на сцене должен находиться MovieClip, будущий preloader.<br />
Preloader может состоять из 100 фреймов, каждый фрейм соответствует проценту загрузки, а так же может содержать текстовое поле (Dynamic) с именем &#8216;txt&#8217;, для отображения статуса загрузки.<br />
Все что нужно произвести, это небольшие изменения в файле Settings.as, где нужно указать путь к файлу, который нужно загружать, если preloader.swf и загружаемый файл находятся в одной папке, то просто укажите название файла. А так же в Settings.as, необходимо указать имя MovieClip preloader&#8217;а, находящегося на сцене. По умолчанию, &#8216;stagePreloader&#8217;.</p>
<p><a href="http://blog.nicolasprof.com/wp-content/plugins/download-monitor/download.php?id=13" title="Simple Preloader for Animator Source Files"><strong>Download Source Files</strong></a> </p>
<p>P.S.<br />
ByteTween ужасный Tween Engine, не пользуйтесь им, в серьезных проектах, он не стоит сэкономленных 1,5кб.<br />
Старался максимально доходчиво написать&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nicolasprof.com/simplepreloader-for-animator/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Quadratic B?zier &#8211; Segment</title>
		<link>http://blog.nicolasprof.com/quadratic-bezier-segment</link>
		<comments>http://blog.nicolasprof.com/quadratic-bezier-segment#comments</comments>
		<pubDate>Fri, 15 Jan 2010 20:13:28 +0000</pubDate>
		<dc:creator>Nicolas Prof</dc:creator>
				<category><![CDATA[Эксперименты]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Bezier]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Math]]></category>

		<guid isPermaLink="false">http://blog.nicolasprof.com/?p=459</guid>
		<description><![CDATA[Сейчас работаю над еще одним очень важным компонентом пользовательского интерфейса &#8211; подсказка (Tooltip). Так как компонент будет поддерживать закругление углов (Rounded corners), необходимо разработать полноценную логику рисования части кривой Безье, после пересечения с «усиком» подсказки. Смотреть в действии P.S. Всегда хотел иметь компонент такого рода под рукой. Так что, PROFGUI в скором времени обзаведется 5-ым [...]]]></description>
			<content:encoded><![CDATA[<p>Сейчас работаю над еще одним очень важным компонентом пользовательского интерфейса &#8211; подсказка (Tooltip).<br />
Так как компонент будет поддерживать закругление углов (Rounded corners), необходимо разработать полноценную логику рисования части кривой Безье, после пересечения с «усиком» подсказки.</p>
<p><a href="/f/testBezier.swf" rel="shadowbox;height=400;width=618" title="Quadratic B?zier - Segment">Смотреть в действии</a></p>
<p>P.S.<br />
Всегда хотел иметь компонент такого рода под рукой. Так что, PROFGUI в скором времени обзаведется 5-ым компонентом.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nicolasprof.com/quadratic-bezier-segment/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PathFinder : Demo</title>
		<link>http://blog.nicolasprof.com/pathfinder-demo</link>
		<comments>http://blog.nicolasprof.com/pathfinder-demo#comments</comments>
		<pubDate>Sun, 03 Jan 2010 09:02:38 +0000</pubDate>
		<dc:creator>Nicolas Prof</dc:creator>
				<category><![CDATA[Эксперименты]]></category>
		<category><![CDATA[A-Star]]></category>
		<category><![CDATA[Algorithm]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Dijkstra]]></category>
		<category><![CDATA[PathFinder]]></category>

		<guid isPermaLink="false">http://blog.nicolasprof.com/?p=409</guid>
		<description><![CDATA[Предлагаю вашему вниманию, собственную реализацию вспомогательного framework по обнаружению минимального пути в графе. На данном этапе разработки, PathFinder, поддерживает два алгоритма: алгоритм Дейкстры и «А» звезда. Алгоритмы изрядно изменены, для максимальной совместимости с framework, за основу взяты лишь идеи этих алгоритмов. Достоинства и недостатки реализованных алгоритмов. Алгоритм Дейкстры: + точное обнаружение минимально пути в графах [...]]]></description>
			<content:encoded><![CDATA[<p>Предлагаю вашему вниманию, собственную реализацию вспомогательного framework по обнаружению минимального пути в графе. На данном этапе разработки, PathFinder, поддерживает два алгоритма: алгоритм Дейкстры и «А» звезда. Алгоритмы изрядно изменены, для максимальной совместимости с framework, за основу взяты лишь идеи этих алгоритмов. </p>
<p>Достоинства и недостатки реализованных алгоритмов.</p>
<p>Алгоритм Дейкстры:<br />
+ точное обнаружение минимально пути в графах любой сложности;<br />
+ позволяет обнаруживать путь в сложных/запутанных графах;<br />
- в 3 раза медленнее, чем алгоритм «А» звезда;</p>
<p>Алгоритм «А» звезда:<br />
+ быстрый метод обнаружения пути;<br />
+ идеально подходит для графов с принципом построения как у «королевского» графа;<br />
- некорректно находит путь в сложных/запутанных графах;</p>
<p><a href="/f/pathfinder_interactivedemo.swf" rel="shadowbox;height=440;width=618" title="PathFinder - Demo">Смотреть в действии</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nicolasprof.com/pathfinder-demo/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Tips &amp; Tricks 3</title>
		<link>http://blog.nicolasprof.com/tips-tricks-3</link>
		<comments>http://blog.nicolasprof.com/tips-tricks-3#comments</comments>
		<pubDate>Mon, 07 Dec 2009 20:05:26 +0000</pubDate>
		<dc:creator>Nicolas Prof</dc:creator>
				<category><![CDATA[Опыт]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Papervision]]></category>

		<guid isPermaLink="false">http://blog.nicolasprof.com/?p=302</guid>
		<description><![CDATA[Papervision: При использовании 3Д на сайте, в 90% случаев необходимы 3D объекты в масштабе 1:1 к 2D объектам. В последнем проекте необходимо было сделать куб как элемент навигации, при этом текстуры на гранях не должны были масштабироваться: [as] _camera.z = (_camera.zoom &#8211; 1) * _camera.focus + _cubeSide * 0.5; [/as] куб находится в нулевых координатах. [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>
Papervision: При использовании 3Д на сайте, в 90% случаев необходимы 3D объекты в масштабе 1:1 к 2D объектам. В последнем проекте необходимо было сделать куб как элемент навигации, при этом текстуры на гранях не должны были масштабироваться:<br />
[as]<br />
_camera.z = (_camera.zoom &#8211; 1) * _camera.focus + _cubeSide * 0.5;<br />
[/as]<br />
куб находится в нулевых координатах.
</li>
<li>
Если есть XML дерево, в котором, одно и тоже XML property может присутствовать не во всех элементах дерева. И при применении фильтра:<br />
[as]<br />
myXML..item.(@id == someID)<br />
[/as]<br />
вы получаете ReferenceError о том, что переменная @id не определена. Используйте другой фильтр:<br />
[as]<br />
myXML..item.(attribute(&#8216;id&#8217;) == someID)<br />
[/as]
</li>
<li>
При разработке сайта, на котором будет функционал требующий работы с SharedObject, приходится поверять логику работы, когда человек впервые на сайте, и не только. Самый простой способ, это удалить файл .sol. Если вы думаете, что очистка кэша в браузере поможет вам, то вы ошибаетесь. Так же вы конечно можете сделать программную кнопку, при нажатии на которую, будет происходить удаление SharedObject. Но все же, пару раз удалить файл из системы, как по мне, проще. Более подробно, где их искать в различных системах, можно почитать в <a href="http://en.wikipedia.org/wiki/Local_Shared_Object">Wikipedia</a>
</li>
<li>
Timer отрабатывает не сразу после вызова метода start(), а лишь через значение delay, которое вы указали в конструкторе. Что бы заставить отработать сразу, правильнее всего сделать вот так:<br />
[as]<br />
_someTimer.dispatchEvent(new TimerEvent(TimerEvent.TIMER));<br />
_someTimer.start();<br />
[/as]</p>
<p>[as]<br />
this.someTimerListener(null);<br />
[/as]<br />
Вызвать сразу listener, плохо тем, что вы не сможете использовать updateAfterEvent
</li>
<li>
Маска с поддержкой прозрачности с помощью BlendMode. Хорошая вещь, как для программистов, когда требуется создать полупрозрачную маску, и при этом контент под маской анимируется, так и для аниматоров, так как не нужно никакого кода.<br />
Техника очень проста:<br />
есть контейнер в котором все объекты, маска и содержимое, которое нужно поместить под маску. Для этого контейнера устанавливаем BlendMode.LAYER.<br />
[as]<br />
_container.blendMode = BlendMode.LAYER;<br />
[/as]<br />
Все размещается по слоям. Маска обязательно находится выше содержимого. Для маски устанавливаем BlendMode.ALPHA.<br />
[as]<br />
_gradMask.blendMode = BlendMode.ALPHA;<br />
[/as]<br />
Если необходимо маскировать содержимое выходящее за пределы маски, создается еще одна маска, и уже привычным способом применяется к содержимому<br />
[as]<br />
_content.mask = _mask;<br />
[/as]</p>
<p>В итоге, все будет выглядеть где то так:<br />
[as]<br />
_container.addChild(_content);<br />
_container.addChild(_gradMask);<br />
_container.addChild(_mask);</p>
<p>_gradMask.mouseEnabled = false;<br />
_gradMask.blendMode = BlendMode.ALPHA;<br />
_container.blendMode = BlendMode.LAYER;<br />
_content.mask = _mask;<br />
[/as]</p>
<p>P.S.<br />
Более подробно для аниматоров. Создаем Movieclip, меняем ему BlendMode на Layer, помещаем в него 3 Movieclip&#8217;a: Нижний слой &#8211; Содержимое, Средний слой &#8211; маска, делаем ее маской для содержимого, Верхний слой &#8211; полупрозрачная маска, меняем ей BlendMode на Alpha (не нужно полупрозрачную маску совать под маску, или пытаться ее тоже сделать маской).</p>
<p>P.P.S.<br />
Если кто то всю жизнь пользовался только таким способом с помощью BlendMode, то для вас есть более простой способ, который отлично подходит для статического содержимого, к примеру текст.<br />
[as]<br />
_mask.cacheAsBitmap = true;<br />
_content.cacheAsBitmap = true;<br />
_content.mask = _mask;<br />
[/as]</p>
<p>Те же кто думал, что нужно BlendMode + cacheAsBitmap, то исправляйте код. Разве что вы могли использовать cacheAsBitmap для сложного вектора.
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.nicolasprof.com/tips-tricks-3/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Powered by Alternativa3D</title>
		<link>http://blog.nicolasprof.com/powered-by-alternativa3d</link>
		<comments>http://blog.nicolasprof.com/powered-by-alternativa3d#comments</comments>
		<pubDate>Thu, 02 Jul 2009 15:30:15 +0000</pubDate>
		<dc:creator>Nicolas Prof</dc:creator>
				<category><![CDATA[Эксперименты]]></category>
		<category><![CDATA[Alternativa3D]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Away3D]]></category>
		<category><![CDATA[Engine]]></category>
		<category><![CDATA[Papervision]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://blog.nicolasprof.com/?p=292</guid>
		<description><![CDATA[Реализация моего портфолио прошла долгий и тернистый путь, от маленькой трешовой флешки с кровью и рваной бумагой с звуками из игры «Носферату», до достойного 3D приложения. Первая 3D реализация использовала Papervision Great White Alpha, т.е. самая первая и сырая версия Papervision 2.0. Движек выдавал в среднем 24 fps на «игровом» компьютере. Следующая версия портфолио уже [...]]]></description>
			<content:encoded><![CDATA[<p>Реализация моего портфолио прошла долгий и тернистый путь, от маленькой трешовой флешки с кровью и рваной бумагой с звуками из игры «Носферату», до достойного 3D приложения.<br />
Первая 3D реализация использовала Papervision Great White Alpha, т.е. самая первая и сырая версия Papervision 2.0. Движек выдавал в среднем 24 fps на «игровом» компьютере. Следующая версия портфолио уже использовала Away3D, интерактивность немножко прихрамывала, и API несильно отличалось, и все так же была возможность использовать Sprite материалы. Так же, кубики уже не вращались все время, а только когда пользователь использовал интерактивные возможности, т.е. сцена рендерилась при изменениях. FPS при рендеринге все так же «проседало».</p>
<p>И вот 4.0 версия портфолио, которая использует Alternativa3D. Вся навигация на сайте построена на мыши: левая, правая клавиши и колесико. Пропал МР3 плеер. На сайте два режима навигации, как вам идея? Почему не предоставить пользователю несколько режимов навигации, и пусть он выбирает более удобный для него. Так и появилась альтернативная навигация.<br />
Производительность у нового движка отличная. Разработчики создали свою отображаемую модель, начав все с нуля (Object3D extends Object). Все бы хорошо, но вот очень нехватает параметра alpha и visible. Так же есть некоторые косяки, после масштабирования объектов, иногда начинают появляться артефакты в виде дополнительных треугольников на поверхности. Так же есть баг с рендерингом текстуры: если объект масштабируется, при этом происходит анимация вершин, и все это происходит за видом камеры, то текстуры не обновляются, и имеем обычный белый объект. Из всех 3-ёх 3D движков, Alternativa3D имеет самый «приятный» API и самую высокую производительность. Если разработчики еще добавят возможность использования DisplayObjectContainer как текстуры, то это будет самый лучший движек для создания Pure 3D Flash сайтов.</p>
<p>P.S.<br />
Посвящается RSS Reader&#8217;ам.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nicolasprof.com/powered-by-alternativa3d/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

