<?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; Эксперименты</title>
	<atom:link href="http://blog.nicolasprof.com/category/exp/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>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>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 : Benchmark</title>
		<link>http://blog.nicolasprof.com/pathfinder-benchmark</link>
		<comments>http://blog.nicolasprof.com/pathfinder-benchmark#comments</comments>
		<pubDate>Mon, 04 Jan 2010 15:50:29 +0000</pubDate>
		<dc:creator>Nicolas Prof</dc:creator>
				<category><![CDATA[Эксперименты]]></category>
		<category><![CDATA[AS2]]></category>
		<category><![CDATA[PathFinder]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://blog.nicolasprof.com/?p=411</guid>
		<description><![CDATA[После внесения серьезных изменений в алгоритм «А» звезда (удалось отказаться полностью от списков, и тем самым операций splice), решил сделать тест производительности алгоритмов. На время влияет расстояние между начальной и конечной точками(длина пути). Смотреть в действии P.S. На практике, нерационально использовать алгоритм Дейкстры, где граф имеет вид сетки.]]></description>
			<content:encoded><![CDATA[<p>После внесения серьезных изменений в алгоритм «А» звезда (удалось отказаться полностью от списков, и тем самым операций splice), решил сделать тест производительности алгоритмов.<br />
На время влияет расстояние между начальной и конечной точками(длина пути).</p>
<p><a href="/f/pathfinder_benchmark.swf" rel="shadowbox;height=450;width=618" title="PathFinder - Benchmark">Смотреть в действии</a></p>
<p>P.S.<br />
На практике, нерационально использовать алгоритм Дейкстры, где граф имеет вид сетки.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nicolasprof.com/pathfinder-benchmark/feed</wfw:commentRss>
		<slash:comments>1</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>Fastest Iteration</title>
		<link>http://blog.nicolasprof.com/fastest-iteration</link>
		<comments>http://blog.nicolasprof.com/fastest-iteration#comments</comments>
		<pubDate>Sat, 26 Dec 2009 09:28:25 +0000</pubDate>
		<dc:creator>Nicolas Prof</dc:creator>
				<category><![CDATA[Эксперименты]]></category>

		<guid isPermaLink="false">http://blog.nicolasprof.com/?p=406</guid>
		<description><![CDATA[Небольшой наглядный тест, сравнения итераций. Очень много дискуссий в интернете по поводу, что та или иная итерация быстрее другой. Самое интересное, что при очень большом количестве итераций (1 000 000 000), разница между различными методиками For, полностью исчезает. Результаты теста при 1 000 000 000 итераций: 4103 ms 5340 ms 4087 ms 4089 ms 4090 [...]]]></description>
			<content:encoded><![CDATA[<p>Небольшой наглядный тест, сравнения итераций. Очень много дискуссий в интернете по поводу, что та или иная итерация быстрее другой.<br />
Самое интересное, что при очень большом количестве итераций (1 000 000 000), разница между различными методиками For, полностью исчезает.</p>
<p>Результаты теста при 1 000 000 000 итераций:</p>
<p>4103 ms<br />
5340 ms<br />
4087 ms<br />
4089 ms<br />
4090 ms<br />
4090 ms</p>
<p><a href="/f/testIter.swf" rel="shadowbox;height=280;width=350" title="Iterations Test">Смотреть в действии</a></p>
<p>P.S.<br />
Постарайтесь подобрать такое количество итераций, что бы время на тип итерации выходило в районе 500мс.<br />
На хорошем процессоре, это примерно 100 000 000 итераций.<br />
Так же нужно понимать, что самая медленная итерация, это когда в конструкции For, i и len имеют разные типы, к примеру int и uint, про Number вообще не стоит говорить.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nicolasprof.com/fastest-iteration/feed</wfw:commentRss>
		<slash:comments>1</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>
		<item>
		<title>Необъятный Blur</title>
		<link>http://blog.nicolasprof.com/neobyatnyj-blur</link>
		<comments>http://blog.nicolasprof.com/neobyatnyj-blur#comments</comments>
		<pubDate>Fri, 12 Jun 2009 12:06:43 +0000</pubDate>
		<dc:creator>Nicolas Prof</dc:creator>
				<category><![CDATA[Эксперименты]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Bitmap]]></category>
		<category><![CDATA[Blur]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[trick]]></category>

		<guid isPermaLink="false">http://blog.nicolasprof.com/?p=252</guid>
		<description><![CDATA[Были ли у вас случаи, когда ограничения Flash не позволяли использовать фильтр? Есть очень простой обходной путь. Если нам не разрешают применить фильтр к самому объекту, значит применим к его детям. Метод работает быстро, так как применение фильтра довольно таки быстрая операция. В этом можете убедиться в примере. Так же есть зависимость, что количество детей [...]]]></description>
			<content:encoded><![CDATA[<p>Были ли у вас случаи, когда ограничения Flash не позволяли использовать фильтр?<br />
Есть очень простой обходной путь. Если нам не разрешают применить фильтр к самому объекту, значит применим к его детям. Метод работает быстро, так как применение фильтра довольно таки быстрая операция. В этом можете убедиться в примере. Так же есть зависимость, что количество детей фильтруемого объекта прямо пропорционально кратности замедления процесса, т.е. если 100 детей, то время применения фильтра будет в 100 раз медленней. Вместо 10мс, будет 1сек при 10 000 итераций, согласитесь, что столько итераций в секунду в  работающем проекте невозможно, так что у нас в запасе хорошие резервы, и мы вполне вольны использовать такую технику с каким либо Tween движком.</p>
<p><a href="/f/demoBlur.swf" rel="shadowbox;height=300;width=500" title="Blur">Смотреть в действии</a></p>
<p>P.S.<br />
Кнопка Broke Holder, изменяет габариты спрайта на 5000 рх.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nicolasprof.com/neobyatnyj-blur/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Performance with Visible param and Display List</title>
		<link>http://blog.nicolasprof.com/performance-with-visible-param-and-display-list</link>
		<comments>http://blog.nicolasprof.com/performance-with-visible-param-and-display-list#comments</comments>
		<pubDate>Tue, 07 Apr 2009 19:20:39 +0000</pubDate>
		<dc:creator>Nicolas Prof</dc:creator>
				<category><![CDATA[Эксперименты]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://blog.nicolas.org.ua/?p=198</guid>
		<description><![CDATA[Очень давно хотел провести тест на предмет того, как влияет на производительность параметр visible, а так же добавление и удаление объекта из Display List&#8217;а. В тесте используется объект который имеет сложный вектор, тысячи точек. Объект можно удалять/добавлять в Display List, а так же запустить анимацию, и провести те же операции. После этого теста, очевидна польза [...]]]></description>
			<content:encoded><![CDATA[<p>Очень давно хотел провести тест на предмет того, как влияет на производительность параметр visible, а так же добавление и удаление объекта из Display List&#8217;а.<br />
В тесте используется объект который имеет сложный вектор, тысячи точек. Объект можно удалять/добавлять в Display List, а так же запустить анимацию, и провести те же операции.<br />
После этого теста, очевидна польза visible (освобождение памяти) параметра, удаление из Display List&#8217;а спасает лишь в случаи с анимацией (хотя и это было так же интересно, будет ли какая то нагрузка, если объекта нет в дисплей листе).</p>
<p><a href="/f/memoryTest.swf" rel="shadowbox;height=400;width=550" title="Performance Test">Смотреть в действии</a></p>
<p>P.S.<br />
Тот кто угадает что изображено в исходном элементе используемом для построения вектора, получит плюшку.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nicolasprof.com/performance-with-visible-param-and-display-list/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Reflect ver.2.0 &#8211; Extra Mirror</title>
		<link>http://blog.nicolasprof.com/reflect-ver20-extra-mirror</link>
		<comments>http://blog.nicolasprof.com/reflect-ver20-extra-mirror#comments</comments>
		<pubDate>Tue, 10 Mar 2009 16:35:54 +0000</pubDate>
		<dc:creator>Nicolas Prof</dc:creator>
				<category><![CDATA[Эксперименты]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[PROFReflect]]></category>

		<guid isPermaLink="false">http://blog.nicolas.org.ua/?p=105</guid>
		<description><![CDATA[После работы с классом отражения от AFComponents, стало очевидно чего не хватает в отличном отражении. Что мне понравилось в AFComponents варианте: отражение наследуется от спрайта, что дает пользователю возможность контролировать получаемый результат. Не понравилось, подход к созданию отражения, ну и реализация. Так же на практике, дизайнеры очень хотят видеть размытое отражение, что тоже необходимо учитывать. [...]]]></description>
			<content:encoded><![CDATA[<p>После работы с классом отражения от AFComponents, стало очевидно чего не хватает в отличном отражении. Что мне понравилось в AFComponents варианте: отражение наследуется от спрайта, что дает пользователю возможность контролировать получаемый результат. Не понравилось, подход к созданию отражения, ну и реализация. Так же на практике, дизайнеры очень хотят видеть размытое отражение, что тоже необходимо учитывать.</p>
<p>В итоге вышел следующий инструмент:</p>
<ul>
<li>Reflect наследуется от Sprite;</li>
<li>объект для отражения, может <strong>иметь различные модификаторы трансформации, scale, skew, rotate, так же совершенно не важно где находится registration point</strong>;</li>
<li>добавлен метод applyFilter, позволяет применять массив фильтров к Bitmap отражения;</li>
<li>добавлен class ReflectVars;</li>
</ul>
<p>Специально для демо выбрал героя by TemplateMonster, который был увеличен (ScaleX, ScaleY), а так же двигается вне стартовых значений габаритов Movieclip</p>
<p><a href='http://blog.nicolasprof.com/wp-content/uploads/2009/03/reflect2.rar'>Download &#8211; Reflect ver. 2.0</a><br />
<a href="/f/demoReflectDevil.swf" rel="shadowbox;height=400;width=300" title="Reflect ver.2.0">Смотреть в действии</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nicolasprof.com/reflect-ver20-extra-mirror/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

