Flex и RIA блоги



2010-03-12

19:50:00, Блог Fuzzle CMS
Fuzzle CMS 3.6 + новые виджеты-меню

Мы запустили очередную версию систему — Fuzzle CMS 3.6. Основные нововведения:

  • Для пользователей:
    • Новые эффекты для компонента — кнопки с текстом (см. здесь)
    • Поддержка в видеоблоке видео с YouTube;
    • Работа в текстовом редакторе клавиатурных сокращений:
      • Ctrl+B — жирный
      • Ctrl+I — курсив
      • Ctrl+U — подчеркивание
      • Ctrl+L — вставка текста Lorem ipsum :)
  • Для программистов:
    • Два новых компонента — FZTextButton и FZAbstractButton, предназначенных для упрощения разработки меню и любых виджетов, включающих в себя кнопки.

Кроме того, специально к этой версии мы подготовили специальный набор виджетов-меню, уже использующих преимущества нового API. Это сразу 3 вида меню: горизонтальное, вертикальное и вертикальное выпадающее (пример).

Эти виджеты будут доступны бесплатно (инсталляционный пакет можно скачать здесь); кроме того, немного позднее мы откроем их исходный код, чтобы вы свободно могли модифицировать их под свои собственные нужды.


16:48:28, Flash-разработка
Выбираем листалку страниц для Flex-проекта
С тех пор, как впервые мы увидели этот культовый гаджет PageFlip, созданный еще для 6й версии (а может и еще ранней) FP, немало воды утекло. Кстати, здесь есть ссылка на исходник на одну из старых версий.

Сейчас открылось множество сервисов для онлайн-публикации книг и журналов, в которых книги листаются именно по принципу PageFlip. Тема действительно популярная и по ней существует приличное количество наработок. Причем, в подавляющем большинстве, это некие готовые flash-движки, при помощи которых можно создавать книги вообще без участия flash-разработчика - одним лишь конфигурированием.
Нас интересуют наработки с открытым исходным кодом и желательно для Flex.

Итак, начинаем поиски.
  • Многие ссылки ведут сюда: http://www.quietlyscheming.com/blog/components/flexbook/.
    Движок FlexBook явно не нов - март 2007, хотя последний коммент в блоге датируется 2009м годом.
    Демка показывает возможности движка, а в контекстном меню flash есть ссылка на архив с исходным кодом.
    Исходный код поставляется в виде Flex-проекта, однако при импорте, FlexBuilder предупреждает о том, что версия SDK в проекте указана старая, а так же о том, что есть устаревшие свойства flex-компонентов. Кроме того, в настройках есть ссылка на не существующую библиотеку, но это лечится путем удаления некорректной строки из свойств проекта.
    Код компилируется и работает превосходно.
  • Следующий претендент: http://www.rubenswieringa.com/blog/flex-book-component-beta.
    Называется так же - FlexBook. И так же не свеж - июль 2007, зато комменты датируются мартом 2010, то есть актуальность на лицо.
    Демка так же вполне адекватная и в контекстном меню тоже есть ссылка на исходный код.
    Создаем новый Flex-проект, копируем туда код, указываем что компилить и запускаем. Никаких проблем, получаем работающую книгу. Выглядит привлекательнее предыдущего решения.
  • Коммерческая разработка: FlashPageFlip. Есть бесплатная версия - Free FlashPageFlip. Скачиваем бесплатную версию.
    Бесплатная версия не предоставляет исходников. Зато здесь есть всё, чтобы сделать книгу из заготовок. Рассчитан на 8ю версию FP.
  • Расширение Flash CS - PageTurn3D CS: здесь. Не стал ставить, хотя демка выглядит симпатично.
  • OpenSource движок MegaZine3: http://megazine.mightypirates.de/. Судя по описаниям, и демке, достаточно мощный движок. Есть доступ к SVN, есть довольно обширный API.
    Общее впечатление от демки (которую можно только скачать как Zip) безусловно очень положительное. Сам по себе скачиваемый продукт не является библиотекой. Это готовое решение, глубоко конфигурируемое, способное отображать разнообразный контент пользователя.
    Предлагается скачать SWC, но ссылка некорректная. Исходники можно скачать с SVN. Имеется форум с достаточно оживленными обсуждениями.
    В общем, при желании, можно разобраться с этой системой, хотя она, как большинство openSource-проектов, выглядит как темный лес. К тому же не предоставляется примеров использования API. Но это уже тема для отдельной статьи.
Наткнулся на пост, в котором есть небольшой обзор листалок. Ничего особенного, зато дает общее представление о коммерческих продуктах.

Итак, моя задача состоит в интеграции листалки во Flex-проект. Соответственно есть два пути:
  1. Непосредственно использовать библиотеку классов
  2. Интегрировать готовое решение путем внедрения главного SWF-файла во Flex-приложение и каким-то косвенным путем управлять контентом страниц.
Я рассматриваю первый вариант и выбираю движок FlexBook от Ruben Swieringa. Всё. Буду докладывать с места событий.



2010-03-11

17:44:17, Flex 2 & Co
Flex 4 rap


Гордон занимается текстом :-)

12:30:52, Flash-ripper.com
Flash GAMM Moscow 2010

Первый раз - случайность, второй - совпадение, третий - закономерность...
Чем же в таком случае будет четвёртый раз?...

С каждым новым разом мы стремимся к совершенству, мы учимся на своих ошибках, мы увеличиваем свои достижения.

Мы с вами - это огромное flash сообщество, часть которого занимается разработкой игр.

Что нам нужно?
Интересные проекты, хорошие заказчики, щедрые издатели, самореализация, полезные советы от коммьюнити, признание наших побед, хорошие отзывы и конструктивная критика о наших играх, много-много общения о любимой технологии и конечно же личные встречи...

Flash GAMM - это не просто конференция разработчиков и издателей flash игр, это место встречи, где можно встретить старых знакомых по цеху, найти новые контакты, заказчиков, исполнителей, узнать много нового и с головой окунуться в замечательный мир flash игростроя.

Мы приготовили для вас много вкусного и интересного, как уже испробованного, так и нового.

Доклады.
Мы пригласили как уже хорошо известных, так и новых докладчиков. Мы постарались сбалансировать количество чисто технических докладов для разработчиков с докладами про маркетинг и продажи. Часть докладов уже есть на сайте в разделе программа.
Так же планируется два круглых стола, один из которых носит рабочее название "Инди Flash". Если вы являетесь независимым flash разработчиком (причём не обязательно игр), мы приглашаем вас поучаствовать в круглом столе.

Конкурс игр.
Как и в прошлый раз мы организовываем конкурс flash игр. В этом году будет чёткое разделение участников на категории – независимые разработчики, студии и крупные компании. Кроме главной номинации «Лучшая игра» есть ещё несколько дополнительных: «Самая креативная игра», «Будущий хит», «Женский выбор» и «Приз зрительских симпатий». Подробнее о каждой из номинаций можно узнать на странице конкурса.
Мы приглашаем всех принять участие в конкурсе, ведь это замечательная возможность в очередной раз показать свою игру, и пропиарить себя как разработчика.

Каталог разработчиков.
Каталог прошлой конференции оправдал наши ожидания, поэтому мы планируем сделать это традицией.
Данный каталог представляет из себя справочник компаний, студий и инди-разработчиков.
Вы можете описать чем занимаетесь вы или ваша компания, добавите ссылки на сайт или портфолио, вставить скриншоты игр.
Он открыт для всех! Даже если вы не участвуете в конференции, вы всё равно можете добавить информацию.

Статьи.
У вас есть что рассказать коллегам по цеху flash платформы? Или может у вас уже есть интересная статья, которая сейчас очень актуальна?
Мы хотим сделать новый эксперимент - выпустить буклет/журнал с интересными статьями по разработке и не только. Как минимум pdf версию мы гарантируем, а если материала наберётся достаточно, то возможно сделаем и печатный вариант специально для конференции.

Все заявки, предложения, пожелания, критику пишите мелким почерком на flashgamm(собачка)absolutist.com

И помните, мы сами разработчики и мы делаем эту конференцию для вас, разработчиков!

PS: Спасибо всем кто помогает и содействует в организации конференции!


12:09:51, Flash-ripper.com
Flex 4: It's a Wrap

В этом коротком музыкальном видео Гордон Смит объясняет, кто есть кто в четвертом флексе. Добро пожаловать в нашу тоталитарную секту элитных мегафлексеров!

Если у кого-то есть вопросы, мы с удовольствием готовы на них ответить.


11:34:00, Flex 2 & Co
Flex 4 rap


Гордон занимается текстом :-)

2010-03-10

15:35:48, Flash-ripper.com
Трудоустроим и снабдим интересной работой в Харькове хорошего Flash-аниматора!

Привет, меня зовут Артем, я работаю в комапании МедиаТэк. Мы разрабатываем онлайн-игры. Некоторое время назад я уже тут появлялся с просьбой о помощи в поиске 10и Flash-разработчиков и аниматоров, тогда благодаря Вам я достаточно быстро решил этот вопрос! За что всем, кто приложил к этому руку, - огромное спасибо! Сегодня мы вновь готовы пригласить в наш дружный коллектив 1го Flash-аниматора для участия в новых игровых онлайн-проектах. Вот требования, на основании которых происходит отбор кандидатов:
Flash-аниматор
Обязанности: разработка анимации и графики для онлайн-игр.
Навыки: Flash и Photoshop — от 2 года, умение рисовать руками, опыт работы с планшетом.
Общие требования: нестандартное мышление, творческий подход, быстрая обучаемость, коммуникабельность, ответственность, надежность, активность, любовь к онлайн-играм.
В свою очередь, мы предлагаем коллектив неравнодушных к играм единомышленников, удобные условия труда и привлекательный соцпакет, достойная зарплата, размер которой мы готовы обсуждать с каждым индивидуально. Нас не пугают серьезные пожелания, если они имеют под собой основание из Вашего опыта и того, что вы реально умеете!
Если Вам интересна эта работа, присылайте резюме и портфолио со своими работами по адресу: job@gamezhero.com. А если для Вас данная информация неактуальна, то вполне может оказаться, что работу ищет ваш знакомый — сообщите ему об этом предложении. Можете выручить человека работой Smile
Спасибо,
Артем Дружелюбов


15:19:56, Flash-ripper.com
III конференции разработчиков онлайн игр в Украине

Друзья, партнеры, коллеги!

24 апреля 2010 года в Киеве состоится III Международная конференция разработчиков онлайн игр в Украине.
В конференции примут участие представители ведущих украинских и зарубежных компаний, которые занимаются разработкой игр.

Доклады и презентации будут посвящены различным актуальным тематикам, представляем некоторые из них:

  • Продвижение онлайн игр в соц. сетях;
  • Альтернативные технологии разработки онлайн игр;
  • Новые направления для браузерных игр (развите, маркетинг) на стыке уже сущствующих ниш (браузерные игры и социальные сети);
  • Браузерные игры и мобильные телефоны;
  • Разработка игр для социальных сетей;
  • Обучающие онлайн игры;
  • Современные финансовые инструменты для работы на внутреннем IT рынке Украины. Формы оптимальной организационно-правовой структуры игровой компании, методы оптимизации издержек на налоги, подготовка компании для продажи;
  • Большие браузерные проекты – сильные и слабые стороны;
  • Онлайн игра как дополнительный аргумент повышения доходности и популярности социальной сети и др.

Впервые в рамках мероприятия будет организована ярмарка вакансий, которая сможет стать для многих соискателей и работодателей началом плодотворного сотрудничества.

Немного статистики для спонсоров и партнеров III Конференции разработчиков игр:

  • II Конференцию в октябре 2009 года посетило 250 человек (70% — владельцы и топ-менеджеры компаний);
  • Представители следующих компаний присутствовали на Конференции: LG Electronics, Kaspersky, Alawar Entertainment,Inc., Абсолютист, Бигмир-Интернет, Aerohills, Ukr.net, Пилот Капитал, eVenture Capital Partners, Casual Games Association, Лаки Софт, Албимедиа, Arkadium,Ink, Stanfy, СМС Онлайн, Pipe Studio, радио «Эра», Joy Team, Uniggames, DJ Games, АВС money, Pilot Group, Антико и много других.
  • В течении 4 месяцев (от подготовки до проведения) сайт Конференции посетило 76 039 уникальных посетителей из Украины, России, Латвии, Молдовы, Германии, Беларуси, Эстонии, Израиля, США, Италии, Испании, Швейцарии, Австрии, которые совершили 331 971 просмотров страниц;

Будем рады видеть Вас на III Конференции разработчиков онлайн игр в Украине.

Сайт Конференции разработчиков онлайн игр: www.confog.org.ua


10:35:41, Junik
Фильтруем ArrayCollection

Так случилось, что фильтрация коллекций ни разу не беспокоила меня. А тут коллега задал вопрос, который послужил толчком к тому, что вы сейчас прочитаете. =)

Коллеге необходимо показать во view отфильтрованную ArrayCollection. Сама ArrayCollection находится в модели. Когда во view применяется фильтр, то данные модели очень сильно выглядят измененными. Что делать? Как быть?

Конечно, мы с вами знаем, что данные на самом деле не меняются. source коллекции так и остается исходным. Но не работать же в модели с source?

Конечно, не работать! И уж конечно, не делать копии коллекций! Тут спасибо Константинеру за наводку. =)

Можно использовать ListCollectionView в качестве обертки нашей исходной коллекции уже на уровне view. Тогда довольная модель работает с ArrayCollection, как и прежде, а view показывает, что захочет.

В качестве примера использую пример из доков Adobe для фильтрации коллекций.
Пример такой:

XML:

<?xml version="1.0"?>
<!−− dpcontrols\SortFilterArrayCollection.mxml −−>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="600">
    <mx:Script>
        <![CDATA[
            import mx.collections.*;
    
            /* Function to sort the ICollectionView
               in ascending order. */
            public function sortAC():void {
                var sortA:Sort = new Sort();
                sortA.fields=[new SortField("label")];
                myAC.sort=sortA;
                //Refresh the collection view to show the sort.
                myAC.refresh();
            }
 
            /* Function to filter out all items with labels
               that are not in the range of M-N. */
            public function stateFilterFunc(item:Object):Boolean {
                return item.label >= "M" && item.label < "O";
            }
            
            /* Function to apply the filter function the ICollectionView. */
            public function filterAC():void {
                myAC.filterFunction=stateFilterFunc;
                /* Refresh the collection view to apply the filter. */
                myAC.refresh();
            }
 
            /* Function to Reset the view to its original state. */
            public function resetAC():void {
                myAC.filterFunction=null;
                myAC.sort=null;
                //Refresh the collection view.
                myAC.refresh();
            }
 
        ]]>
    </mx:Script>
 
    <!−− An ArrayCollection with an array of objects. −−>
    <mx:ArrayCollection id="myAC">
        <mx:Array id="myArray">
            <mx:Object label="LA" data="Baton Rouge"/>
            <mx:Object label="NH" data="Concord"/>
            <mx:Object label="TX" data="Austin"/>
            <mx:Object label="MA" data="Boston"/>
            <mx:Object label="AZ" data="Phoenix"/>
            <mx:Object label="OR" data="Salem"/>
            <mx:Object label="FL" data="Tallahassee"/>
            <mx:Object label="MN" data="Saint Paul"/>
            <mx:Object label="NY" data="Albany"/>
        </mx:Array>
    </mx:ArrayCollection>
 
    <!-- Buttons to filter, sort, or reset the view in the second ComboBox
            control. -->
    <mx:HBox width="100%">
        <mx:Button id="sortButton" label="Sort" click="sortAC();"/>
        <mx:Button id="filterButton" label="Filter" click="filterAC();"/>
        <mx:Button id="resetButton" label="Reset" click="resetAC();"/>
    </mx:HBox>
    <mx:VBox width="550" height="143" borderStyle="solid" paddingTop="10" paddingLeft="10">
        <mx:Label text="This box retains original order and contents of the Array:"/>
        <!-- A ComboBox populated by the underlying Array object.
            This control shows that Array retains its original order. -->
        <mx:ComboBox id="cb2" rowCount="10" dataProvider="{myArray}"/>
        <mx:HRule/>
        <mx:Label text="This box reflects the changes to the Array:"/>
        <!−− A ComboBox populated by the collection view of the Array. −−>
        <mx:ComboBox id="cb1" rowCount="10" dataProvider="{myAC}"/>
    </mx:VBox>
</mx:Application>

Тут у нас два выпадающих списка: один с source коллекции, а второй с самой коллекцией.
Можно отсортировать, отфильтровать коллекцию и посмотреть, что будет.
После выполнения метода filterAC наша коллекция уже сама не своя, ее прямо не узнать.

Что же мы делаем? Тут и далее использован беглый стиль программирования, потому что все-таки пример. =)
Добавляем обертку для коллекции:

Code:

[Bindable]
private var wrapper:ListCollectionView;

После создания приложения создаем эту нашу обертку:

Code:

creationComplete="wrapper=new ListCollectionView(myAC)"

Фильтруем уже эту обертку, ее же показываем во втором выпадающем списке.
Добавляем новый выпадающий список для нашей родной коллекции.

Вот как выглядит код после изменений:

XML:

<?xml version="1.0"?>
<!−− dpcontrols\SortFilterArrayCollection.mxml −−>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="600"
  creationComplete="wrapper=new ListCollectionView(myAC)">
    <mx:Script>
        <![CDATA[
 
            import mx.collections.*;
            
            [Bindable]
            private var wrapper:ListCollectionView;
    
            /* Function to sort the ICollectionView
               in ascending order. */
            public function sortAC():void {
                var sortA:Sort = new Sort();
                sortA.fields=[new SortField("label")];
                wrapper.sort=sortA;
                //Refresh the collection view to show the sort.
                wrapper.refresh();
            }
 
            /* Function to filter out all items with labels
               that are not in the range of M-N. */
            public function stateFilterFunc(item:Object):Boolean {
                return item.label >= "M" && item.label < "O";
            }
            
            /* Function to apply the filter function the ICollectionView. */
            public function filterAC():void {
                wrapper.filterFunction=stateFilterFunc;
                /* Refresh the collection view to apply the filter. */
                wrapper.refresh();
            }
 
            /* Function to Reset the view to its original state. */
            public function resetAC():void {
                wrapper.filterFunction=null;
                wrapper.sort=null;
                //Refresh the collection view.
                wrapper.refresh();
            }
 
        ]]>
    </mx:Script>
 
    <!−− An ArrayCollection with an array of objects. −−>
    <mx:ArrayCollection id="myAC">
        <mx:Array id="myArray">
            <mx:Object label="LA" data="Baton Rouge"/>
            <mx:Object label="NH" data="Concord"/>
            <mx:Object label="TX" data="Austin"/>
            <mx:Object label="MA" data="Boston"/>
            <mx:Object label="AZ" data="Phoenix"/>
            <mx:Object label="OR" data="Salem"/>
            <mx:Object label="FL" data="Tallahassee"/>
            <mx:Object label="MN" data="Saint Paul"/>
            <mx:Object label="NY" data="Albany"/>
        </mx:Array>
    </mx:ArrayCollection>
 
    <!-- Buttons to filter, sort, or reset the view in the second ComboBox
            control. -->
    <mx:HBox width="100%">
        <mx:Button id="sortButton" label="Sort" click="sortAC();"/>
        <mx:Button id="filterButton" label="Filter" click="filterAC();"/>
        <mx:Button id="resetButton" label="Reset" click="resetAC();"/>
    </mx:HBox>
    <mx:VBox width="550" borderStyle="solid" paddingTop="10" paddingLeft="10">
        <mx:Label text="This box retains original order and contents of the Array:"/>
        <!-- A ComboBox populated by the underlying Array object.
            This control shows that Array retains its original order. -->
        <mx:ComboBox id="cb2" rowCount="10" dataProvider="{myArray}"/>
        <mx:HRule/>
        <mx:Label text="This box reflects the changes to the Wrapper:"/>
        <!−− A ComboBox populated by the collection view of the Array. −−>
        <mx:ComboBox id="cb1" rowCount="10" dataProvider="{wrapper}"/>
        <mx:HRule/>
        <mx:Label text="This box reflects the changes to the ArrayCollection:"/>
        <!−− A ComboBox populated by the collection view of the Array. −−>
        <mx:ComboBox rowCount="10" dataProvider="{myAC}"/>
    </mx:VBox>
</mx:Application>

В результате получаем фильтрацию исключительно на уровне view. А модель живет своей счастливой и долгой жизнью. =)

Этот же подход можно использовать и при необходимости показывать одну и ту же коллекцию в разных контролах с разными фильтрами.


10:05:01, Flash-ripper.com
Microphone и SampleDataEvent во Flash Player 10.1

Изучая возможность по подавлению эхо самостоятельно, не дожидаясь Adobe, я практически осуществил задуманное, но вылез один неприятный момент, который даже не знаю к чему отнести (не уверен, что это глюк, может это фича ...) Суть проблемы заключается в следующем, событие SampleDataEvent вызывается на разных платформах по-разному, в win оно чаще всего выплевывает по 2048 байт, если микрофон в 8KHz, а под МакОсью выдает чаще всего по 1024 байта, хотя случаи проскакивания 2048 байт тоже замечены, но редко. Для моей задачи это существенно все усложняет, так как в идеале мне вообще нужны фреймы по 20мс или 320 байт, но я готов смириться с больним размером фрейма... а вот с тем, что на разных компьютера флэш себя ведет по-разному я смириться не готов Crazy

P.S. Используется FP 10.1 beta3 , может дело в бете, а может стоит накатать баг реквест в JIRA пока не поздно?


2010-03-09

09:11:11, Flash-ripper.com
Maven и Flexmojos -- внедряем во флэш разработку

Hello World.

Тема Maven и Flexmojos во флэш разработке интересна многим, но слабо расскрыта. Был цикл статей от Гахова, но он довольно давний. Между тем, технология развивается довольно быстро, и та информация устарела.

Документация в первоисточниках не плохая, но не полная, и местами тоже устаревшая.

Мне удалось успешно внедрить Flexmojos в своей команде. Полученный опыт я описал в цикле статей в своем блоге. Но кое-кто мне говорил, что это будет интересно более широкой аудитории, поэтому решился написать и здесь тоже.

Мы используем Intellij IDEA, поэтому многие вопросы освещены в контексте этой IDE. Eclipse тоже хорошо поддерживает Maven, так что проблем не должно возникнуть. Ну и, конечно, большая часть информации универсальна и не зависит от IDE.

Итак:

Maven и Flexmojos Часть 1. Лирическое эссе.
Зачем вам нужен Maven. Не факт, что он вам вообще нужен. Вполне может быть, что и не нужен вовсе.

Maven и Flexmojos Часть 2. Внедряем в рабочий процесс.
Cоздаем проект с помощью flexmojos. Подробное пошаговое руководство.

Maven и Flexmojos Часть 3. Продолжаем внедрять.
Workflow на основе IDEA, flexmojos, subversion и консоли.

Maven и Flexmojos Часть 4. Углубляемся в нюансы.
Чем плох стандартный flexmojos и почему нужно юзать форк Develar?

Maven и Flexmojos Часть 5. Дальше-больше.
Flex Super Pom. Условная компиляция. Индивидуальные настройки для каждого разработчика.

Maven и Flexmojos Часть 6. FlexUnit4.
Юнит тесты лишь косвенно относятся к основной теме. Но я под шумок, между делом, расскажу пару слов и про них.

Maven и Flexmojos Часть 7. Nexus, Server-side.
Немного про Nexus -- сервер артефактов. И про работу с FMS и PHP server-side.

Мой блог сделан на флексе и не всем это нравится. Так что не пропустите кнопку html версия в правом верхнем углу. К сожалению в html версии глючный парсер и отсутствуют комментарии. Сорри.


2010-03-08

11:09:54, Flash-ripper.com
С Днем Бесконечности!

Дорогие Потрошительницы!

Поздравляю вас с праздником Восьмого Марта и надеюсь, что мужская часть здешнего населения присоединяется к моим поздравлениям и устанавливает себе тематические обои - зима пройдет, зеленые побеждают холодных.

Я понял, что женщин-программистов не бывает. Не спешите обижаться! Я хочу сказать, что ни одно програмирование в мире не убъет в женщине женщину - и радуюсь тому, что у нас есть вы, и вы приносите в суровый мир программирования радость своего присутствия, оставаясь собой - женственными и чуткими. Желаю вам любви, поменьше рутинных забот и никакой преждевременной компиляции.


2010-03-06

10:54:14, Garbage Collector
Проголосуйте за баг в Adobe Jira

Linux — хорошая система для разработчика. В ней есть много «полезностей», которых нет под другими платформами. Но вот с разработкой Flash/Flex-приложений в ней есть определенные трудности. Это связанно с тем, что Debug Flash Player под Linux-ом завершает дебаг-сессию через 2-60 секунд после ее запуска. Согласитесь, что не очень удобно разрабатывать приложения, не имея возможности толком их продебажить.

Больше года назад (а конкретнее 2 февраля 2009 года) в Adobe Jira был создан таск с описанием этого бага. С тех пор разработчики Flash Player не сделали в этом направлении ни-че-го. Поэтому я обращаюсь ко всем, кого заботит этот вопрос. Давайте дружно проголосуем за этот баг и попытаемся таким образом общими усилиями собрать сто тыщ мильонов хотя бы сотню голосов, чтобы разработчики наконец-то обратили свое внимание на него, изменили его приоритет с «None» на «Normal» и взялись за его исправление.

Заранее спасибо всем поддержавшим.



2010-03-04

12:15:52, Flash-ripper.com
Особенности Pixel Bender для Flash, или как я учился гнуть пиксели


С превеликим запозданием начал я недавно изучать эту технологию. И вот, наконец-то стало что-то получаться, и возникло желание поделиться с такими же начинающими своей радостью. Однако, погуглив по рунету, я обнаружил тут и там давным давно написанные статьи. Посему вместо очередного поста об основах технологии вниманию публики предлагается разбор одного полёта (мысли), а так же грабли особенности технологии, на которые успел наткнуться за это короткое время.

читать далее


2010-03-03

18:12:32, Junik
Singleton

Мне кажется, что есть три стадии принятия программистами паттерна Singleton.

  1. Эйфория – Как удобно иметь такую клевую глобальную штуку.
    Стадия быстро проходит.
  2. Страх – Как страшно иметь такую глобальную штуку.
    На этой стадии программисты сильно боятся Singleton-а и всячески стараются не использовать. Отговаривают окружающих пользоваться этим паттерном, применяя тактику запугивания.
  3. Понимание.
    На этой стадии программисты понимают, что бояться нечего, если использовать паттерн с умом.

Жалко, что не все доходят до третьей стадии. =)


17:27:22, Flash-ripper.com
Онлайн семинар "Building a Drupal Image Module with Flex" с Михаем Корланом

Drupal - это модульный PHP-фреймворк для создания сайтов. На семинаре будет рассказано о том, как подружить его с Flex на примере создания нового модуля для Drupal. Регистрируемся на семинар здесь: drupalimagemodule2.eventbrite.com/.

Автор семинара Михай Корлан - евангелист Adobe из Румынии. Он специализирунется на связке Flex + PHP, и перевод его статьи "Flex для PHP-разработчиков" вскоре появится на сайте Ф. Потрошителя. Сегодня статья уже полностью переведена и находится в стадии финальной HTML-верстки. В 2008 году Михай Корлан посетил встречу морских флэшеров BURAFPUG / ITSea 1.


2010-03-02

08:54:58, Flash-ripper.com
FGL выпустили GameTracker API 1.1 для анализа первого впечатления от игры

Сегодня FGL выпустили GameTracker API 1.1 (пока только AS3) для анализа первого впечатления пользователя о Вашей игре.

Так говорят о скрипте сами разработчики:
После загрузки на FGL, API записывает данные о каждой игровой сессии. Можно, к примеру видеть, сколько уровней прошел пользователь, сколько он потратил на них времени, где он умер
Это достаточно простой скрипт для добавления в игру. Когда игра загружена на FGL, API активируется и записывает данные о каждой игровой сессии которая происходит на FGL. Вы можете видеть каждую игру и как далеко прошел пользователь, что он делал и т.п.
GameTracker также работает для анализа первого впечатления об игре. ... Вы можете увидеть, к примеру, сколько пользователь потратил времени на какой-либо уровень, где он умер, что он не понял... и исправиль это!

Этот скрипт представляет собой NetConnection, который может записывать данные об процессе в игре. Для этого Вам дается возможность использовать функции записи сообщений:

  • beginGame() и endGame()
  • beginLevel() и endLevel()
  • checkpoint()
  • alert()
  • customMsg() до 20 символов

Вот, собственно, и вся революция. Как говориться, "выдали пистолет и крутись как хочешь"


2010-03-01

15:36:34, Flash-ripper.com
Особенности работы с микрофоном

Столкнулся в примере AIR Cookbook с необъяснимым ускорением записи с микрофона.

читать далее


15:28:20, Flash-ripper.com
Факт: Можно узнать про Flash

Проанализировали это.


2010-02-28

16:53:34, Flash-ripper.com
FDT 4 Milestone 1 Release - можно пробовать

Прошедшая неделя нас порадовала не только выходом новой бета версии флэш плеера, но также первым, из четырех, релизом популярной IDE для флэш разработки - Flash Developer Tool 4 (FDT 4). Разработчики FDT обещают много новых плюшек, от Flex форматирования до Unit тестирования и много чего еще. Так в первом релизе появился Profiler. Да, да, вы не ослышались, именного то, чего нам так не хватало для чистых флэш проектов создаваемых не в Flex/Flash Builder Smile

Подробнее о плюшках можно узнать на сайте производителя FDT 4, а также можно скачать и пощупать все своими руками, предварительно зарегистрировавшись.


2010-02-26

07:21:08, Блог Fuzzle CMS
У нас теперь есть готовые шаблоны сайтов!

Наряду с запуском новой версии Fuzzle CMS, мы решили порадовать наших пользователей новой фичей — теперь у нас есть своя коллекция шаблонов. Шаблоны сайта предназначены для тех, кто не может или не хочет тратить время на разработку дизайна. Наш магазин шаблонов сайтов уже сейчас содержит 5 замечательных экземпляров.

photo1 beauty1 personal2 personal1

Среди этих шаблонов есть те, что идеально подойдут для оформления персонального сайта, сайта-визитки для фотостудии, сайта гостиницы или SPA-салона. К примеру, в шаблоне 360 panoram есть возможность разместить на главной странице сферическую панораму. А шаблон из категории SPA-salon позволяет создать уютную атмосферу на сайте благодаря красивой музыке и плавным переходам между страницами (так называемый splash screens, появившиеся в версии 3.5). Рассмотреть шаблоны в деталях можно на странице http://fuzzletemplates.com, где и будут регулярно появляться обновления. Для просмотра примера сайта, созданного на каждом конкретном шаблоне, нажмите «View in FULLSCREEN mode».

В связи с запуском магазина шаблонов, мы приглашаем дизайнеров нам помочь и ... получить процент от продаж созданных ими шаблонов. Кроме того, мы заинтересованы во взаимовыгодном партнерстве с веб-студиями, которым мы предлагаем 20% с продаж. Таким образом, продав клиенту Fuzzle CMS с готовым шаблоном, студия получает от нас (475€+75€)*20% = 110€ партнерской прибыли.

Для связи с нами по вопросам сотрудничества или любым другим вопросам, используйте нашу контактную форму. Будем рады новым партнерам! :)


01:11:07, Flash-ripper.com
Онлайн семинар "P2P Programming in Flash"

В среду, 3-го марта пройдёт семинар на котором Tomas Krcha покажет как использовать P2P во Flash. Семинар будет проходить на английском, объявить о своём участии и узнать подробности можно на eventbrite.com.

Трансляция будет проходить через Acrobat Connect.

p2p-governance_id3929961_size480.jpg
(Картинка упорота с masternewmedia.org)


2010-02-24

20:48:28, Flash-ripper.com
Потрошим Флэш Плеер

В данной статье я хочу покуситься на самое святое, что у нас есть: на сам Flash Player.

Факт 1: иногда встроенные классы Флеша имеют забавные приколы, например самопроизвольный вызов load в конструкторе класса Sound, или жёсткий глюк в ExternalInterface, о котором я расскажу ниже.
Факт 2: глюки бесят, и иногда хочется узнать, из-за чего они происходят, или заранее знать, где спрятаны грабли.
Факт 3: ABC-код довольно легко декомпилируется.
Предположение: Далеко не все методы встроенных классов FP являются нативными, некоторые из них возможно написаны на нашем родном AS3 (точнее на ABC-коде).
Старожилы наверняка помнят исходники стандартных классов для разных версий флеш-плеера вплоть до 8-го. Отсюда и возникло предположение, что и в версиях 9 и 10 тоже должно быть хоть что-то ненативное.

Предположение оказалось верным, а это значит, что Флэш можно потрошить.

Подробнее - под катом.

читать далее


16:56:30, Flash-ripper.com
Smart and gets things done

В московском офисе CommuniGate Systems открыта вакансия Senior Flex Developer.

Требования:

  • Smart
  • Gets things done

Пожелания:

  • Cущественный опыт в разработке Flex приложений и в целом во Flash Platform
  • Большой опыт в программировании
  • Умение свободно общаться на письменном английском

Со своей стороны мы предлагаем:

Резюме просьба присылать по адресу maxim@communigate.com.

P.S: Успешный кандидат будет работать над новой (релиз - конец 2010) версией Pronto, основанной на Flex 4 и AIR 2, текущая же версия (3.x) доступна на mobileoffice.biz (demo/demo).


05:48:51, Flash-ripper.com
Adobe Flash Player 10.1 beta

Видимо, Adobe решила сделать подарок ко Дню Защитника Отечества Big smile и выпустила третью бету флеш-плейера Flash Player 10.1. Подробности.


2010-02-23

09:45:11, Flash-ripper.com
С праздником, дорогие мужчины!

Сегодня праздник 23-го февраля. И это праздник касается всех мужчин.
Ведь каждый является защитником своей семьи, своих друзей, любимых и, конечно же, нашей общей любимой технологии! :о)

Дорогие, флешеры, от лица женской половины flash сообщества, я хочу поздравить вас с праздником!
Мы вас очень лю!


2010-02-20

12:11:16, Flash-ripper.com
Adobe наконец-то взялись за FP-273, так держать

Сегодня на мой feature request (http://bugs.adobe.com/jira/browse/FP-273) про Acoustic Echo Cancellation для Flash Player наконец назначили ответственного в лице Tom Nguyen, а также пообещали, что в данная фича появится в следующем после 10.1 релизе (будем верить?).


2010-02-18

08:15:59, Flash-ripper.com
Официальный отчет UAFPUG #17 про Flash CMS - с фото и видео

Встреча UAFPUG во Львове состоялась. Тема встречи Flash Sites/CMS-es. Инициатором встречи выступила компания nucleart.net. Доклады, материалы и впечатления:

1. "История развития CMS флеш-сайтов на примерах" - Макс Шаман
Отличная ретроспектива, интересный обзор, бесценный опыт нахождения взаимопонимания между разработчиками и заказчиками
Видео: Макс Шаман (864 MB)

Get Adobe Flash player

2. "Разработка на основе SpryFlashCMS" - Антон Краснощек Очень красивая и сделанная с любовью система
Презентация: Разработка на основе SpryFlashCMS
Видео: Антон Краснощек (962 MB)

Get Adobe Flash player

3. "Разработка флеш проектов на основе FlashMoto CMS" - Дмитрий Курикша
Система очень близкая конечным пользователям
Видео: Дмитрий Курикша (868 MB)

Get Adobe Flash player

4. "Мультимедийные сайты, или в кого нацелена Fuzzle CMS" - Влад Январев
Академический подход впечатляет
Видео: Влад Январев (577 MB)

Get Adobe Flash player

5. "Flash front-end with e+CMS" - Владимир Яцыныч, Семён Фриш
Мы справились
Презентации: Flash front-end with e+CMS (клиент), Flash front-end with e+CMS (сервер) Видео: Семён Фриш (клиент) (371 MB), Владимир Яцыныч (сервер) (698 MB), Владимир Яцыныч, Семён Фриш (вопросы) (177MB)

Get Adobe Flash player Get Adobe Flash player Get Adobe Flash player

Фото: все тут

Украинская версия: тут


07:56:00, Garbage Collector
Установка нескольких экземпляров Apache Tomcat 6 в виде сервисов под Windows Server 2003

Недавно столкнулся со следующей задачей: на одном веб-сервере под управлением Windows Server 2003 необходимо было установить несколько экземпляров Apache Tomcat 6 для того, чтобы в каждом из них «крутилось» свое собственное приложение. Установить нужно было таким образом, чтобы каждый из этих сервлет-контейнеров являлся в системе обособленным сервисом со своей конфигурацией, параметрами автозапуска, отдельным пунктом в списке установленных программ системы, ну и, в качестве бонуса, собственной иконкой в трее. :)

Windows Server 2003 tray

Посмотрев решения подобной задачи в интернете, обнаружил, что, пожалуй, единственным способом ее решения будет самостоятельная правка реестра системы. Это связано с тем, что стандартный инсталлятор Apache Tomcat 6 не поддерживает возможности его установки в виде нескольких сервисов и не позволяет разнести настройки каждого из экземпляров по отдельным веткам реестра.

Здесь я хочу сделать важное предупреждение. Описываемая в статье техника является работоспособной и проверенной мной на собственном опыте и на реальном рабочем сервере. Она даже не является хаком, поскольку, будь инсталлятор немного более грамотным, он бы выполнял ее автоматически. Я не проверял, но скорее всего эта техника будет работать и на Windows Server 2008. Выполняемые процедуры не затрагивают никаких других настроек и веток реестра, кроме тех, которые непосредственно относятся к каждому отдельному сервису Apache Tomcat. Однако я не несу никакой ответственности за возможный ущерб, связанный с непосредственным, а так же с неосторожным или неправильным применением этой техники. Используйте ее на свой страх и риск. И не забудьте сделать резервную копию важных данных перед началом процедуры. :)

Итак, поехали.

  1. Установите первый экземпляр Apache Tomcat в отдельную директорию, например, в C:\Tomcat6_1. На последнем шаге мастера установки нужно убрать галочку Run Tomcat.
  2. Откройте редактор реестра regedit: StartRun…regedit → нажмите Enter.
  3. Переместитесь к ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tomcat6 и переименуйте ее из Tomcat6 в Tomcat6_1.
  4. Здесь же измените значение свойства DisplayName с Apache Tomcat на Apache Tomcat 6 (1). Именно под этим именем теперь будет отображаться сервис в списке локальных служб системы. Чтобы посмотреть список служб вашей системы выполните следующую последовательность действий: кнопка StartRun…services.msc → клавиша Enter.
  5. System services

  6. Теперь измените часть значения свойства ImagePath с …//RS//Tomcat6 на …//RS//Tomcat6_1. Именно с этим именем будет запускаться экземпляр службы. Это значение понадобится нам в шаге 9.
  7. Далее переходим к ветке HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat6 и переименовываем ее в Tomcat6_1. В дальнейшем это позволит нам установить новый экземпляр Apache Tomcat без перезаписи настроек устанавливаемого в настоящий момент экземпляра.
  8. По тем же самым причинам меняем название ветки HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat\6.0 на 6.0_1.
  9. Теперь переходим к ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run и меняем имя ключа с ApacheTomcatMonitor на ApacheTomcatMonitor_1. Это имя приложения по управлению службой. Его изменение позволяет нам избежать перезаписи этого ключа при установке следующих экземпляров Tomcat и управлять каждым из сервисов при помощи отдельного окна приложения.
  10. Service monitor

  11. Теперь изменим завершающую часть значения этого ключа с …Tomcat6 на …Tomcat6_1. Внимание: это значение должно совпадать с тем, которое мы присвоили ключу ImagePath в шаге 5.
  12. Для того, чтобы иметь возможность потом деинсталлировать по отдельности каждый из установленных экземпляров Tomcat, мы должны перейти в ветку реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Apache Tomcat 6.0 и изменить ее название на Apache Tomcat 6.0_1. Это позволит нам избежать перезаписи данных, необходимых для деинсталляции приложения, во время установки последующих экземпляров Apache Tomcat. Здесь же можно изменить значение ключа DisplayName на Apache Tomcat 6.0 (1).
  13. Installed applications

  14. Перезагрузите систему, чтобы изменения вступили в силу.
  15. Для того чтобы распределить установленные экземпляры Tomcat по разным локальным портам, мы должны правильно сконфигурировать каждый из них. Открываем файл C:\Tomcat6_1\conf\server.xml и меняем значения следующих узлов:
    1. <Server port="8005" shutdown="SHUTDOWN"> на 8001 (для каждого из последующих сервлет-контейнеров мы будем использовать порты 8002, 8003 и т.д.).
    2. <Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000" redirectPort="8443" /> на 8081 (далее будем использовать 8082, 8083 и т.д.).
  16. Выполните инструкции с 1 по 12 для каждого из последующих экземпляров Apache Tomcat, используя для разделения каждого из них увеличенное значение индекса. Допустим, второй экземпляр должен быть установлен в папку C:\Tomcat6_2, ветка реестра из шага 3 должна быть переименована в Tomcat_2, а ключ DisplayName в шаге 4 изменен на Apache Tomcat (2) и т.п.
  17. Перезагрузите систему, чтобы удостовериться в том, что разные экземпляры Tomcat нормально запускаются во время старта Windows.

На этом все на сегодня. Буду надеяться, что заметка окажется вам полезной. Удачного вам дня! :)



2010-02-17

10:38:13, Flash-ripper.com
Ищем специалиста для доработки программы на Flex

Нужны только опытные разработчики способные сделать конечный продукт. Необходимо довести до ума Флеш приложение, которое будет работать через браузер в системе poruchite.ru. Необходимо также дальнешее сотрудничество с поддержкой программы.

Программа полностью рабочая, но необходимо переделать немного интерфейс без усложнения фукционала. Если вы заинтресованы, пожалуйста, пишите на vortexru@gmail.com

Бюджет обсудим и обязательно договоримся.


Предыдущие 30 | Следующие 30