- Event Generator - генератор событий. Необходимо выбрать мувиклип, открыть панель (Window > Other Panels), определить необходимые события, скопировать в буфер и потом вставить готовый код куда нужно. Это значительно облегчает монотонные записи добавления событий.
- Калькулятор - считаем не выходя из любимой IDE.
- Панель заметок позволяет легко сохранять интересные куски кода с названиями.
пятница, февраля 29, 2008
Улучшаем Flash 9 IDE
четверг, февраля 28, 2008
Использование RSL классов фреймворка и кэширование в плеере
Каждое Flex приложение использует Flex фреймворк, который сам по себе является широким набором классов, определяющих инфраструктуру приложения. Если пользователь загружает два различных приложения, то эти приложения будут содержать одни и те же классы фреймворка.
Чтобы не внедрять одни и те же классы на этапе компиляции, можно использовать внешние библиотеки классов (Runtime Shared Libraries или RSL) классов flex-фреймворка, то есть подгружать эти классы на этапе загрузки приложения. Существует два вида RSL классов фреймворка – подписанные и неподписанные. Подписанные RSL кэшируются плеером, доступ к ним возможен из любых приложений вне зависимости от доменов. Они не удаляются при очистке кэша браузера. Неподписанные RSL кэшируются браузером и могут использоваться только приложениями, которые имеют доступ к домену RSL.
Flash Player 9.0.115 поддерживает загрузку подписанных RSL классов фреймворка. Эти RSL имеют расширение SWZ, и только Adobe может их создавать. Для плееров версий ниже 9.0.115 будут автоматически загружаться запасные неподписанные RSL, если конечно они были определены при компиляции приложения.
Только приложения, скомпилированные с помощью Flex 3, могут использовать подписанные RSL.
Существующие RSL
Для SDK RSL классов фреймворка находятся в папке flex_sdk_dir/frameworks/rsls, для Flex Builder - flex_builder_dir/sdks/3.0.0/frameworks/rsls. Файлы именуются следующим образом – версия Flex плюс версия сборки компилятора. Следующие RSL классов фреймворка включены в продукты Flex:
- framework_3.0.build_number.swz (подписанная RSL классов фреймворка)
- framework_3.0.build_number.swf (неподписанная RSL классов фреймворка)
- rpc_3.0.build_number.swz (подписанная RSL классов сервисов данных (data services)
- rpc_3.0.build_number.swf (неподписанная RSL классов сервисов данных)
- (Только для Flex Builder) datavisualization_3.0.build_number.swz (подписанная RSL классов визуализации данных)
- (Только для Flex Builder) datavisualization_3.0.build_number.swf (неподписанная RSL классов визуализации данных)
Данные библиотеки уже оптимизированы.
Flex также включает некоторые SWC файлы, которые можно использовать как стандартные или кросс-доменные RSL. Эти библиотеки неоптимизированны и не подписаны. Они находятся в папке frameworks/libs: automation.swc и qtp.swc. Это классы для автоматизированного тестирования приложения.
Кэш плеера
По умолчанию, максимальный размер кэша плеера равен 20MB. После превышения этого размера кэш автоматически очищается от файлов, которые реже всего использовались. Очистка происходит, пока размер кэша не станет меньше 60%, то есть по умолчанию 12MB. С помощью Settings Manager можно регулировать место, отведенное под кэш плеера.
В следующей таблице показаны папки, в которых плеер хранит кэш:
Windows Vista - C:\Users\user_name\AppData\Roaming\Adobe\Flash Player\AssetCache\
Linux - /home/user_name/.adobe/Flash_Player/AssetCache/
Mac OSX - /Users/user_name/Library/Cache/Adobe/Flash Player/AssetCache/
Использование RSL классов фоеймворка
Использовать RSL классов фреймворка просто:
- заходим в свойства проекта;
- Flex Build Path -> Library Path
- Раскрываем Flex 3 -> framework.swc -> Link type -> Edit
- Ставим в выпадающем списке RSL и добавляем (Add) 2 файла – framework_build_number.swz и framework_build_number.swf
- Теперь эти два файла сохранятся в вашем проекте
Кстати, размер пустого приложения при использовании внешних библиотек сократился со 150 Кб до 50, правда сама библиотека весит порядка 550Кб, но она сохраняется в кеше и грузится только один раз.
среда, февраля 27, 2008
Проект Open Flash Chart
Проект в первую очередь разрабатывается для PHP, но есть версии и для Java, Perl, Python, Ruby and Rails и .NET (правда, не факт, что они будут той же версии, что и для PHP). В частности, для Ruby and Rails плагин, которые позволяет в два счета создать нужный график.
Кстати, использовать графики можно абсолютно бесплатно, но помощь приветствуется.
четверг, февраля 14, 2008
E4X запросы с учетом namespace'ов
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">
<channel>
<item>
<title>News feeds from the BBC</title>
<description></description>
<link>http://news.bbc.co.uk/go/rss/-/1/hi/help/rss/3223484.stm</link>
<guid isPermaLink="false">http://news.bbc.co.uk/1/hi/help/rss/3223484.stm</guid>
<pubDate>Mon, 21 Aug 2006 08:34:42 GMT</pubDate>
<category>RSS</category>
<media:group>
<media:category>RSS</media:category>
<media:copyright>(C) British Broadcasting Corporation</media:copyright>
</media:group>
</item>
</channel>
</rss>
Чтобы получить данные тегов из пространства имен media необходимо поступить следующим образом:1) создать пространство имен
var media:Namespace = new Namespace("http://search.yahoo.com/mrss/");2) обращаться к необходимым узлам с использованием этого пространства имен
var copyright:String = xml.channel.item.media::group.media::copyright.text();3) Ответ верный:
(C) British Broadcasting Corporation
пятница, февраля 01, 2008
Ошибка при отсутствии атрибута в XML
<data>
<row owner="Andrey"/>
<row owner="Peter"/>
<row/>
</data>Нам необходимо получить все записи, у которых owner = "Andrey".
Делаем как всегда:
var res:XML = httpServ.lastResult as XML;
var rows:XMLList = res.row.(@owner=="Andrey");Вылезает ошибка:
ReferenceError: Error #1065: Variable @owner is not defined.Чтобы решить эту проблему в лоб, нужно для всех узлов прописать атрибут owner, что не очень хорошо. Поэтому есть альтернативные виды получения этой информации:
1 способ:
var rows:XMLList = res.row.(attribute("owner")=="Andrey");2 способ:
var xml:XMLList = res.row.(hasOwnProperty("@owner")==true && @owner=="Andrey");
понедельник, января 21, 2008
Новый проект As3Eval
Демо
В закладке Eval UI можно увидеть сгенерированный байткод. Также можно вставить дамп (hexdump -C) свфки и дизассемблировать его.
Исходный код
SWC
вторник, января 15, 2008
Разновидности 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.
Оригинал
пятница, января 11, 2008
Pacifica - VoIP-проект от Adobe
Несколько фактов о Pacifica:
- Pacifica разработана на основе открытого SIP протокола;
- Основной целью является поддержка высокого качества звука;
- Сейчас Pacifica позволяет осуществлять P2P передачу медиа-данных с помощью серверов;
- Одной из задач является уход от сложных серверных решений, которые необходимы сейчас для VoIP технологий.
Планы по развитию проекта:
- Поддержка Video over IP;
- Поддержка AIR приложений;
- Поддержка стандартных телефонных сетей;
- Поддержка текстовых сообщений и др.
Участвовать в разработке можно пройдя небольшой опрос.
Официальный сайт проекта
понедельник, декабря 31, 2007
Всех с Новым годом!
среда, декабря 26, 2007
Tree vertical-scroll баг
При открытии нода дерева с сервера приходят данные об его дочерних элементах, изменяется этот узел датапровайдера, дети отображаются. Все вроде бы ничего, но если по высоте элементы не влезают в дерево, вертикальный скроллинг появляется только после повторного открытия нода (когда он уже знает о своих детях).
Решение - использовать кастомный dataDescriptor. Нашел в блоге Joan Lafferty здесь.
Бажное приложение:
treeScrollAuto.mxml
treeScrollAuto.swf
Решение:
treeScrollAutoFixed.mxml
myDescriptor.as
treeScrollAutoFixed.swf
среда, декабря 05, 2007
Девайс от Nokia с девятым флеш-плеером
Скринкаст Papevision3D 2.0
четверг, ноября 29, 2007
пятница, ноября 23, 2007
Онлайн-сервис для трассировки изображений в вектор
вторник, ноября 13, 2007
Новый Flex - новые чарт-компоненты
четверг, ноября 01, 2007
Flare visualization toolkit
Скачать
Демо
Урок
API докуметация
понедельник, октября 29, 2007
AIR SQLite Admin от Коэнратса
Mozilla представляет Prizm - симбиоз веба и десктопа

Как говорят разработчики, это не новая платформа, а просто полезное совмещение декстопных приложений, построенный с помощью XUL (XML User Interface Language) и современных веб-технологий. Если вкратце - Prizm позволяет добавлять ваши любимые веб-приложения на десктоп и запускать их оттуда.

Новость интересная. Даже адобы в комментах начали к словам придираться. Пойду качать и разбираться.
UPDATE: Вот более подробная инфа.
вторник, октября 23, 2007
Экспорт из DataGrid в Excel через буфер
private function exportToExcel(dg:DataGrid, fields:Array):void
{
var dp:ArrayCollection = dg.dataProvider as ArrayCollection;
if (dg == null || dp==null || dp.length==0 || fields == null || fields.length==0) {
Alert.show("Ошибка экспорта.");
return;
}
var i:int;
var j:int;
var l_dp:int = dp.length;
var l_f:int = fields.length;
var result:String = "";
for (i=0; i<l_f; i++)
{
result += fields[i][1];
if (i!=(l_f-1)) result+='\t';
}
result +='\r\n';
for (i=0; i<l_dp; i++)
{
for (j=0; j<l_f; j++)
{
var prop:String = fields[j][0];
var l_col:int = dg.columns.length;
var k:int;
for (k=0; k<l_col; k++)
{
if (prop == dg.columns[k].dataField)
{
break;
}
}
var f:Function = dg.columns[k].labelFunction;
if (f != null)
{
result += f(dp[i], dg.columns[k]);
}
else result += dp[i][prop];
if (j!=(l_f-1)) result+='\t';
}
result +='\r\n';
}
System.setClipboard(result);
}
Вызываем так:
exportToExcel(grd,
[['title','Заголовок'], ['rank','Рейтинг'],
['views', 'Просмотров'],['comp', 'Конкурсы'],
['access', 'Доступность'], ['pics','Количество изоб-й']])
,grd - id нашего DataGrid, а делее идет массив с dataField и заголовками колонок.
При экспорте также учитывается labelFunction. После выполнения функции данные можно смело вставлять в таблицу Excel.
Свежие видео-уроки от GotoAndLearn.com
- Вебкамеры, PNG и AIR
- Использование Document Class
- Drag and Drop в AIR
- Разработка AIR во Flash
- Основы Papervision3D
Все уроки подробные и понятные. Язык не обязателен - каждый шаг показан на видео, вплоть до того, как автор набивает код и исправляет ошибки:)