<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-3035850238326661501</id><updated>2009-10-30T12:54:39.656+04:00</updated><title type='text'>nanoFlex.e.r</title><subtitle type='html'>It's all about flex...and even little more</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://nanoflexer.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3035850238326661501/posts/default'/><link rel='alternate' type='text/html' href='http://nanoflexer.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Buran</name><uri>http://www.blogger.com/profile/06706565293093644403</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3035850238326661501.post-3131537215114211760</id><published>2009-10-30T11:46:00.005+04:00</published><updated>2009-10-30T12:54:39.668+04:00</updated><title type='text'>Попугаи сопротивляются!!!</title><content type='html'>Признаюсь: в пылу осенней упячки я совсем почти забросил своих попугаев (портирование haxe+neash на WinMo). Уж и адоб собирается полноценный флекс под мобилы выпустить до нового года, и QT выпустило 4.6.beta типа тоже мега оптимизированную...&lt;br /&gt;&lt;br /&gt;А у меня статус такой:&lt;br /&gt;1. Собрал таки gc (garbage collector испльзуемый в недрах nekovm) под WinMobile.&lt;br /&gt;2. Собрал саму nekovm под WinMo&lt;br /&gt;3. Поковырялся над портированием UIComponent на haxe....там ооочень конечно много чего надо будет дописывать.&lt;br /&gt;&lt;br /&gt;вот собственно и всё...теперь думаю чо дальше крячить hxcpp или sdl.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3035850238326661501-3131537215114211760?l=nanoflexer.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nanoflexer.blogspot.com/feeds/3131537215114211760/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3035850238326661501&amp;postID=3131537215114211760' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3035850238326661501/posts/default/3131537215114211760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3035850238326661501/posts/default/3131537215114211760'/><link rel='alternate' type='text/html' href='http://nanoflexer.blogspot.com/2009/10/blog-post.html' title='Попугаи сопротивляются!!!'/><author><name>Buran</name><uri>http://www.blogger.com/profile/06706565293093644403</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08641959548441155424'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3035850238326661501.post-8933948683868207722</id><published>2009-09-21T19:42:00.003+05:00</published><updated>2009-09-21T22:44:26.429+05:00</updated><title type='text'>Странности больших чисел</title><content type='html'>Поспорили тут недавно с товарищем. Товарищ - жОский и многоопытный подмобило-геймо-писатель. Так сложилось, что посадили его в срочном порядке за флекс. И поставили задачу: отрисовывать &lt;span style="font-weight:bold;"&gt;50.000&lt;/span&gt; статических объектов. И он, ничтоже сумняшися, забубенил это самым ядерным способом. Понаписал кучу своих (а по сути абстрактно-платформенных) классов, которые в итоге всё дампят на главную битмапку. Я не сомневался что это будет работать быстро, я засомневался в целесообразности этого подхода относительно шейпов.(ну мы же цивилизованные люди, специально же для нас делали объектную модель и всё такое)&lt;br /&gt;&lt;br /&gt;Стал ставить эксперименты. Флекс, аппликейшин, спрайт-родитель  на весь экран и 50.000 дочерних шейпов. mouseChildren=false. Всё умерло. Машина - Windows7,8гигов памяти, 4 ядра. Заработало всё где-то на &lt;span style="font-weight:bold;"&gt;30.000&lt;/span&gt; шейпов. Добавил возможность драгать по экрану родительский спрайт. Умирает как только начинаешь драгать.Т.е. если тащить ме-е-едленно, то фпс приличный. А если дёргать резко, когда мышка постоянно над разными местами этого "борща" из шейпов скачет - всё, пиши пропало. Ставлю 10.000 шейпов - всё опять летает, с драгом. 57 Fps (из 60 возможных). Сделал 4 родительских спрайта, каждый на четверть экрана, в каждом по &lt;span style="font-weight:bold;"&gt;10.000&lt;/span&gt; шейпов. Т.е. в сумме на экране &lt;span style="font-weight:bold;"&gt;40.000&lt;/span&gt; шейпов. 57 fps. &lt;br /&gt;&lt;br /&gt;Там в плеере где-то вшита константа? :))) Или алгоритм такой, что до 10.000 чайлдов он работает быстро-быстро, а потом, резко так, включается ЭКСПОНЕНТА? или чо аще? а?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3035850238326661501-8933948683868207722?l=nanoflexer.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nanoflexer.blogspot.com/feeds/8933948683868207722/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3035850238326661501&amp;postID=8933948683868207722' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3035850238326661501/posts/default/8933948683868207722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3035850238326661501/posts/default/8933948683868207722'/><link rel='alternate' type='text/html' href='http://nanoflexer.blogspot.com/2009/09/blog-post_21.html' title='Странности больших чисел'/><author><name>Buran</name><uri>http://www.blogger.com/profile/06706565293093644403</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08641959548441155424'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3035850238326661501.post-3027539742281803450</id><published>2009-09-08T23:25:00.002+05:00</published><updated>2009-09-08T23:34:15.857+05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex4'/><category scheme='http://www.blogger.com/atom/ns#' term='ComplexRectangle'/><title type='text'>ComplexRectangle во Flex4</title><content type='html'>Разбираюсь с 4м Флексом. В &lt;span style="font-weight:bold;"&gt;FXG&lt;/span&gt; всё до боли аналогично &lt;span style="font-weight:bold;"&gt;Degraf'е&lt;/span&gt;. Но один из самых полезных для меня примитивов - &lt;span style="font-weight:bold;"&gt;RoundedRectangleComplex&lt;/span&gt; отсутствует как класс &lt;small&gt;(прямоугольник у которого можно задавать отдельно радиус каждого уголка)&lt;/small&gt;. Спасибо &lt;a href="http://www.yapiodesign.com/blog/2009/01/28/fxg-complex-rectangle-experiment/"&gt;товарищу&lt;/a&gt;, спас! Спасибо ему огромное.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3035850238326661501-3027539742281803450?l=nanoflexer.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nanoflexer.blogspot.com/feeds/3027539742281803450/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3035850238326661501&amp;postID=3027539742281803450' title='Комментарии: 3'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3035850238326661501/posts/default/3027539742281803450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3035850238326661501/posts/default/3027539742281803450'/><link rel='alternate' type='text/html' href='http://nanoflexer.blogspot.com/2009/09/complexrectangle-flex4.html' title='ComplexRectangle во Flex4'/><author><name>Buran</name><uri>http://www.blogger.com/profile/06706565293093644403</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08641959548441155424'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3035850238326661501.post-8213572046898584684</id><published>2009-09-06T14:58:00.012+05:00</published><updated>2009-09-10T11:09:55.727+05:00</updated><title type='text'>Свобода попугаев. Часть 1.</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Часть 1.&lt;/span&gt;&lt;br /&gt;Рассказ о том, как я впервые компилил haxe-приложения в исполняемый файл(exe).&lt;br /&gt;Дело было под Vista 32 bit.&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt; Сначала я скачал и установил &lt;a href="http://haxe.org/file/hxinst-win.exe"&gt;haXe&lt;/a&gt;. По ходу установки соглашаемся на установку Neko. &lt;small&gt;[под Windows7 64 bit устанавливаться он не захотел, а вот под Vista-32 встал нормально]&lt;/small&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Далее я поставил &lt;a href="http://www.flashdevelop.org/downloads/releases/FlashDevelop-3.0.3-RTM.exe"&gt;FlashDevelop&lt;/a&gt; &lt;/li&gt;&lt;br /&gt;&lt;li&gt; На странице приветствия обнаружил &lt;b&gt;New Project&lt;/b&gt;. Выбрал &lt;b&gt;HaXe -&gt; C++ Project&lt;/b&gt;. Ввёл имя проекта: &lt;code&gt;MyTestProject&lt;/code&gt;. Поставил галку &lt;b&gt;Create directory for project&lt;/b&gt;. Получил сгенерённую болванку проекта. &lt;/li&gt;&lt;br /&gt;&lt;li&gt; Открывыю &lt;b&gt;src/Main.hx&lt;/b&gt;. Вижу там функцию &lt;code&gt;main&lt;/code&gt;. Пишу в неё:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;flash.Lib.Init("Test", 800, 600, false, true); &lt;br /&gt;flash.Lib.SetBackgroundColour(0xffffff); &lt;br /&gt;var sprite= new Sprite();&lt;br /&gt;sprite.graphics.beginFill(0x00ff00,1);&lt;br /&gt;sprite.graphics.drawRect(10,20,30,40);&lt;br /&gt;sprite.graphics.endFill();  &lt;br /&gt;flash.Lib.current.addChild(sprite);&lt;br /&gt;flash.Lib.Run(); &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;При этом в импортах получилось два package: &lt;br /&gt;&lt;code&gt;&lt;br /&gt;import cpp.Lib;&lt;br /&gt;import flash.display.Sprite;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Жму &lt;span style="font-weight:bold;"&gt;F5&lt;/span&gt;. Получаю сообщение об ошибке: &lt;small&gt; You can't access the flash package with current compilation flags (for flash.display.Sprite) &lt;/small&gt;. Хм. Грубо говоря это означает: &lt;small&gt;"Фигли ты флэшовые пэкэджи используешь в нефэлшовом проекте"&lt;/small&gt;. Та-ак. Сейчас буду давать адекватный, но ассимметричный ответ на данное заявление. &lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Подключаю билиботеки &lt;code&gt;neash&lt;/code&gt; и &lt;code&gt;nme&lt;/code&gt;, которые будут "эмулировать" флэш плеер. Сначала устанавливаю их. Захожу в папку установки haxe &lt;small&gt;(по умолчанию это Program files/Motion-Tween/haxe/)&lt;/small&gt; и запускаю оттуда &lt;code&gt;haxelib.exe install nme&lt;/code&gt;. Потом &lt;code&gt;haxelib.exe install neash&lt;/code&gt;. И в заключение &lt;code&gt;haxelib.exe install hxcpp&lt;/code&gt;. Скачались и установились соответствующие библиотеки. Далее подключаю библиотеки к нашему проекту. Для этого захожу в &lt;span style="font-weight:bold;"&gt;FlashDevelop-&gt;Project-&gt;Properties-&gt;Compiler options&lt;/span&gt;. Тыкаю в &lt;span style="font-weight:bold;"&gt;Libraries&lt;/span&gt; и в открывшемся EditBox'е пишу две строки: &lt;br /&gt;&lt;code&gt; &lt;br /&gt;neash&lt;br /&gt;nme&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Теперь торжественно сообщаю компилятору, что он был в корне неправ. В этом же диалоге &lt;small&gt;(FlashDevelop-&gt;Project-&gt;Properties-&gt;Compiler options)&lt;/small&gt; в &lt;span style="font-weight:bold;"&gt;Additional compiler options&lt;/span&gt; пишу две строки:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;--remap flash:neash&lt;br /&gt;--remap neko:cpp&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Жму &lt;span style="font-weight:bold;"&gt;F5 &lt;/span&gt;с надеждой скомпилить-таки проект. Снова ошибка. Но в папочке ./bin/src нагенерировалась куча исходников. А что за ошибка? Не найден cl.exe? Ага, т.е. &lt;span style="font-weight:bold;"&gt;FlashDevelop&lt;/span&gt; попытался запустить внешний компилятор (у меня это Microsoft-компилятор от &lt;span style="font-weight:bold;"&gt;VisualStudio&lt;/span&gt; 2008), но так как окружение не настроено - из этого ничего не вышло. Будем настраивать.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Настройка заключается в том, чтобы прописать в переменные окружения все пути для бинарников, инклюдов и библиотек необходимых для компиляции cpp приложения из командной строки. Самый простой вариант устроить это - залезть в файл &lt;span style="font-weight:bold;"&gt;vsvars32.bat&lt;/span&gt; &lt;small&gt;(лежит в Program files/Miscrosoft Visual Studio 8(или 9)/Common7/Tools)&lt;/small&gt; и скопировать пути из строчек &lt;code&gt;@set PATH=&lt;/code&gt;, &lt;code&gt;@set INCLUDE=&lt;/code&gt; и &lt;code&gt;@set LIB=&lt;/code&gt; в переменные среды PATH, INCLUDE и LIB соответственно&lt;small&gt; (в Vista я это делал через Панель управдения-&gt;Система-&gt;Дополнительные параметры системы-&gt;Переменные среды)&lt;/small&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Вот оно! Вижу зелёный квадратик! Ура! :))&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;P.S.&lt;/span&gt;&lt;br /&gt;Для тех у кого нету установленного VisualStudio, &lt;span style="font-weight:bold;"&gt;Exey&lt;/span&gt; в комментах запостил план Б. За что и выражаю ему благодарность.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3035850238326661501-8213572046898584684?l=nanoflexer.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nanoflexer.blogspot.com/feeds/8213572046898584684/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3035850238326661501&amp;postID=8213572046898584684' title='Комментарии: 8'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3035850238326661501/posts/default/8213572046898584684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3035850238326661501/posts/default/8213572046898584684'/><link rel='alternate' type='text/html' href='http://nanoflexer.blogspot.com/2009/09/1.html' title='Свобода попугаев. Часть 1.'/><author><name>Buran</name><uri>http://www.blogger.com/profile/06706565293093644403</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08641959548441155424'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3035850238326661501.post-1187984843103914866</id><published>2009-09-04T19:43:00.019+05:00</published><updated>2009-09-05T01:14:23.429+05:00</updated><title type='text'>Свобода попугаев. Предисловие.</title><content type='html'>Приветствую всех!&lt;br /&gt;Сегодня начал практически ковыряться в &lt;a href="http://haxe.org"&gt;haXe&lt;/a&gt; и решил параллельно писать заметки по этому поводу.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;Предисловие.&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://haxe.org/doc/intro"&gt;Вводную&lt;/a&gt; про &lt;span style="font-weight:bold;"&gt;haXe&lt;/span&gt; я давать не буду. Я лучше расскажу, что меня сподвигло на его изучение. Однажды, после долгих лет GUЯния на разных платформах, языках и фреймворках, я встретил &lt;b&gt;Adobe Flex&lt;/b&gt;. С тех пор прошло уже два года. Тогда я только предполагал, что при всех своих недостатках &lt;b&gt;Flash+Flex framework&lt;/b&gt; это &lt;u&gt;лучшее&lt;/u&gt;, что есть для GUI-писателя. Сейчас я в этом уверен. &lt;br /&gt;&lt;p&gt;Мысль о вытаскивании &lt;span style="font-weight:bold;"&gt;Flash\Flex&lt;/span&gt;-приложения &lt;small&gt;(в качестве красивой морды)&lt;/small&gt; за пределы его песочницы посещала меня давно, равно как и регулярно.&lt;small&gt;(В предыдущих моих постах слышны отголоски этих посещений :))&lt;/small&gt; Лейтмотивом мотивации являлось: "Какое было бы счастье забыть про &lt;span style="font-weight:bold;"&gt;Win32\&lt;a href="http://ru.wikipedia.org/wiki/Microsoft_Foundation_Classes"&gt;MFC&lt;/a&gt;\&lt;a href="http://www.wxwidgets.org/"&gt;wxWidgets&lt;/a&gt;\&lt;a href="http://en.wikipedia.org/wiki/Windows_Forms"&gt;WinForms&lt;/a&gt;\&lt;a href="http://qt.nokia.com/products/"&gt;Qt&lt;/a&gt;\Gtk\jQuery&lt;/span&gt; и прочее и прочее". И вот оно &lt;small&gt;(счастье)&lt;/small&gt;, кажется, медленно, но верно надвигается. Вы спрашиваете причём тут &lt;span style="font-weight:bold;"&gt;haXe&lt;/span&gt;?&lt;br /&gt;&lt;p&gt;А вот причём: &lt;a href="http://ru.wikipedia.org/wiki/ECMA_Script"&gt;ECMAScript&lt;/a&gt;-образный язык haXe &lt;small&gt;(т.е. он похож на AS3\javascript)&lt;/small&gt; позволяет нам &lt;small&gt;(кроме всего прочего)&lt;/small&gt; компилить &lt;span style="font-weight:bold;"&gt;один и тот же&lt;/span&gt; исходник как в &lt;span style="font-weight:bold;"&gt;swf&lt;/span&gt;, так и в &lt;span style="font-weight:bold;"&gt;executable&lt;/span&gt; файл. Специально подчеркну, что &lt;span style="font-weight:bold;"&gt;исполняемый &lt;/span&gt;файл получается путём совершенно легальной компиляции промежуточного &lt;a href="http://ru.wikipedia.org/wiki/C%2B%2B"&gt;cpp&lt;/a&gt;-кода, &lt;small&gt;(полученного из haXe сорцов)&lt;/small&gt; и линковкой с &lt;a href="http://code.google.com/p/neash/"&gt;библиотеками &lt;/a&gt;хакса&lt;small&gt;(open-source между прочим)&lt;/small&gt;. На данный момент библиотеки имплементированы для 4х разных платформ: &lt;span style="font-weight:bold;"&gt;Win32&lt;/span&gt;, &lt;span style="font-weight:bold;"&gt;Linux&lt;/span&gt;, &lt;span style="font-weight:bold;"&gt;Mac &lt;/span&gt;и &lt;small&gt;(та-дам!)&lt;/small&gt; &lt;span style="font-weight:bold;"&gt;iPhone&lt;/span&gt;.&lt;br /&gt;Приведу кусок haxe-кода:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;class Application extends MovieClip&lt;br /&gt;{&lt;br /&gt; public var surface:Sprite;&lt;br /&gt;  &lt;br /&gt; public function new() &lt;br /&gt; {&lt;br /&gt;   super();&lt;br /&gt;   surface = new Sprite();&lt;br /&gt;   this.addChild(surface);&lt;br /&gt;   timer = new Timer(50);&lt;br /&gt;   timer.addEventListener(TimerEvent.TIMER, handlerTimer);&lt;br /&gt;   surface.addEventListener(MouseEvent.CLICK, handlerClick);&lt;br /&gt;   sprite.graphics.beginFill(0x00ff00, 0.5);&lt;br /&gt;   sprite.graphics.drawEllipse(20, 30, 25, 35);&lt;br /&gt;   sprite.graphics.endFill();&lt;br /&gt;   trace(width);&lt;br /&gt; }&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Ничего не напоминает? :) Этот код може быть скомпилен в &lt;span style="font-weight:bold;"&gt;swf&lt;/span&gt;. И этот же код &lt;span style="font-weight:bold;"&gt;БЕЗ  ИЗМЕНЕНИЙ&lt;/span&gt; компилится в EXE-шник (под виндой) и мало того, он ещё и работает! И для его работы никакой &lt;span style="font-weight:bold;"&gt;AdobeFlash-плеер&lt;/span&gt; не требуется! И в самом экзешнике ни про какого &lt;span style="font-weight:bold;"&gt;Adobe&lt;/span&gt; не знают и знать не хотят!!!  Всё, здесь у меня начинается истерика:)). &lt;br /&gt;&lt;p&gt;Теперь можно задать такой вопрос: "Ну и чо? Ну есть, ну компилится, ну EXE-шник, а в чём радость-то ... &lt;span style="font-weight:bold;"&gt;profit&lt;/span&gt; где?!?". Нету! :) Пока - нету. Но есть мысли и я их хочу проверить, и если в том будет хоть капля смысла - реализовать. Вот парочка, в качестве затравки:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Портануть neash под &lt;a href="http://ru.wikipedia.org/wiki/Windows_Mobile"&gt;WinMobile&lt;/a&gt; и посмотреть как оно будет вертеться там&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Портировать на haXe &lt;small&gt;(а значит и в native на разных плафтормах)&lt;/small&gt; его... &lt;a href="http://opensource.adobe.com/wiki/display/flexsdk/Flex+SDK"&gt;FLEX SDK&lt;/a&gt;! &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;blockquote&gt;Кстати, если первое сложить со вторым, то получаем единственный вменяемый GUI фреймворк под WinMobile. Краткий обзор существующих там фреймворков: .NET CF+WinForms = 20 Mb DLLек и просто "никакая" кастомизация контролов. Qt=15 Mb DLLек и неюзабельные тормоза. Остальное - дикий и беспощадный хардкодинг. А в случае успеха затеи мы имеем 3 Mb DLLек и предположительно хорошее быстродействие(хотя тут конечно бабушка надвое)&lt;/blockquote&gt; &lt;br /&gt;&lt;p&gt; Ну, это всё лирика. Переходим к практическим занятием. В следующей части расскажу как я настраивал &lt;a href="http://www.flashdevelop.org/wikidocs/index.php?title=Main_Page"&gt;FlashDevelop&lt;/a&gt; и окружение и как скомпилил первую пару &lt;b&gt;swf-exe&lt;/b&gt;. Спасибо за внимание.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3035850238326661501-1187984843103914866?l=nanoflexer.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nanoflexer.blogspot.com/feeds/1187984843103914866/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3035850238326661501&amp;postID=1187984843103914866' title='Комментарии: 5'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3035850238326661501/posts/default/1187984843103914866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3035850238326661501/posts/default/1187984843103914866'/><link rel='alternate' type='text/html' href='http://nanoflexer.blogspot.com/2009/09/blog-post.html' title='Свобода попугаев. Предисловие.'/><author><name>Buran</name><uri>http://www.blogger.com/profile/06706565293093644403</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08641959548441155424'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3035850238326661501.post-7200705481847255572</id><published>2009-01-19T22:59:00.005+04:00</published><updated>2009-01-19T23:05:32.134+04:00</updated><title type='text'>Merapi</title><content type='html'>Разобрался тут на днях с &lt;span style="font-weight:bold;"&gt;merapi&lt;/span&gt;. Чудес, к моему сожалению, не оказалось. Тоже сервер, тоже сокет, тоже порт. Поэтому, два экземпляра приложений использующих Merapi Bridge, без изменения порта работать не смогут, опять же потенциальные проблемы с фаерволлами\антивирусами ну и т.д. &lt;br /&gt;Никак не могу выделить время, чтобы разобраться с localConnection - всё-таки это самое красивое решение.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3035850238326661501-7200705481847255572?l=nanoflexer.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nanoflexer.blogspot.com/feeds/7200705481847255572/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3035850238326661501&amp;postID=7200705481847255572' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3035850238326661501/posts/default/7200705481847255572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3035850238326661501/posts/default/7200705481847255572'/><link rel='alternate' type='text/html' href='http://nanoflexer.blogspot.com/2009/01/merapi.html' title='Merapi'/><author><name>Buran</name><uri>http://www.blogger.com/profile/06706565293093644403</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08641959548441155424'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3035850238326661501.post-7240073419278409046</id><published>2008-09-26T10:02:00.010+05:00</published><updated>2008-10-05T00:45:52.512+05:00</updated><title type='text'>Запуск внешнего приложения из Adobe Air и другое interconnectivity</title><content type='html'>ДА, я подозревал, что &lt;strong&gt;AIR-приложение&lt;/strong&gt; не полноценно. Но я не знал, до какой степени! :). В нём нет ничего наподобии &lt;code&gt;shellexec&lt;/code&gt; или &lt;code&gt;exec&lt;/code&gt; и т.п. И это меня категорически огорчило. Потратив &lt;b&gt;3&lt;/b&gt; часа на изучение вопроса в интернете узнал следующее:&lt;br /&gt;&lt;br /&gt;&lt;li&gt; Да всё действительно &lt;em&gt;так плохо&lt;/em&gt;. И куча людей по всему миру ждёт решения этого вопроса.&lt;br /&gt;&lt;br /&gt;&lt;li&gt; Часть задач можно решить с помощью &lt;CODE&gt;navigateURL&lt;/CODE&gt; &lt;br /&gt;  Этим методом мы натравливаем браузер на локальный файл и &lt;small&gt;&lt;i&gt;(если браузер достаточно умный)&lt;/i&gt;&lt;/small&gt; он предложит открыть нам этот файл в дефолтном приложении&lt;small&gt;&lt;i&gt;(для данного типа файла)&lt;/i&gt;&lt;/small&gt; . &lt;br /&gt;Но тут все минусы на лицо: захотели Вы из &lt;strong&gt;AIR&lt;/strong&gt; открыть doc-овский файл (или экселевский), а он запускает браузер. Браузер,в свою очередь, открывается, думает маленько и выкидывает окошко: &lt;cite&gt;Тут мне вот такое файло подсунули, чо с ним делать? Сохранять или открывать штоле?&lt;/cite&gt;. &lt;br /&gt;  Не очень умный вопрос, если человек только что в приложении нажимал кнопку &lt;KBD&gt;"хочу &lt;em&gt;ОТКРЫТЬ&lt;/em&gt; этот файл"&lt;/KBD&gt;.  Ну и вообще, я бы не взялся гарантировать работы всей этой схемы на разных компах. А что делать если вам надо запустить &lt;strong&gt;batch-скрипт&lt;/strong&gt;? Браузер(&lt;em&gt;firefox&lt;/em&gt;) даже вопросов не задаёт - просто открывает вкладку с текстом скрипта вместо того, чтобы попытатся его запустить. И я его (&lt;em&gt;firefox&lt;/em&gt;) понимаю :)&lt;br /&gt;&lt;br /&gt;&lt;li&gt; В проджектированных(&lt;strong&gt;projector&lt;/strong&gt;) swf-ках для этих целей &lt;small&gt;&lt;i&gt;(во всяком случае какое-то время назад)&lt;/i&gt;&lt;/small&gt; юзалась волшебная функция &lt;code&gt;fscommand&lt;/code&gt;. В &lt;strong&gt;AIR&lt;/strong&gt; она &lt;em&gt;не работает&lt;/em&gt;, хотя и компилится. Проверял сам. Если я не прав и чего-то не доглядел, поправьте.&lt;br /&gt;&lt;br /&gt;&lt;li&gt; Для взаимодействия с конкретно &lt;em&gt;Java&lt;/em&gt; сейчас пишется некое чудо по имени &lt;strong&gt;Merapi&lt;/strong&gt;. Офсайт &lt;a href="http://www.merapiproject.net/" target="_blank"&gt;здесь&lt;/a&gt;. Эти ребята хотят забить на &lt;code&gt;swing UI&lt;/code&gt; и использовать &lt;strong&gt;AIR&lt;/strong&gt; в качестве фронтенда приложения, а начинку оставить Java'вскую. Мне это было интересно, потому что как раз с джавой и надо было скооперироватся. Но до конца я ещё не разобрался с этой темой. Разберусь - напишу.&lt;br /&gt;&lt;br /&gt;P.S. Как правильно заметил &lt;b&gt;nuba&lt;/b&gt; &lt;b&gt;Merapi&lt;/b&gt; это реинкарнация &lt;b&gt;Artemis project&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt; Есть ещё штука под названием &lt;strong&gt;Shu плеер&lt;/strong&gt;. &lt;br /&gt;Она оборачивает &lt;strong&gt;AIR&lt;/strong&gt;-приложение в собственый загрузчик, который интегрируется c &lt;em&gt;AirRuntime&lt;/em&gt;, т.е. на выходе вы получаете просто экзешник, которому ничего не надо, и пользователь даже не будет знать что такое &lt;strong&gt;AIR&lt;/strong&gt; и его &lt;strong&gt;Runtime&lt;/strong&gt;. Кроме того, он добавляет как раз тот функционал который мне был нужен, а именно: запуск внешних приложений с коллбэком по результату их выполнения. &lt;br /&gt;Кроме того, есть возможность написать свою &lt;code&gt;win32 dll&lt;/code&gt;, функции которой будут доступны в &lt;strong&gt;AIR&lt;/strong&gt; приложении. А это, по сути, уже полная свобода действий внутри операционки&lt;small&gt;&lt;i&gt;(виндовой правда)&lt;/i&gt;&lt;/small&gt;. &lt;br /&gt;Вот. Но! Cтоит это дело &lt;em&gt;500 баксов&lt;/em&gt; (или евро?). Это раз. И два. Я не смог всё это протестить &lt;small&gt;&lt;i&gt;(скачал бесплатную Try&amp;amp;Buy версию )&lt;/i&gt;&lt;/small&gt;. По каким-то там лицензионным заморочкам &lt;strong&gt;Shu&lt;/strong&gt; &lt;em&gt;не может&lt;/em&gt; включать в себя дистрибутив &lt;code&gt;AirRuntime&lt;/code&gt;, поэтому, при завёртывании приложения &lt;strong&gt;оно&lt;/strong&gt; как-то невнятно просит указать &lt;i&gt;"путь к air runtime"&lt;/i&gt;. Но какие бы я пути не указывал - ни один из них ему не нравился и процесс завершить не удавалось. Так я и не понял это баг или фича или лыжи не те или я...&lt;br /&gt;&lt;br /&gt;&lt;li&gt; &lt;big&gt;Та-дам!&lt;/big&gt; И вот оно моё решение &lt;small&gt;&lt;i&gt;(почЁрпнутое из остальных прочитанных статей)&lt;/i&gt;&lt;/small&gt;. Будем исопльзовать &lt;b&gt;сервер приложения&lt;/b&gt; Т.е. пишем безоконный &lt;b&gt;микросерверок&lt;/b&gt; слушающий какой-нить локальный порт и умеющий выполнять определенные команды. При установке приложения заменяем линк ярлыка, чтобы ярлык запускал не &lt;strong&gt;AIR-приложение&lt;/strong&gt;, а наш &lt;b&gt;микросерверок&lt;/b&gt;. &lt;b&gt;Серверок&lt;/b&gt; запускается, проверяет всё ли в порядке, и сам уже запускает &lt;strong&gt;AIR-приложение&lt;/strong&gt;. &lt;strong&gt;AIR-приложение&lt;/strong&gt;, когда ему надо что-то сделать, чего оно само не может - засылает в сокет просьбу о помощи, &lt;b&gt;микросерверок&lt;/b&gt; ловит и выполняет. Ну а дальше всё понятно. Так же можно вводить подтверждения, нотификации и т.д.&lt;br /&gt;На написание серверка в  C# у меня ушло &lt;em&gt;полчаса&lt;/em&gt;, as-класса для взаимодействия - &lt;em&gt;10 минут&lt;/em&gt;. Плюс отладка всего этого дела в связке. В итоге время было потрачено меньше, чем на чтение статей по вопросу :)) Что даёт такое решение? Да всё! :) Хочешь юзай .NET из Air, хочешь Java, коннекться к COM-порту, форматируй финчестер :))) и т.д.&lt;br /&gt;&lt;br /&gt;Если кому интересно могу все поделки повыкладывать .&lt;br /&gt;З.Ы.&lt;br /&gt;Выкладываю:&lt;br /&gt;1)&lt;a href="http://www.geocar.ru/files/SocketBridge.rar"&gt;С# сервер&lt;/a&gt;&lt;br /&gt;2) Пример посылки команды из AIR-приложения &lt;br /&gt;&lt;code&gt;   socket=new Socket();&lt;br /&gt;   socket.connect("localhost",7777);&lt;br /&gt;   socket.writeUTFBytes("$run myextapp.exe;");&lt;br /&gt;   socket.flush();&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id=":5y" class="ArwC7c ckChnd"&gt;&lt;wbr&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3035850238326661501-7240073419278409046?l=nanoflexer.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nanoflexer.blogspot.com/feeds/7240073419278409046/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3035850238326661501&amp;postID=7240073419278409046' title='Комментарии: 12'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3035850238326661501/posts/default/7240073419278409046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3035850238326661501/posts/default/7240073419278409046'/><link rel='alternate' type='text/html' href='http://nanoflexer.blogspot.com/2008/09/adobe-air-interconnectivity.html' title='Запуск внешнего приложения из Adobe Air и другое interconnectivity'/><author><name>Buran</name><uri>http://www.blogger.com/profile/06706565293093644403</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08641959548441155424'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3035850238326661501.post-5325297001946890619</id><published>2008-05-30T00:50:00.000+05:00</published><updated>2008-05-30T01:09:07.634+05:00</updated><title type='text'>secret place</title><content type='html'>Сегодня наткнулся на такую штуку: если позарез нужен доступ к какой-нибудь переменной родительского класса, а она вдруг inaccessible [обяъвлена как mx_internal] то...не надо отчаиваться! Метод есть! И вот какой:&lt;br /&gt;&lt;pre class="code"&gt;&lt;span class="category1"&gt;import&lt;/span&gt; mx.core.mx_internal;&lt;br /&gt;use namespace mx_internal;&lt;/pre&gt;&lt;br /&gt;всё собственно. Просто добавляете в начало файла эти строчки и путь открыт.&lt;br /&gt;Мне эти пассы руками понадобились в такой ситуации  - отнаследовал я свой класс от DataGridColumn'а и внутри него решил дотянуться до источника данных. Самый простой, на мой взгляд, метод был таким: DataGridColumn.owner.dataProvider. Но компилятор ругался: inaccessible var &lt;span style="font-weight: bold;"&gt;owner&lt;/span&gt;. При этом, в дебаггере, среди член-данных моего класса я  видел переменную owner, она была класса DataGrid, вобщем как раз то что надо. Полез в код DataGridColumn - так owner объявлен с неким префиксом &lt;span style="font-weight: bold;"&gt;mx_internal&lt;/span&gt;. Стало очень интересно: как же так,  дебаггеру можно, а мне нельзя. И что это за непонятный префикс. Ну и в итоге google выдал рецепт - вот эти самые две волшебные строчки. Я был несколько удивлён. Зато получилось. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3035850238326661501-5325297001946890619?l=nanoflexer.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nanoflexer.blogspot.com/feeds/5325297001946890619/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3035850238326661501&amp;postID=5325297001946890619' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3035850238326661501/posts/default/5325297001946890619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3035850238326661501/posts/default/5325297001946890619'/><link rel='alternate' type='text/html' href='http://nanoflexer.blogspot.com/2008/05/secret-place.html' title='secret place'/><author><name>Buran</name><uri>http://www.blogger.com/profile/06706565293093644403</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08641959548441155424'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry></feed>