Flex и RIA блоги



2008-01-21

13:33:00, Flash-разработка
Как лучше постить код в Bloggere
Итак, выдрав код замены DIV на TEXTAREA отсюда, выявил несколько неудобств (копируемый в клипбоард код теряет переносы, необходимо заключать в дополнительный контейнер содержимое) и внес коррекции. Однако, остался один недостаток - теряются пробельные символы в начале строк. Кроме того, теряется форматирование, но, на мой взгляд, это не является большим минусом при выкладывании кода.

Итак, решение позволяет сделать так, чтобы код помещался в контейнере TextArea. Не более того.

Вот код преобразовывающего скрипта:

<script type="text/javascript">
// CodeBlocksSubstitutor
var i=0;
var j=0;
while(_DIV = document.getElementById("code"))
{ _DIV.id="processed";
AREA = document.createElement("TEXTAREA");
AREA.id = "codeArea"+i;
if (_DIV.rows==null) AREA.rows = 10; else AREA.rows = _DIV.rows;
AREA.cols = 53;
AREA.readOnly = true;
AREA.wrap = "off";
i++;
AREA.innerText=_DIV.innerText;
newdiv=document.createElement("DIV");
newdiv.appendChild(AREA);
div_parent=_DIV.parentNode;
div_parent.replaceChild(newdiv,_DIV);
}
</script>


В тексте, код необходимо поместить в контейнер:

<div id="code" rows="20">
</div>

Параметр id="code" указывает на то, что текст необходимо обработать.
Параметр rows задает количество строк поля TextArea.
Тег div можно заменить на любой другой, например, code. Это повлияет на внешний вид контейнера.

Код я вставил в виде модуля HTML/JavaScript в нижний блок шаблона моего блога.

Пример:

package {
import flash.display.Sprite;
import flash.display.Bitmap;

[Frame(factoryClass="MyFactory")]
public class FrameTest extends Sprite
{
[Embed(source="big_asset.jpg")]
private var Asset:Class;

public function FrameTest()
{
init();
}

public function init():void
{
var asset:Bitmap = new Asset();
addChild(asset);
}
}
}

2008-01-19

04:01:50, Flash-ripper.com
Блог одиноко стоящего игрока вспышки переехал

Было: http://murejib.blogspot.com/. Стало: http://murejib.com/.

Еще один флэш-блог переехал на свой хостинг. Поздравляем! Но напомню еще раз, я говорил: не заводите блоги на чужих "бесплатных" хостингах типа wordpress и blogspot. Если ваш блог чего-то стоит, вы рано или поздно переедете на свой домен и хостинг. И это ужасно. Не все смогут сменить ссылки на ваш сайт. Какая-то часть людей будет ходить по старому адресу. Гугл будет сбит с толку. Короче. Никаких Блогспотов, я прошу вас.

Racer, Shagrat и еще несколько ребят — это я к вам. Негоже правильные сайты по чужим доменам ютить. Исключение составляет Livejournal, там есть свои фичи типа френдования.

Кстати, один паренек из Питера написал статью "Советы стандалонным блоговодам" для тех, кто решил открыть свой блог не на бесплатном хостинге.


2008-01-18

20:43:41, Flash-ripper.com
Отчет о RAFPUG-2 в новом формате

Фух, наконец дописал отчет о RAFPUG-2. Те, кто уже прочел предыдущие отчеты, очень легко осилят и этот, ведь он их только дополняет. Я писал целый день, и получилось семь частей! Выкладываю все сразу: первая часть отчета о встрече RAFPUG-2, плюс части 2, 3, 4, 5, 6 и 7. Приятного чтения :)


11:28:54, WebService //Flash
Что такое Flex?

Этот вопрос задают многим из разработчиков, когда те предлагают Flex в качестве технологии для решения поставленных задач. И не всякий сможет вот так вот, с ходу, объяснить. В качестве примера хочу привести публикацию Теда Патрика "What is Flex?". Ну, или можно прочитать мой перевод.

Tags: , ,


11:28:54, WebService //Flash
Что такое Flex?

Этот вопрос задают многим из разработчиков, когда те предлагают Flex в качестве технологии для решения поставленных задач. И не всякий сможет вот так вот, с ходу, объяснить. В качестве примера хочу привести публикацию Теда Патрика "What is Flex?". Ну, или можно прочитать мой перевод.

Tags: , ,


11:22:00, Flash-разработка
Делаем прелоадер для Flex-приложения. AS3.
Если при разработке проекта нам доступен для редактирования таймлайн основного SWF, например, мы делаем проект во Flash IDE, всё просто - всё делаем как и раньше - а точнее - как нам советует в своей статье "Экспорт классов во второй кадр и создание прелоадера во Flash CS3" __etc.
А что делать, если наш проект компилируется Flex SDK?
Можно сделать маленький модулек, который будет загружать и мониторить загрузку основного SWF. Ну а если требуется наличие только одного SWF?

Люди советуют почитать статью Preloaders in AS3. Читаем.

Основную мысль автору статьи, подсказал Ted Patrick, намекнув на мета-тег [Frame] и поглядеть исходник mx.core.Application.
Поглядим-ка
"...\Flex2SDK\frameworks\source\mx\core\Application.as ".
Как отметил 101 (тот что автор статьи) там и правда есть тег [Frame(factoryClass="mx.managers.SystemManager")]. А в комментарии, по-моему, ключевой является фраза "Все фреймворки инициализируются SystemManager-ом".

Идем смотреть
"...\Flex2SDK\frameworks\source\mx\managers\SystemManager.as".
И правда - видим интересные фразы типа "ВНИМАНИЕ: Минимизируйте не флэшовые классы, которые импортируете здесь, всё что связано с SystemManager будет загружено в 1й фрейм до того, как загрузится прелоадер, и вообще, что-либо отображающееся." Кроме того, несколько ниже, говорится, что "SystemManager - первый визуальный класс, который создается в приложении. Он так же отвечает за создание mx.preloaders.Preloader, который отображает mx.preloaders.DownloadProgressBar до конца загрузки приложения, после чего SystemManager создает mx.core.Application instance". Собственно, вызывается метод SystemManager.create, код которого приводит 101 (автор).
Он пришел к следующим мыслям:
  • Сначала создаем основной класс MainClass как обычно и указываем компилятору чтобы он его компилил.
  • Затем в этом классе вставляем тег [Frame(factoryClass="MyFactoryClass")], который указывает на некий другой класс MyFactoryClass.
Это должно привести к тому, что скомпилируется SWF с двумя фреймами! Всё барахло, которое мы имбедим, наш основной класс, другие классы которые он пользует - всё это будет импортироваться во второй фрейм. Единственное, что будет импортировано в первый фрейм - наш класс MyFactoryClass и всё что он пользует. Шикарно!

Итак, нам остается всего-навсего создать класс обычного прелоадера, который:
  • Делает stop();
  • Мониторит загрузку любым удобным для нас способом.
  • После полной загрузки делает nextFrame();
Теперь мы можем инстанцировать основной класс используя getDefinitionByName() {А откуда?}. Это дает нам возможность контролировать, какой класс мы хотим сделать основным. Кроме того, теперь мы можем выгрузить прелоадер.
Еще одна любопытная особенность этого решения - основной таймлайн представляет MainClass, но в качестве "Document Class" теперь выступает не MainClass, а MyFactoryClass. Из этого следует:
  • MyFactoryClass должен наследоваться от MovieClip. И не в коем случае не от Sprite.
  • При инстанцировании MainClass, необходимо добавить (addChild) его в дисплей-лист MyFactoryClass.
  • MainClass не будет являться корнем дисплей-листа. Он будет чайлдом MyFactoryClass.
  • В своем конструкторе, MainClass не должен ссылаться на "stage", так как он будет доступен только после добавления (addChild) MainClass в дисплей-лист.
Теперь, всё, что осталось для нас неясным, развеем примером: код примера.

В основном классе FrameTest - это то что выше называлось MainClass - всё просто. Имбедится и выводится картинка "big_asset.jpg", желательно очень большого размера. Единственное необычное - это фраза [Frame(factoryClass="MyFactory")].

Класс MyFactory - это наш вышеописываемый MyFactoryClass.
  • В конструкторе производится остановка тайм-лайна stop(), выставляются параметры stage и добавляется обработчик "ENTER_FRAME".
  • Обработчик onEnterFrame() рисует полосу состояния загрузки вычисляя процент загрузки: var percent:Number = root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal;
  • При выполнении условия framesLoaded == totalFrames, объект отписывается от события "ENTER_FRAME", осуществляет переход на следующий фрейм nextFrame() и производит инициализацию init().
  • Метод инициализации init() получает определение основного класса var mainClass:Class = Class(getDefinitionByName("FrameTest")); и, если такой класс существует if (mainClass), инстанцирует его и добавляет в дисплей-лист: var app:Object = new mainClass(); addChild(app as DisplayObject);.

Всё. Переходим к практике.

* * *

Не забудем положить картинку "big_asset.jpg" в папку с классами.

Первая коррекция - getDefinitionByName вызывает исключение, в случае если класс не найден. Поэтому проверки if(mainClass) недостаточно. Нужна обработка исключения try ... catch.

* * *

Пробуем trace(this.currentFrame);. Он выдает правильно - 1 из конструктора MyFactory, 2 - из init();.

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

Интересное наблюдение - если накопировать одну и ту же картинку и имбедить копии, размер SWF не изменится - как будто внедрена одна картинка! Вот это сжатие!

Итак, утяжелил до 20 мБ. Теперь всё встало на свои места. Прелоадер аккуратно отрабатывает объем и затем отображается картинка! Всё дело было в слишком быстром интернете.

Итак, подход прост и практичен. Спокойно делаем правильные и эффектные флэшки любого размера!


10:08:41, DL1t's blog
Расширяя возможности AIR&#8230;

Одной из ключевых проблем AIR-приложений является то, что они не могут запускать другие приложения. Adobe объясняет это проблемами с безопасностью, которые вызывает данная функциональность. Mike Chambers предложил решение этой проблемы в виде CommandProxy - .NET-приложения, которое запускается перед запуском AIR-приложения, и получает от него команды/возвращает резльтаты.  Сейчас приложение способно к
- запуску процессов
- возврату результатов их работы
- снятию скриншотов.
Исходный код доступен здесь.


02:01:59, Скачать флешки, флеш, бесплатные Flash уроки и исходники. Создание сайтов.
Роботы-убийцы

Flash игра где нужно убить жителей города

Замочи их всех

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

Продолжение тут »

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong Linkstore.ru

2008-01-17

14:40:35, Junik
Flex фреймворки

В посте Open Source Flex Development Frameworks Show that Platform is Gaining Momentum приводится обзор open source flex фреймворков.

Лично я люблю странной любовью FlexUnit. А вы? :)


14:25:24, Flash-ripper.com
Синдром отмены RAFPUG-2

Мои впечатления от второй встречи Russian Adobe Flash Platform User Group все еще формируются. Состояние сейчас сродни похмельному, только алкоголь здесь ни при чем: виноват сильнодействующий препарат RAFPUG-2, синдром отмены которого имеет место.

При этом в сознании продолжается вызванный встречей спонтанный мозговой штурм. И пока я собираюсь с мыслями по поводу, пока продолжают возникать идеи-последствия, позвольте мне побыть вашим RSS-ридером. Пожалуйста, прочтите уже опубликованные отчеты о RAFPUG: я еще напишу свой, но в нем я буду упоминать только о том, что не было упомянуто в нижеследующих текстах, исходя из того, что вы их уже прочли, плюс — попытаюсь изложить некоторые возникшие идеи.

Отчеты о второй встрече Russian Adobe Flash Platform User Group

Первыми отписались Racer и Junik. Юля в своих горячих следах от второй встречи RAFPUG лаконично, точно и позитивно поведала о всех ключевых моментах.

А высокий коэффициент полезного действия Constantiner'а можно утверждать по одному его доку "Вторая встреча RAFPUG в рамках Adobe Flex and AIR Pre-Release Tour" — это самый полный отчет, плюс фото. Неутомимо. И тоже позитивно!

В особенном отчете Racer'а умело зарифмована идея "дети — наше будущее". Это была важная часть второй встречи RAFPUG, флэш-обучению школьников был посвящен доклад Артемия Малкова. Мне кажется, что Racer — поэт, и мне нравится его открытый стиль; если ему что-то не про душе, он пишет и об этом.

Есть также пара совсем официальных отчетов и мега-краткий отчет от __etc.

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


12:02:00, Flash-разработка
Теги ASDoc. AS3
Теги ASDoc

@copy reference - копирует ASDoc комментарий из reference. Копируется основное описание и теги @param и @return. Остальные теги не копируются.
Пример: @copy #stop, @copy MovieClip#stop

@default value - указывает значение по умолчанию value для свойства, стиля или эффекта.
Пример: @default 0xCCCCCC

@eventType package.class.CONSTANT - комментарий для тега метаданных [Event]. Описывает константу, которая определяет значение свойства Event.type объекта event, ассоциированного с событием.

@eventType String - комментарий для констатны события. Указывается перед определением константы события и определяет название события. Если тег не указывается, комментарий констатны не заносится в описываемый класс.

@example exampleText - вставляет пример в текущее описание, при этом применяет к тексту кода особый стиль и генерирует заголовок. Сам код заключается в теги <listing version="3.0"></listing>. Код будет расположен в серой прямоугольной прокручиваемой области с сохранением пробельных символов.
Пример: @example The following code sets the volume level for your sound: <listing version="3.0"> var mySound:Sound = new Sound(); mySound.setVolume(VOL_HIGH); </listing>

@exampleText string - используется во внешних файлах с примерами, на которые осуществляется ссылка из тега @example. Этот комментарий должен располагаться в начале, перед первой строкой или в конце - ниже последней строки примера. Во внешних файлах примеров допустимо указывать только один комментарий в начале и один в конце.
Пример: /** * This text does not appear * in the output. * @exampleText But this does. */

@inheritDoc - используется для комментирования перекрываемых свойств и методов класса-потомка. При этом, в описание класса-потомока копируется комментарий из класса-предка, или из интерфейса, который реализуется этим классом-потомком. Копируется только содержимое тегов @param и @return. Остальные теги игнорируются. При формировании комментария для этого тега, соблюдается следующий порядок:
1. Интерфейсы, используемые описываемым классом (в свободном порядке) и все их базовые интерфейсы.
2. Прямой предок класса.
3. Интерфейсы, используемые классом прямого предка и все их базовые интерфейсы.
4. Повторяются п. 2 и 3 до тех пор, пока не будет достигнут класс Object.
Пример: @inheritDoc

@internal text - внутренний комментарий, который не будет включен в документацию.
Пример: @internal Please do not publicize the undocumented use of the third parameter in this method.

@param paramName description - добавляет комментарий, описывающий метод с именем paramName.
Пример: @param fileName The name of the file to load.

@private - исключает внесение комментируемого элемента в документацию.
Пример: @private

@return description - добавляет в описание метода раздел Return - комментарий касательно возвращаемого значения. Возвращаемый тип определяется ASDoc автоматически.
Пример: @return The translated message.

@see reference [displayText] - добавляет в описание метода раздел See Also - ссылка на описание элемента класса.
Пимер: @see flash.display.MovieClip

@throws package.class.className description - документирует ошибку (исключение), которую может генерировать метод.
Пример: @throws SecurityError Local untrusted SWFs may not communicate with the Internet.


Не ASDoc теги

Я не нашел эти теги в Adobe LiveDocs, но люди их пользуют.

@author - автор кода. Пример @author Name
@version - версия кода. Пример @version 3.15
@langversion - языковая версия. Пример @langversion ActionScript 3.0
@playerversion - версия Flash Player. Пример @playerversion Flash 8


Примеры использования тега @see:

@see "Just a label" - текстовая строка
@see http://www.cnn.com - ссылка на внешний веб-сайт
@see package-detail.html - ссылка на локальный HTML-документ
@see Array - класс верхнего уровня
@see AccessibilityProperties - пакет
@see flash.display.TextField - класс TextField в пакете flash.display
@see Array#length - свойство класса верхнего уровня Array
@see flash.ui.ContextMenu#customItems - свойство класса ContextMenu из пакета flash.ui
@see #updateProperties() - метод в описываемом классе
@see Array#pop() - метод класса верхнего уровня Array
@see flash.ui.ContextMenu#clone() - метод класса ContextMenu из пакета flash.ui
@see global#Boolean() - метод пакета верхнего уровня global
@see flash.util.#clearInterval() - метод из пакета flash.util

Относительно правил ASDoc-комментирования смотреть списанное из чужой тетради.

PS: Наконец решил расставить все точки над Ы и правильно комментировать свой код.

2008-01-16

15:03:12, Flash-ripper.com
FlashPhone.ru подвергся атаке довольных пользователей

Через месяц+ после запуска сервиса FlashPhone.ru удобство и уникальные особенности оценили более 30000 человек, ставших его пользователями. Сейчас это настоящий SIP-софтфон, который позволяет подключать неограниченное число SIP-провайдеров VoIP и совершать бесплатные звонки по SIP между пользователями (а также на Москву и Санкт-Петербург. Для звонков на другие направления можно подключать учетные записи VoIP-провайдеров при помощи веб-интерфейса).

Преимущества flashphone.ru:

Не нужно устанавливать ПО, для звонка достаточно открыть страницу в браузере. Сервис умеет использовать HTTP-туннелирование, так что у пользователей никогда не возникнет проблем с NAT и firewall — все работает через 80 порт.

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

Виджет CallMe

Одним из интересных нововведений сервиса является виджет CallMe: любой пользователь flashphone может заказать такой себе, отправив заявку на info@flashphone.ru (в письме нужно указать свой логин и куда будет звонить виджет — на flashphone, на SIP URI или на обычный телефонный номер, в последнем случае будет использоваться добавленный аккаунт оператора VoIP). HTML-код виджета встраивается в html-код страницы (как ролики youtube), его можно добавить хоть на страницу livejournal хоть на сайт/блог, чтобы посетители могли прямо с сайта позвонить автору (хозяину виджета). В ближайшее время виджет станет доступен всем пользователям сервиса.

Проект еще на ранней стадии развития, но оно идет быстро. Обсудить FlashPhone можно на его форумах.


14:16:24, RIA crumbs
Внешние ресурсы во Flex 3 приложениях или напильник при компиляции :)

Давно хотел написать об этой “фишке” во Flex 3, но руки не доходили. Как известно при создании нового проекта добрый Flex 3 создает папочку src в какую складывает AS и MXML. В процессе разработки, если мы используем внешние ресурсы, нам приходится указывать пути к ним с учетом уже того, что наши исходники лежат в папке, то есть к примеру - “../assets/icons/somesuperiormegaicon.png”. И на выходе мы имеем в папке bin наш swf и папки, но пути остались с “лишним ../”, из-за чего ресурсы не загружаются в приложение.. и приходится создавать папку в которую складываешь сам swf дабы сохранить пути рабочими…
Вопрос знатокам, как можно починить этот не приятный момент ?


14:06:29, Flash-ripper.com
Вернулся из Москвы. Общее впечатление одним словом

Охуенно.

Подробности - следующих постах, тока в офис зашел.


13:43:40, RIA crumbs
Головная боль при скиновании во Flex 3 от Adobe

В процессе глубокого дебага скинов на проекте с использованием Flex 3 поймал грабли на том, что к примеру границы у PanelTitle не хотел быть как и прежде и Accordion не “поднимает” значения атрибута selectedFillColors. Если честно была озадаченность в мозгах и поиски каких-то косяков с нашей стороны, но все оказалось намного проще, на первый взгляд :)

Оказывается что Adobе, в процессе изменения SDK для Flex 3, решили добавить флаг для компилятора -compatibility-version, указав который мы насильно заставляем наше Flex приложение, разработанное с использованем SKD для Flex 3, использовать поведение некоторых UI компонент из старого доброго SDK 2.0.1 :) На Adobe Labs есть описание флага и различий между SDK, а также заметки о том где пользователь наступит на грабли.

Вот такие пироги…


2008-01-15

19:45:50, Constantiner's blog
Вторая встреча RAFPUG в рамках Adobe Flex and AIR Pre-Release Tour

Вчера в Москве состоялась вторая встреча Russian Adobe Flash Platform User Group. Это событие проходило в рамках Adobe Flex and AIR Pre-Release Tour, что само по себе придало мероприятию высокий статус.

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

Опишу хронологически так, как видел это я. Сразу скажу, что я не буду пересказывать технические подробности содержания докладов. Ибо доклады были большими, концентрированными, и мероприятие для того и проводилось, чтобы они были выслушаны. Вдобавок, снималось много видео, которое, надеюсь, будет выложено. Также обещали выложить все презентации.

Ну, поехали. В общем, все началось задолго до самого официального мероприятия. Пока все работали на своих работах, приезжие были предоставлены общению и питью кофе/пива. И происходило все это на Старом Арбате в Старбаксе и Кружке. Среди приехавших из Питера были замечены Юля “Junique” Николаева, Павел “Vertex” Кожин, Дима “Maar” Арышев (у которого, кстати, в тот день был юбилей - ему исполнилось 27 лет: поздравляем!) и ваш покорный слуга. Были также важные персоны из Харькова: Ростислав “Рост” Сирык и Эльдар “Pirrest” Прилуцкий. А также сочувствующие москвичи Саша “Agahov” Гахов и Таня Белая.

Программисты в неформальной обстановке перед встречей RAFPUG
Павел “Vertex” Кожин, Юля “Junique” Николаева, Дима “Maar” Арышев, Саша “Agahov” Гахов, Ростислав “Рост” Сирык и Эльдар “Pirrest” Прилуцкий в кабацкой обстановке перед второй встречей RAFPUG

Давно ожидаемое присутствие Роста было как бальзам на душу. Общение лилось рекой и запивалось пивом. Ну что тут рассказывать? Там надо было быть.

Рост и Таня Белая
Рост и Таня Белая в неформальной обстановке pre-party :)

В итоге качество переросло в новое качество, и мы двинулись по направлению к ФМШ-2, где проходило мероприятие, вызванивая попутно тех, кто почему-то оказался неоповещен (типа Миши “Nox Noctis” Антипина, которого в итоге удалось подвигнуть).

А там уже собралась огромная куча народа! Кворум явно был. Как всегда основную роль в организации события взяли на себя ребята из Flexis - партнеров Adobe, за что им отдельное спасибо.

Слушатели в зале на второй встрече RAFPUG
Зал скорее полон, чем пуст :)

Представителей русскоязычного Flex-сообщества (как гуру, так и нет), представленных в сети, было хоть отбавляй. В общем, были все.

Были также и гости-евангелисты из Adobe Andrew Shorten и Enrique Duvos, подготавливающиеся к презентации.

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

Enrique пришлось уступить свой ноутбук с декламированием английской пословицы: трубку, ноут и жену не отдам никому. Пока подготавливались материалы, слово взял Павел Черкашин, глава представительства Adobe в России.

Павел Черкашин
Вступительное слово главы представительства Adobe в России Павла Черкашина

Он сказал много теплых слов об образовавшемся сообществе пользователей Flash-платформы, поблагодарил школу, которая предоставила зал для встречи, рассматривая это как намечающееся тесное сотрудничество в образовательной сфере. Также короткое ответное слово взял директор ФМШ-2. Ему были вручены официальные благодарственные письма от Adobe. Между прочим, в зале сидело достаточно много учеников этой школы.

Дальше начался доклад Andrew Shorten. В вводном слове он рассказал о программе презентации и прочитал доклад о Flex и Flex Builder’е. Несмотря на чужой компьютер, на котором он просто не смог сходу запустить некоторые из подготовленных демо, все было на высоте. Отличная презентация, отличное чтение доклада, отличная работа с демонстрациями. Сам доклад шел на английском, но он переводился Александром Цыплихиным из Flexis, которому иногда помогал зал. Когда Andrew стал демонстрировать технические детали работы с новыми технологиями, перевод решили отменить: на него уходило слишком много времени и встреча могла затянуться.

Лично мне были интересны демонстрации приложений (Flex и AIR) и демонстрация возможностей Flex Builder’а 3 для дизайнеров. Также я подчерпнул некоторые фишки-нововведения нового билдера. Опять же, повторюсь, пересказывать доклад, да еще без презентации, да еще с моей памятью - задача глупая и неблагодарная. Будем ждать появления презентаций и видео.

После доклада Andrew ответил на ряд вопросов. Перерыв.

После перерыва (общение, кофе, булочки, общение) начал свои доклады (Open source и Data services) Enrique Duvos. Он говорил очень быстро с хорошо чувстсвующимся испанским акцентом. Иногда казалось, что он даже переходил на испанский, но все же прислушавшись можно было распознать родную английскую речь.

В остальном его доклад был на высшем уровне. Enrique поведал про весь спектр опенсорсных инициатив от Adobe, про то, как могут в них участвовать рядовые разработчики и что это им дает.

Во втором докладе Enrique рассказал про LiveCycle Data Services ES и опенсорсный BlazeDS, о тех преимуществах, что дает AMF перед другими протоколами и о том, чем отличаются представленные два сервера и что они дают разработчикам и пользователям.

Enrique и Andrew ответили на возникшие вопросы из зала и был провозглашен очередной перерыв.

Andrew Shorten и Enrique Duvos
Andrew Shorten и Enrique Duvos после выступления

Дальше пошли короткие доклады от представителей русскоязычного Flash-сообщества. Короткие потому, что времени было уже за девять вечера.

Я оттараторил свой обзорный доклад по концепции насыщенных интернет-приложений (RIA) в том виде, в котором эта концепция была представлена Macromedia в 2002-м году, соотнеся это с современными реалиями. Во временной регламент я уложился, но не вполне уверен, что такое конспективное изложение сильно порадовало публику. Саму презентацию можно скачать тут (1.5 M).

Дальше Иван Дембицкий растекся мыслию по древу насчет судеб Flash в России. Пересказывать не буду. Пусть Иван сам расскажет :)

Иван "iv" Дембицкий
Иван “iv” Дембицкий рассказывает об истории Flash в России

Завершил программу докладов Артемий Малков из Flexis с докладом об использовании Flash-платформы в образовании. Он глубоко уверен о том, что это наиболее перспективная технология во всех ее аспектах. Также он поведал два факта: о том, что они пишут школьный учебник по Flex и о том, что теперь для школьников и студентов Flash CS3 можно купить с 90% скидкой, а Flex Builder - бесплатно. Эту информацию официально подтвердила заместитель главы представительства Adobe в России Ольга Мананникова.

Артемий Малков
Артемий Малков читает доклад об использовании Flash в образовании

В завершение мероприятия началась веселуха в виде розыгрыша призов по заполненным анкетам. Разыгрывалась лицензия Flex Builder 3 Professional, Creative Suite 3 Web Premium, iPod Nano и пять фирменных рюкзаков Adobe со всякой ботвой в них. Интрига была в том, что те, кто сдал анкету, выиграл, но не присутствовал в зале, из процесса исключались.

Розыгрыш ценных призов
Ольга Мананникова, Andrew Shorten и Enrique Duvos разыгрывают очень ценные призы по анкетам участников


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

В завершение Ольга Мананникова объявила о том, что в скором времени нас ждут конкурсы на лучшее приложение (очевидно Flex и/или AIR). Причем россиянам будут доступны два конкурса: европейский, где российский Adobe будут содействовать в соблюдении всех необходимых для конкурса формальностей, и российский, главным призом которого будет поездка на MAX Europe. Детали и условия будут объявлены позже. Отличные новости!

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

Интересным моментом было привезенное Ростом с Украины из полтавской области копченое сало от элитной генетически немодифицированной свиньи. Это было божественно! Не знаю, как ему удалось провезти наркотик через границу, но я с него реально тащился :)

Сидели мы до самого закрытия заведения, но в 12 ночи нам с Vertex’ом пришлось убежать на поезд в Питер. Рост же по случаю приезда задержался еще и на сегодня (сейчас, наверное, трясется в поезде: удачно доехать!).

Что же я могу отметить по поводу этой встречи:

  • Позитив. Пожалуй, это была самая позитивная тусовка Flash-сообщества из всех, в которых я участвовал. Я просто очень доволен коллегами. Вы очень приятные в общении люди! Этого заряда позитива мне хватит надолго.

  • Отдельно отмечу приезд Роста. Я так давно мечтал с ним познакомиться, и вот это случилось. Мэн, ты суперский чувак. Думаю, что еще увидимся! :)

  • Самая представительная выездная встреча учаснегов RIAPriority.com. Не хватало только Ани “Graann” Громовой для полного собрания :(

  • Андрюха и Энриха, евангелисты из Adobe, очень классные чуваки. Жаль, что у них столь напряженный график и столь велико желание попробовать русскую кухню. А то у них был большой шанс выпить много русской водки. Надеюсь, мы их еще увидим!

  • Приятно и полезно, что о нас стали думать в Adobe. Это большое дело. Так держать!

  • Всем спасибо! :)

Приведу еще ссылки на уже опубликованные отчеты со встречи:


18:49:49, Скачать флешки, флеш, бесплатные Flash уроки и исходники. Создание сайтов.
Заменяем стандартные курсоры во Flash

    Flash урок с исходником и примером о том, как изменить изображение курсора во флеш

    Учимся изменять стандартные изображения курсоров

    Часто бывает, что в соответствии с задумками дизайна, или по другим причинам нам нужно изменить стандартное изображение курсора во Flash на другое, своё собственное. Допустим вы хотите сделать анимированный курсор, наподобие “песочных-часов”, что появляются в Windows при загрузке, или мелкий текст, который можно было бы просматривать в увеличенном виде под лупой, согласитесь, смотрелось бы не плохо, если бы курсором в этом случае выступало само увеличительное стекло. В общем применений такому эффекту в флешках можно найти море, а как вы будете его использовать уже совсем другой вопрос. Нашей задачей сегодня является разобрать, на примере Flash урока, как такой эффект создаётся. Исходники прилагаются.

    Продолжение тут »

    Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong Linkstore.ru

14:22:40, Junik
По горячим следам второй встречи RAFPUG

Только сегодня утром с поезда, поэтому напишу кратко и под впечатлением.

Побывала на второй встрече RAFPUG, а главное, послушала Andrew Shorten и Enrique Duvos в рамках Adobe Flex and AIR Pre-Release Tour.

Именно от докладов Andrew Shorten и Enrique Duvos у меня наиболее сильные впечатления. Мы так долго этого ждали, и вот они приехали в Россию.

И было, что послушать. Если вы это пропустили, то могу только посочувствовать, потому что даже просто послушать было приятно. Выступления очень хорошего уровня. Уровня, к сожалению, пока не достижимого в России. В общем, нам есть к чему стремиться - и то, к чему можно стремиться было проиллюстрировано.

Первое выступление Andrew Shorten пытались переводить (с посильной помощью Кости). Не знаю, как кого, но меня перевод только отвлекал от сути, поэтому радует, что остальные выступления евангелистов прошли без перевода. Даже вопросы разработчики задавали на английском языке, что не может не радовать, так как говорит о том, что сообщество становится все более профессиональным.

И Andrew Shorten, и Enrique Duvos рассказали много интересного, поэтому настоятельно рекомендую посмотреть их презентации и видео-записи выступлений. Лично для меня самыми интересными моментами были рассказ про BlazeDS и Open source.

Среди примеров приложений, сделанных на Flex приводился Buzzword, который был приобретен компанией Adobe. А это говорит о том, что Adobe сейчас заинтересован в таких web-приложениях. Более того, Adobe предлагает российским разработчикам участвовать в конкурсе на лучшее Flex 3, AIR приложение, и в качестве приза предлагается поездка на следующий Adobe MAX в Европе.

Завершали встречу выступления Кости, Ивана Дембицкого и Артемия Малкова.

Константин уже по традиции поведал нам о том, что такое RIA. Если есть еще люди, которые не знают, что это такое - убейте себя апстену. :)

Иван кратко поведал о том, как развивалось flash-сообщество до того, как Adobe все-таки обратил свое внимание на Россию. Удивительное рядом - ни слова про кривые Безье. ;)

Артемий же рассказал о том, насколько может быть полезным применение flash-платформы в российском образовании.

Теперь совсем кратко о неофициальной части.

Тут мне очень повезло, потому что я познакомилась с самим Ростом! Ростислав оказался очень интересным во всех отношениях - не только как flash-разработчик, но и как человек.

Приятно, что команда riapriority была почти в полном составе, не было только Graann. Но мы будем работать над посещаемостью. :)

Жаль, что неофициальная часть началась очень поздно и необходимо было бежать на поезд. Но ведь мы все еще встретимся. :)


12:31:00, Flex 2 & Co
Разновидности Flex-специализаций
Яков Файн обещал флексовый бум в 2008 году. И вот он настал и флекс-программисты сейчас в большом дефиците (имеются ввиду, наверно США). В настоящий момент его команда работает над двумя проектами, суть которых состоит в переносе приложений с Java на Flex. В этих проектах естественно участвуют Flex-разработчики. Поэтому вашему вниманию предлагается их классификация:

1. Разработчики GUI (графического пользовательского интерфейса)
2. Разработчики Flex-компонентов
3. Flex-архитекторы

К первой группе относятся люди, способные создать внешний вид приложения. Это так называемая стартовая позиция в иерархии Flex-профессий. Вам необходимы лишь базовые знания программирования. Статьи и презентации евангелистов создают впечатление, что работа с Flex достаточна проста - накидал компонентов, выровнял их, повесил пару функций на кнопки и вуаля. Как Visual Basic в вебе. Этому легко обучиться самому, поэтому не ждите больших дидвидендов от этой позиции, так как многие также легко могут это постигнуть.

GUI разработчики взаимодействуют с веб-дизайнерами, которые создают шаблоны приложения.

Рассмотрим следующую позицию - разработчики компонентов. Эта каста должна объединять в себе знания предыдущей группы плюс знания в области объектно-ориентированного и событийного (event-driven) программирования. Знания паттернов проектирования также поможет, но здесь будьте осторожны. Особенно, это относится к людям, пришедшим из Java. Не злоупотребляйте паттерном MVC. Шаблон, созданный дизайнером, должен быть разбит на несколько компонентов, взаиммодействующих друг с другом. Поэтому использования паттерна Mediator здесь подойдет лучше (пример).

Также помните, что, хотя ActionScript 3 очень похож на Java, он дает нам динамическое программирование, поэтому нет необходимости создавать тонны строго определенных объектов как в Java.

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

В небольших командах обычно последние две специализации объединены в одном человеке. Если для вашего проекта необходимо создание собственного фреймворка на основе Flex-фреймворка, то вам понадобятся фреймворк-кодеры.

Ну и как в Голливуде:
Если вы хотите изучить Flex, дерзайте и вступайте в растущее Flex-сообщество. Решите, кем вы хотете быть и идите к этой цели. Be what you can be.

Оригинал

10:03:00, Flash-разработка
Вторая встреча RAFPUG. Дети - наше будущее.

Владелец "Быстроупака" был чрезвычайно доволен. "Красиво составлено, - решил он, - под таким соусом и деньги дать можно. В случае удачи - почет! Не вышло - мое дело шестнадцатое. Помогал детям, и дело с концом".
Двенадцать стульев. Илья Ильф, Евгений Петров

Вторая встреча состоялась 14 января 2008. Несколько ключевых моментов: комьюнити, доклады, место проведения, дети.

Место проведения

Место нашли быстро, благодаря фотографиям, размещенным в анонсе. Иначе, можно было бы долго плутать между длинных заборов. Итак, к 17 часам мы оказались в заведении, именуемом "Московская физико-математическая школа №2". Кстати, впечатление вполне положительное - всё чисто, ухожено и культурно. Рядом со входом уже курили участники встречи в том числе Рост, Иван, Константинер, Таня и другие сотоварищи. Поздоровались - уухх руку не буду неделю мыть!

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

Доклады

После вступительного слова о пользе и благодарности компании Adobe, микрофон взял Andrew Shorten. Несколько раз оглушенный высокочастотными писками и скрипами из динамиков, он произнес хвалебную речь новым достижениям Adobe в области RIA. Доклад сопровождался переводом, что было хорошо для понимания, но убийственно для времени проведения мероприятия. Зато дети не скучали и внимательно слушали. После доклада много времени убилось на вопросы слушателей, в принципе не сильно важные и интересные.
Лично для меня, доклад внес ясность в некоторые вопросы касательно AIR. В остальном - просто обновил и подкорректировал общую картину продукции Adobe.

После буфета, последовал доклад про Flex 3. На этот раз обошлись без перевода и мне пришлось включить свой английский. Дети начали потихоньку линять.
Andrew на примерах рассказал о том, как сделать компонент, создать скин для компонента, показал новые фичи. Сильно подпортил картину тормозной компьютер, за который Andrew постоянно извинялся и краснел. Кроме того, примеры были уже "заготовлены", что смотрелось менее познавательно и убедительно чем в докладе Артемия Малкова на первой встрече. Но в итоге лично я остался доволен. Нас собрали, бесплатно рассказали о важных и познавательных вещах, да еще и покормили.

После нескольких вопросов-ответов, слово взял Enrique Duvos. Доклад читался на английском с испанским акцентом. Этот чертов испанец, в свойственной им манере, так зашустрил, что пришлось включить свой быстрый английский. А он у меня еще не доделан. Поэтому, информация усваивалась частично и большей частью читалась с экрана. Но на экране тоже было всё мелко и с нашего ряда неразборчиво.
И всё же, урывками, я получил общее представление о том, какие продукты являются open-source, какие нет, чем это всем грозит и как всё это замечательно. Дата-сервисы дались труднее. Впечатлила демонстрация синхронной работы двух флекс-приложений, причем, синхронизация осуществлялась мгновенно посредством сокетов через веб-сервис.
Почти все дети ушли. Остались самые стойкие. Точнее стойким был один. Он сидел в ряду перед нами и внимательно слушал. Его вид настолько меня впечатлил, что мне даже за себя стало стыдно что я половину читаемого не понимаю... Рядом дальше сидели два его товарища. Нет - они полулежали, полукрутились, полуспали и упирались лбами в спинки впереди стоящих стульев. Короче, создавали контраст, что вселяло еще больше уважения к первому стойкому. Не... если б мне обломился приз на розыгрыше, я б наверное отдал приз ему.

Перекусив парой-тройкой булок в буфете, мы перешли к заключительной части. Заключительная часть была сильно скомкана. И не удивительно. Уже был 10й час. Constantiner, уложившись в 10 минут поведал о RIA. Что можно рассказать о RIA за 10 минут? Только общие фразы, которые в основном нам всем уже известны. Жаль, что мероприятие началось так поздно - я убежден, что Костя хотел нам рассказать гораздо больше и интереснее.
Иван Дембицкий еще раз доказал свою компетентность и заслуженное уважение во flash-сообществе. Как я краем уха слышал без подготовки, Ваня выразил наше общее настроение, по сути, подведя резюме первой встречи.
Артемий Малков завершил выступления. Мысль его была направлена на внедрение flash в систему образования. Презентация его была украшена забавной анимацией, наглядно показывающей, как здорово на флэш смотрятся физические опыты. Однако, большое черное пятно в левом нижнем углу выглядело на экране проектора как тень от чьей-то прострелянной головы, что было еще забавнее.

В конце мероприятия провели розыгрыш призов. Все участники заполнили анкеты, из которых и выбирались счастливчики. Призы были действительно ценные - коробки с Flash CS3 (или Master Collection?), Flex Professional, iPhone nano, ну и по мелочи - рюкзаки. Правда призы застряли где-то по дороге, но обещали что их доставят почтой.
Мы-то знаем для чего нужен розыгрыш в конце мероприятия - чтоб народ до конца досидел и анкеты заполнил. Лишняя мотивация - перестраховались что ли? Сомневаюсь, что кто-то сидел ради призов.

А вообще, ребята из Adobe вызвали только положительные эмоции. Веселые, симпатичные парни, вызывающие доверие и располагающие к разговору. Всё шутили, но на вопросы отвечали довольно серьезно. И не удивительно - специально обученые бойцы Adobe.
Кто-то говорил, что будет Суми Лим (глобализейшн менеджер). Но, то ли я ее не заметил, то ли я что-то не догнал, то ли ее не было.

Впечатления

  • Жаль что поздно начали. Во второй половине дня уже мозг плохо воспринимает информацию и зовут домашние дела. И времени явно не хватило.
  • Доклады, несмотря на многие недостатки, оказались очень ценными и я нисколько не жалею о потраченном времени.
  • Идею преподавать программирование на Flash в школах лично я поддерживаю, т.к. у флэша есть одно главное преимущество - с ним интересно работать. Детям это будет увлекательнее чем бэйсик. Кроме того, в комплексе могут быть даны основы графики и анимации.
    Но есть одно НО. Преподавать надо соблюдая правила программирования, чтобы не запудрить детям мозг нетипизированными переменными, глобальными _root-ами и другими вредными особенностями ActionScript. А еще точнее - преподавать надо не ActionScript, а программирование согласно стандарта ECMAScript. Иначе можно "попортить" наших программистов.
  • Насчет вопроса о преподавании Flex в ВУЗах сомневаюсь. Точнее, преподавать нужно, но факультативно. Пусть учащиеся сами выбирают кем они хотят быть и на чем хотят программировать. Создавать факультет Flex-разработчиков или кафедру Flash, на мой взгляд, мало кто согласится. Это узкая специализация. Хотя, кто знает... RIA-специалист, возможно вполне реальная специальность. Но она много чего в себя должна включать. А Flash/Flex-разработка лишь как составляющая.
    Вызвало недоумение утверждение Артемия Малкова по поводу преподавания Flash/Flex - (по памяти) - "Если кто-то рисует хорошо - будет рисовать, кто-то похуже - будет программировать". Как-то однобоко. А если и программировать не умеет? В расход пускать?
  • Ждем следующей встречи!

2008-01-13

18:35:28, Flash-ripper.com
Еду на RAFPUG! ;-)

Я успел сделать свои дела и даже внезапно сломавшийся вчера и срочно требующий замены завтра холодильник не в силах меня остановить. Теперь, чтобы попасть на встречу Adobe Russian Flash Platform User Group, осталось только купить билет на поезд, йохохоу! Выехал на вокзал.


2008-01-12

18:31:33, Flash-ripper.com
Чем теперь занимается Джонатан Гей — отец технологии Flash

Джонатан Гей (Jonathan Gay) — это совладелец компании FutureWave, которая была куплена компанией Macromedia в 1996 году. Второй ее владелец, Чарли Джексон, не перешел работать в Макромедию, его больше влекли инвестиции в новые отрасли. Поэтому именно Джонатан занимался технологией Flash вплоть до 2006 года (должность CTO, Macromedia). Версии Flash с 1 по 4 он программировал собственноручно. Он же изобрел флэш-видео (проект Tin Can). Он же создавал технологию Breeze.

Четыре Макромедийца, не ставших Адобовцами

Но во время слияния уже Adobe и Macromedia Джонатан сделал шаг в сторону и не примкнул к Adobe. Так же поступили трое его бывших коллег по Macromedia: Гари Гроссман (Gary Grossman, бывший ключевой разработчик Flash Player и языка ActionScript), Питер Сантаньели (Peter Santangeli, бывший менеджер Flash Media Server и Breeze) и Роберт Татсуми (Robert Tatsumi, соавтор Flash еще со времен FutureWave — это он сделал таймлайн, панели пользовательсокого интерфейса, библиотеку и первый набор UI Components).

Не войдя в Adobe, эти четверо основали собственную компанию Software as Art. Теперь они вместе управляют этой компанией, и среди них есть только один не-Макромедиец — Мэттью Смит (Matthew Smith — похоже, весьма зубастый маркетолог). Software As Art занимается встраиваемыми системами для экономичных и экологичных домов. Их слоган — "Интерактивное Управление Энергией" (Interactive Energy Management). Интересно будет за ними понаблюдать — судя по их новостям и вакансиям, дел хватает.


2008-01-11

13:42:00, Flash-разработка
uint лучше не использовать для счета. AS3
В обсуждении "AS3: uint на много медленнее, чем Number" выясняется, что тип uint лучше не использовать для счетных целей, если конечно нет особой необходимости. Сам с собой он складывается ужасно, с Number еще ужаснее.

13:19:33, Flash-ripper.com
Бьюсь головой об стол — не попадаю на RAFPUG 2

Я, скорее всего, не попаду на вторую встречу Adobe Russian Flash Platform User Group. Очень хочу вас всех повидать, но — не получается.

Внимание: уточнено время и место встречи, читайте подробности у Кости Ковалева и в гугл-группе RAFPUG (тем же — о регистрации). Не пропустите голосование за логотип RAFPUG.

Харьковчанам, едущим на RAFPUG

Один человек их Харькова на встречу уже едет — это Pirrest. Он предлагает скооперироваться всем желающим скрасить время пребывания в поезде — отставляйте комментарии.

12:26:00, Flash-разработка
Adobe отдыхает




01:44:00, Flex 2 & Co
Pacifica - VoIP-проект от Adobe
На MAX 2007 Adobe анонсировал новый проект под кодовым названием "Pacifica". Было продемонсрировано простое приложение с использованием высококачественного голосового кодека. Качество было настолько высоким, что некоторые не верили, что это VoIP.

Несколько фактов о Pacifica:
  • Pacifica разработана на основе открытого SIP протокола;
  • Основной целью является поддержка высокого качества звука;
  • Сейчас Pacifica позволяет осуществлять P2P передачу медиа-данных с помощью серверов;
  • Одной из задач является уход от сложных серверных решений, которые необходимы сейчас для VoIP технологий.

Планы по развитию проекта:
  • Поддержка Video over IP;
  • Поддержка AIR приложений;
  • Поддержка стандартных телефонных сетей;
  • Поддержка текстовых сообщений и др.

Участвовать в разработке можно пройдя небольшой опрос.

Официальный сайт проекта

2008-01-10

19:25:28, Constantiner's blog
Уточнения по ближайшей встрече RAFPUG
European Flex 3 pre-release tour

Появились детали по месту и времени проведения ближайшей встречи Российской Группы Пользователей Flash-платформы в рамках Adobe Flex and AIR Pre-Release Tour, о котором я уже писал.

Это будет 14 января (понедельник). Начало регистрации в 16.30. Начало в 17.00.

Место проведения:
город Москва,
м. Ленинский проспект,
ул. Фотиевой, д. 18, ФМШ-2
Проезд: от станций метро “Октябрьская” или “Ленинский проспект”
на троллейбусе № 4, 33, 62 и 84 или автобусе 111 до остановки “Универмаг МОСКВА”

Кстати, у нас в Питере есть на станции метро Московская Московский универмаг (МУ). Интересен он тем, что располагается симметрично по двум сторонам Московского проспекта, за что и получил свое народное прозвище Муму. Отсюда и глагол “мумить", верно характеризующий жизненное кредо учаснегов RIAPriority.com :)


14:42:47, Junik
Изменения локализации во Flex 3

Ранее я уже писала про рантайм локализацию в посте Легкая локализация во Flex. А будет ли runtime локализация? И с выходом третьей беты Flex 3 можно с уверенностью сказать, что рантайм локализация не только будет, но уже и есть.

И вообще, радуют изменения которые произойдут в третьей версии Adobe Flex в области локализации приложений.
На мой взгляд основными бонусами станут:

  • компиляция приложения с несколькими locale одновременно
  • возможность переключения locale в рантайме (причем соотвествующие resource bundles могут быть как вкомпилены в приложение, так и подгружены)
  • возможность программного создания resources, например из XML файла
  • возможность использования картинок, звуков, видео, стилей и т. д. при локализации

Мало того, что вы можете запросто сделать кнопочку переключения языков у себя в приложении, так еще и при этом переключении менять не только надписи GUI, но и картинки, звуки и например размер шрифта. Кстати, изменение размера шрифта для некоторых языков прямо таки жизненно необходимо, на мой взгляд.

Более того, locale, загружаемую по умолчанию, можно определить в параметрах HTML обертки. А это говорит о том, что вы можете доставлять один swf файл со всеми языками и только в html в параметрах определять, какой язык сейчас увидит пользователь.

А теперь о менее приятном - о том, что вам придется переписать в своих существующих приложениях для перевода их на Flex 3 SDK и использования выше обозначенных бонусов.

Установив третью бету 3-его Flex, сразу же бросились в глаза варнинги по поводу устаревшего применения ResourceBundle с помощью соответствующего метатега.

  1. [ResourceBundle("bundlename")]
  2. private static var rb:ResourceBundle;

Примечательно, что использование директивы @Resource не изменилось. Однако в доках недвусмысленно намекается на то, что лучше не использовать этот способ, так как например, он не позволяет использовать переключение locale в рантайме.

Почему же так не нравится компилятору применение метатега ResourceBundle? Потому что при таком способе, вы лишаетесь удовольствия компилить приложение сразу с несколькими локалиями.

Новый способ взаимодействия с resource bundle - это использование ResourceManager. А скорее всего, вы будете использовать свойство resourceManager, которое теперь есть у всех потомков от UIComponent, Formatter или Validator.

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

Все эти радости можно увидеть уже на существующей Flex 3 SDK 3 beta 3.

Например, в дополнительных параметрах компиляции прописываете -locale=US,RU,GE.
Кстати, не забудьте, произвести операции описанные в статье Flex 3:Feature Introductions: Runtime Localization, а иначе не избежать вам ошибок компиляции вида Unable to resolve resource bundle “collections” for locale. Правда для чартингов мне все равно пришлось ручками копировать.
В результате получаете swf с тремя встроенными locale-ми: английская, русская, немецкая. Добавляем в html-оболочку во flashVars localeChain=RU,US. В результате наблюдаем русскоязычное приложение, недостающая часть перевода которого пока на английском.

В общем, поздравляю нас всех - локализация приложений станет удобнее! :)


13:09:48, Flash-ripper.com
Средняя зарплата Flex-разработчика: 100 у.е. в час

Ресурс HotGigs утверждает, что средняя стоимость одного часа работы Flex-разработчика составляет на сегодня 100 долларов в час. Минимальная цена за час flex-работы равна $75, а максимальная — $150. Весьма оптимистычные цифры, я прав? HotGigs также предлагает менеджерам калькулятор бюджета Flex-приложений.

Также открыта специальная группа ruFlexJobs для размещения любых объявлений, связанных с заказами на технологию Flex — пусть флекс-разработчик и заказчик найдут там друг друга.


10:43:00, Flash-разработка
Осваиваем Papervision3D. Часть III. Примеры
Продолжаем вгрызаться в Papervision 3D.
Для тестирования я выбрал пример "Panorama" из папки "examples". Кстати, попутно еще раз убедился в пользе SVN: скопировав папку с примером в рабочий каталог, я скопировал находящуюся в ней папку ".svn" - теперь в любое время, я могу выбором из контекстного меню проводника легко обновить файлы прямо с сервера SVN-репозитория. Чертовски удобно - пора ставить SVN-сервер!

Создаю во FlashDevelop проект типа "Flash IDE Project". В свойствах проекта, в "Classpaths" указываю путь к классам Papervision3D "...\as3\trunk\src". Это нам нужно для того, чтобы работала проверка ошибок, подстановка и другие удобства. Как только классы подцепились, в панели "Task Panel" FlashDevelop появился список задач TODO, что говорит о незавершенности и бурном развитии проекта.
Теперь надо указать путь к классам во Flash IDE. В Getting Started FAQ нам советуют установить путь в свойствах среды: "Edit -> Preferences -> Actionscript -> Actionscript 3.0 settings -> Classpath". Пожалуй не буду обобщать и укажу путь для моего конкретного FLA файла в "Publish settings -> Actionscript Settings -> Classpath". Кстати, там уже есть путь к классам, но только относительный, а раз мы скопировали в другую папку, то, конечно, неправильный.
Запускаем проект - всё компилируется без ошибок, запускается панорама - мы внутри куба, на стенах которого надписи. Попробуем что-нибудь изменить. Например, мне не нравится качество отображения надписей. Всё из-за того, что текстуры маленькие и качество сцены установлено в LOW. Увеличиваем размер одной из текстурок - например, та что "BOTTOM". Хе, на размер 3000 выскочило исключение. Ладно, поставим 2000. Забавно натягивает.
Заметил хитрый ход: изменение качества сцены сильно не меняет картины, однако, ресурсов процессора потребляется заметно меньше.
Продолжаем смотреть примеры. В общих чертах - создается сцена, создается камера, создаются материалы для объектов, создаются объекты и добавляются в сцену, выставляются параметры и по ENTER_FRAME осуществляется управление сценой и ее перерисовка.

Примеров вполне достаточно, чтобы разобраться и начать применять Papervision3D в своих проектах. Чем мы активно и займемся в ближайшее время.

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