Флекс-вики снова работает. Неоценимую помощь в починке вики оказал один из лучших PHP-программистов Денис 'Q-Zma' Кузнецов. Да что там помощь — он просто все сделал там, где я стратил, и он сделал это за полчаса.
Я прошу прощения у всех, кто за время поломки вики не мог получить доступ к важной информации. Мне стоило сразу обратиться к профессионалу. Извините. Большущее спасибо тем, кто указывал мне на проблемы с вики и напоминал о них по почте и в блогах.
Ресурс HotGigs утверждает, что средняя стоимость одного часа работы Flex-разработчика составляет на сегодня 100 долларов в час. Минимальная цена за час flex-работы равна $75, а максимальная — $150. Весьма оптимистычные цифры, я прав? HotGigs также предлагает менеджерам калькулятор бюджета Flex-приложений.
Также открыта специальная группа ruFlexJobs для размещения любых объявлений, связанных с заказами на технологию Flex — пусть флекс-разработчик и заказчик найдут там друг друга.
FlexSpy (fxSpy, Flex Spy) делает то же самое, что делает FireBug для Firefox. FlexSpy позволяет изменять свойства компонентов Flex-приложения во время работы — например, в окне браузера. Это здорово облегчает дизайн флекс-приложений, Как FireBug облегчает отладку веб-страниц.
Можно увидеть FlexSpy в действии. Чтобы активизировать этот визуальный дебаггер, нажмите кнопку "FlexSpy" в правом верхнем углу. Внутри приложения откроется окно, позволяющее исследовать древовидную структуру визуальных компонентов и изменять их свойства — редактируемые помечены иконкой "карандаш". Эта штуковина может стать гвоздем в крышке гроба не слишком удобного дизайнерсокого режима самого Flex Builder.
Нужно изменить ширину контейнера и посмотреть, что получится? Пожалуйста. Увидеть, как будет выглядеть приложение с другим фоном? Без проблем.
Помимо того, что FlexSpy позволяет редактировать свойства и стили визуальных компонентов, он также имеет функцию удобного визуального поиска компонентов и подсветки редактируемого в данный момент элемента.
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> ... <mx:Script> <![CDATA[ import com.flexspy.FlexSpy; ]]> </mx:Script> ... <mx:Button id="btnFlexSpy" label="FlexSpy" click="FlexSpy.show()" /> ... </mx:Application>
Теперь и у флекс-дизайнеров есть свой отладчик. Ожидается AIR-версия для десктопа.
Коротко о компании: Aviary образована создателями Worth1000, главного сайта по фотожабам. Там дизайнеры соревнуются на звание искуснейшего надругателя над фотографиями. Иными словами, у Worth1000 уже есть большое сообщество, на котором наверняка и будут обкатываться создаваемые ими креативные инструменты. Следить за развитием событий можно через блог Aviary (много траффика), и там же можно подписаться на получение приглашения к испытаниям этих RIA-программ (см. в правой колонке сайта Aviary).
Здесь не будет откровений, но будет простой рецепт облегчения жизни. Рецепт настоящий, хоть и взят из выдуманной книги "Все о напильниках и рашпилях для программистов старшего дошкольного возраста. Учебное пособие по быстрой отладке Flex-приложений."
indeterminate="true"
Совсем другое дело! Ощущение, конечно, не лучшее: как будто заплатил за возможность свободно дышать. Но создатели фреймворка — тоже люди...
Как вы уже догадались, эта техника пригодится вам каждый раз, когда вы захотите переписать часть Flex Framework под себя.
ShaggySmile перестал помещаться в главный сайт и разродился еще одним: Life.Flex. Там он публикует статьи по разным аспектам Flex-технологии: от настройки вида Flex-приложения на фазе предзагрузки до примера загрузки потокового MP3 с помощью Flex 2 и Flash Media Server. Разрастаемся... :)
Вышел альфа-релиз Flex Builder для Linux. А до этого вышел Flash Player для Линукса, так что теперь линуксоиды имеют полный набор для флэш-платформы.
Уже давно подумываю о переходе на Linux, и теперь задумался всерьез. С какого Линукса лучше начать? Слышал, хвалят Ubuntu. Правда он лучший?
Хотите flex-приложение с прикольным фоном? Воспользуйтесь бесплатным компонентом WSBackgroundPixelSkin. Он предназначен для создания растровых заливок, построенных на повторяющемся рисунке (pattern) для компонентов типа Application, Canvas, HBox, VBox, Form.
Application, Canvas, HBox, VBox, Form
И для него есть специальный генератор растровых pattern-заливок, переводящий заданную картинку в соответствующее CSS-правило. Довольно просто и нарядно, исходники прилагаются.
О том, почему у Флекса так много общего с Джавой и почему Java-разработчик с легкостью освоит Flex, как именно адепты Java могут использовать Flex для разработки RIA-приложений, почему Флекс — самое надежное средство для создания таковых, как устроен Flex-фреймворк и чтол такое MXML/ActionScript3, как LiveCycle Data Services ES превращаются в контейнер Servlet/J2EE и предоставляют неслабую серверную инфраструктуру Flex-приложениям, как можно использовать opensource-альтернативы LiveCycle Data Services ES — Granite Data Services и OpenAMF - Java Flash Remoting, и какие все же есть различия между Flex и Java, включая примеры исходного кода — таково, если очень коротко, содержание двух статей:
1. Flex and Java – A perfect technological marriage (перевести на русский язык) 2. From Java to Flex (перевести на русский)
Раздавайте ссылки знакомым Java-программистам. Ди а незнакомым тоже раздавайте, пригодится.
Такой перевод пришел мне на ум, когда я читал стенограмму Дэвида Колетты. А он писал что-то вроде этого:
"Переделывайте Flex 2 Framework под свои нужды. Программисты Adobe -- не боги. 90% работы создающего наворочнные компоненты Дага -- это оверрайдинг стандартного Flex 2 фреймворка. Но не делайте все с нуля. Не изобретайте велосипед, лучше натянице спицы на уже имеющемся. Воспользуйтесь преимуществом 234 000 строк кода фреймворка."
На английском звучит красивее: "Don’t reinvent the wheel, just make it rounder"
Помните Дага Маккуна? Того самого, что PV3D + APE = TileUI - хорошая физика плюс лаконичное тридэ?
На только-только прошедшей конференции 360Flex Даг рассказал, показал и выложил исходники о том, как создавать собственные компоненты и при этом серьезно переделывать фреймворк Flex 2 под свои нужды.
Очевидцы говорят, что доклад Дага был одним из лучших.
А Дэвид Колетта речь Дага записал: Custom Component Development with Doug McCune -- писал быстро, с ошибками, вперемешку с соабственными мыслями... и получилось хорошо. Не зря проект Колетты (онлайновый текстовый редактор made with Flex) получил от Адоба инвестиций не на один миллион долларов -- тоже совсем недавно.
И есть там такая фраза: "Adobe engineers are good, but they are not God. They are all just programmers like you and me. You can write better code than them. There is nothing magical in the framework."
В сообществе ru_flex пользователь tn сообщает о конфликте Flex Builder 3 и Flex Builder 2:
"Только поаккуратнее с установкой - Flex Builder 3 и Flex Builder 2 как-то не очень вместе сосуществуют - похоже, новому нужна новейшая версия FP9 (9,0,60,120) , а старому онa невкуснa. Я сдуру установил Moxie на тот же комп, и потерял пару часов на эксперименты и на то, чтобы возвратить все текущие проекты на Flex Builder 2 в рабочее состояние."
tearaway_tea ему отвечает:
"У меня рабочая конфигурация Flex 2.0.1 Eclipse Plugin осталась в покое, а для експериментов поставил как Standalone Flex 3. И всё разрулилось и отлично взаимодействует, даже новый Debug Flash Player со старым флексом."
У кого-то еще были похожие проблемы?
Я не люблю стриптиз, но многие любят. А почему так любят стриптиз? Потому что ожидание подарка зачастую приятнее самого подарка.
Адобы фазу ожидания пропустили, как настоящие двоечники. Из этого следует либо то, что у них работают бестолковые маркетологи, либо то, что решение об открытии исходных кодов принималось в спешке, неожиданно для них самих.
Можно было растянуть процесс открытия исходников хотя бы на полгода. Грамотно разрекламировать это заранее. Можно было объявить о намерении, но высказать сомнения в целесообразности, затеять кучу дискуссий, втянуть в это массу людей -- и в конце выдать решение. В результате это привлекло бы к технологии значительно больше внимания, чем однократное событие "мгновенного опенсорса". Можно было, да не было.
Странно все это, и наводит на мысли о корпоративном параличе, лишившем воображения целую компанию.
Вышел Flex 2.0.1 SDK Hotfix 1 (зедесь перечень исправлений), качать отсюда: Flex 2.0.1 SDK Hotfix 1.
// via Reijii
Иногда (а скорее, даже часто) можно услышать вопрос типа: а покажите мне, что на Флексе сделано? Или вот такое утверждение: смотри, какая крутая flex-апликация!
И это правильно, разработчики должны меряться письками, -- это же прямая стимуляция всего интеллектуального хозяйства, от муладхары вверх до самой сахасрары.
Но в подобных ситуациях бывает так, что аскающему показывают флекс-проект, а он не видит там никакого флекса, и получается даже как-то неудобно перед ребятами, как будто кто-то кого-то обмануть пытался. Но тут нет никакого обмана. Просто флекса не существует, поэтому так сложно его показать.
Важно выяснить, как именно не существует флекс.
Начнем с главного -- что такое Флекс? Флекс -- это фреймворк для разработчика. Это инструментарий, способствующий быстрому созданию сложных и громоздких (если бы использовался голый Actionscript 3) конструкций. Но вся работа флекса -- за кадром, в скомпилированном проекте никакого флекса нет -- это все тот же старый добрый флэш, только под новую версию проигрывателя.
С точки зрения конечного пользователя, флекса не существует вообще. Есть флэш-проигрыватель, который теперь вместо 8 стал 9, обогатившись новыми возможностями типа бинарных операций и e4x. Но работать с этими нововведениями можно, и не прибегая к флексу, достаточно писать на Actionscript 3.
По большому счету, и флэша нет.
Мне даже как-то неудобно это говорить, пахнет старой и очевидной мыслью: ценность приложения в том, насколько эффективно оно решает свои задачи, а совсем не в том, на какой платформе оно сделано.
Оказывается, очень просто. Чтобы ячейки Flex2-компонента TileList выглядели, как шахматная доска, достаточно задать свойство стиля alternatingItemColors, в качестве значения принимающее массив hex-цветов:
alternatingItemColors
<mx:TileList alternatingItemColors="[#66FF66, #33CC33]" ... />
Цветов может быть больше двух; соответственно будет варьироваться результат. Можно получить полосатый TileList или TileList психоделический.
А поскольку CSS свойство alternatingItemColors наследуется от класса ListBase всеми списко-образными компонентами, то и работает для их всех:
- List (красит строки) - HorizontalList (красит столбцы) - TileList (красит строки и столбцы) - DataGrid (красит строки) (надо проверить, как работает в PrintDataGrid) - Tree (строки) - Menu (строки)
А как покрасить ячейки в зависимости от данных, смотрите у Питера Энта и у Майка Нимера (эту ссылку у Горбатова подмотрел).
Остальные способы раскраски DataGrid с помощью itemRenderer'ов и наследования от DataGrid -- у того же Энта: Coloring the Background of DataGrid Cells.
На сайте tcoz.com выложена весьма интересная онлайн-версия Flex 2 API от TCOZ, созданная с помощью Sparx Enterprise Architect.
В отличие от официального Flex 2 API, в ней есть возможность просмотра некоторых дополнительных аспектов сложной структуры Flex 2 Framework. Например, закладка "Associations From" в разделе класса покажет, какие классы используют данный клас и его экземпляры.
В целом, описание класса Flex API в версии от TCOZ может быть разбито на такие разделы:
* Attributes -- свойства класса. * Operations -- методы. * Associations To -- исходящие ссылки из данного класса на другие классы. * Associations From -- входящие зависимости других классов от данного. * Tagged Values -- мета-информация для данного класса. * Other Links -- зависимости, не вошедшие в предыдущие категории.
Есть там и сгенеренные тем же Enterprise Architect графические диаграммы взаимосвязей Flex 2 Framework (этот метод использовался также для создания постера с Flex 2 API Visual Reference).
В общем, куча информации, не отрендеренной в официальном Flex 2 API.
Вот здесь написано, как получить поддержку Flex 2 в IntelliJ IDEA, -- самом умном редакторе кода из известных в видимой части вселенной.
Хотите?
Пытаясь скомпилировать текущий проект из под обновленного Flex Builder 2.0.1, получаю один и тот же тупой баг от компилятора: изнутри одного класса не видны свойства другого класса ("1061: Call to a possibly undefined method getChildByName through a reference with static type yourpackage.YourType."). При этом он продолжает компилировать проект.
При этом сам Flex Builder 2.0.1 эти свойства видит: позволяет перейти на них по F3 (Ctrl+Click), например. Уже делал проекту Clean, делал Refresh, перезапускал билдер, и все это снова и снова в разном порядке -- не помогает.
Попробовал скомпилировать тот же проект в предыдущей версии билдера -- все ок. Видимо, проблема в новом компиляторе.
Жаль.
Update: проблему решить удалось только переименованием класса. Был: Design. Стал: DesignCanvas. Почему это сработало, могу только догадываться. Класса Design во фреймворке не было, то есть возможность конфликта -- исключена...
Update 2: переименованный класс отработал успешно несколько раз при компиляции, затем баг возник снова. Более действенным способом решения проблемы оказалось явное импортирование используемого класса, как указал в первом комментарии к этой записи tearaway_Tea.
Новый Flex 2.0.1 поддерживает модульные Flex-приложения. Это когда вместо того, чтобы грузить все приложение за раз, вы разбиваете его на основное приложение и динамически в него загружаемые модули. Считается, что таким образом удастся сэкономить трафик пользователям крупных и/или сложных Flex-приложений. Кстати, именно по этой схеме и работает обычное флекс-приложение: сначала загружается костяк с прелоадером, а уже в него затем загружается основное содержимое -- но все это происходит прозрачно для разработчика, да и загружаемый модуль -- всего один. Теперь же флекс-разработчики могут использовать в качестве корневого тэга компонента тэг <mx:Module>, что заставит компонент загружаться динамически во время работы приложения вместо того, чтобы стать жестко вкомпилированным в него. Опция создания модуля появляется в диалоге создания нового MXML-компонента. Подробнее см. в главе "Создание модульных Flex-приложений" в обновленной документации к Flex 2.
<mx:Module>
Можно также заглянуть на кухню флекс-модулей, к Роджеру Гонзалезу: модульные флекс-приложения, часть 1, понимание ApplicationDomain (придется усваивать), модульные флекс-приложения, часть 2.
Полный список изменений в новой версии Flex 2.0.1 есть у Клишина: Подробно о нововведениях, оставшихся ошибках и исправлениях во Flex SDK 2.0.1.
Доступно для скачивания обновление (апдейтер) Flex Builder 2.0.1 (144 mb)
Этот апдейтер -- универсальный, он обновит как версию Flex Builder 2, так и Flex Builder 2 Plug-in на ваш выбор (после запуска апдейтера у вас спросят).
Также стали доступны новые версии продуктов линейки Flex 2 -- их можно скачать со страницы апдейтов Flex 2.0.1.
Еще подробности -- у Кости Ковалева (см. в комментах тоже).
Пока мы загорали на пляжах, Дирк Эйшман создал расширение "TODO/FIXME" для Flex Builder 2, заставляющее среду разработки правильно реагировать на столь любимые разработчиками комментарии типа
// TODO Доделать к дедлайну // FIXME Этот метод -- подпорка, оптимизировать перед релизом
-- т.е. напоминания самому себе или своим потомкам о недоделках/багах в коде.
За наводку спасибо Диме 'Reijii' Кочетову
Изучая классы фреймворка Flex SDK 2, я встретил девушку класс mx.resources.ResourceBundle, предназначенный для локализации флекс-приложений и фреймворков. Основной принцип -- выносить из ваших классов весь нуждающийся в переводе на другие языки контент, а затем вызывать его с помощью мета-тэга [ResourceBundle] (в ActionScript) или с помощью директивы @Resource (в MXML).
mx.resources.ResourceBundle
Увидеть пример использования ResourceBundle в AS3 можно в классах флекс-фреймворка, например, в классе mx.collections.XMLListAdapter: поищите по словам ResourceBundle, packageResources и loadResources (там он используется для локализации сообщений об ошибках).
mx.collections.XMLListAdapter
ResourceBundle
packageResources
loadResources
A y injun#576871 есть бесценная статья на эту тему: Локализация Flex-приложений -- там рассматривается локализация в MXML с использованием данного класса и файлов свойств, в которые и выносится весь локализуемый контент, а также упоминаются необходимые опции компилятора.
Почитать документацию -- ResourceBundle в Adobe Livedocs. А дует этот ветер со стороны Java.
В конференции ruFlex уже не первый день идет обуждение этой темы. Основная цель -- повысить производительность флекс билдера. Пробудлирую свое письмо оттуда:
1. Если у тебя Plugin-версия Flex Builder 2, то задать используемую в данный момент джава машину можно прямо в параметрах команды его запуска, например:
C:\Program Files\Eclipse-3-3-m2\eclipse.exe "-showlocation -vm "C:\Program Files\Java\jre1.5.0_09\bin\javaw.exe" -vmargs -Xms128M -Xmx512M -XX:MinHeapFreeRatio=20"
2. Если у тебя standalone-версия Flex Builder 2, то используемую джава-машину можно задать в файле FlexBuilder.ini, что находится в каталоге «C:\Program Files\Adobe\Flex Builder 2 Release\». Добавь туда две строки типа:
-vm C:\Program Files\Java\jre1.5.0_09\bin\javaw.exe
3. Увидеть, какая виртуальная джава-машина используется сейчас, можно в меню флекс-билдера:
Help > Product Details > Configuration Details > строка “-vm” и следующая за ней.
4. Увидеть, какие вообще на твоем компе есть джава-машины, можно так:
Меню Start > Control Panel > Java > закладка Java > Раздел Java Application Runtime Settings > Кнопка View > Find > Next > Укажи путь > Next.
(4.1 Можно просто файловым поиском найти все javaw.exe)
Например, у меня на машине оказалось 10 java-машин, из которых две постоянно висели в памяти как автозапускающиеся сервисы ;-) Майкл Клишин также приводит ссылки не технозаметку от Адоби по поводу производительности компилятора Flex Builder 2 со старыми версиями JRE.
Дмитрий 'Reijii' Кочетов написал статью "Динамическая загрузка шрифтов во flex-приложения и смена набора шрифтов.
Добавим только, что речь идет о flex-приложениях. В статье описывается создание и использование подгружаемой во время выполнения библиотеки шрифтов (рецепт взят из рабочего проекта). Исходники прилагаются.
В подразделе "Задание свойств отступа" раздела "Форматирование диаграмм" главы "Компоненты диаграмм Flex" книги "Введение во Flex для заработчиков" я встретил термин, "gutter", перевести который смог пока только как "пробел" или "пробельная область". Им обозначается область диаграммы между ее областью отступа (padding) и осью. Flex рисует метки, названия осей и деления осей в пробельной области диаграммы:
Согласны ли вы с таким вариантом перевода? Может, есть более удачный?
Журнал PHPInside.ru опубликовал новость от Майка Поттера с рекомендациям для PHP-разработчиков, желающих начать работу с технологией Adobe Flex 2.
Закончен перевод второй главы "Типы диаграмм" из раздела "Диаграммы" книги "Введение во Flex для разработчика", входящей в русскоязычную документацию по Flex 2 (первая глава "Введение в мир диаграмм во Flex" была переведена недавно).
Приветствуется критика по переводу конкретных терминов типа "candlestick chart", а также любые недеконструктивные пожелания и высказывания по адресу.
Остались третья и четвертая главы, "Форматирование диаграмм" и "Использование событий и эффектов диаграмм".
Автоматическая прокрутка содержимого контейнеров во Flex-приложениях -- весьма полезная вещь, однако даже от нее иногда хочется избавиться. Простейший способ сделать это -- установить атрибут clipContent контейнера в false. Например, чтобы не возникала прокрутка на уровне приложения (Application):
<mx:Application clipContent="false" ... />
По хорошему, для этого нужно использовать
horizontalScrollPolicy="off" verticalScrollPolicy="off"
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller. at flash.display::DisplayObjectContainer/swapChildren()
каждый раз при потенциальном появлении скроллбара. Кто-нибудь с этим уже сталкивался?
Узнать больше про полезное свойство clipContetn можно во flex2педии: Масштабирование и позиционирование компонентов от Андрея Горбатова.
FLEXifier -- сайт для проверки вашего MXML- или AS3- кода в окне браузера. Ввел код в форму -- увидел результат.
Конечно, при установленном Flex Builder 2 это покажется излишеством. Однако чтобы заражать вирусом флекса соседние технологии и непокорных менеджеров, показывая мощь Flex 2 технологии в действии -- незаменимо! Я как раз так и сделал 5 минут назад, отправив письмо сотрудникам и клиенту.
Во FLEXifier даже готовые куски кода и шаблоны предусмотрены, вот ведь как. А результат можно отправить себе на мыло и людям на радость.
// подсмотрено одновременно у Дэна Иванова и Injun'a
Прикольная демка скинования -- тема для Flex 2 в стиле WinXP.
// подсмотрено Reijii у Горбатова
Fishbounce: отличный новый русский журнал о flash и flex. Я обнаружил там сразу неск. статей, посвященных очень популярной сейчас проблеме: триал Flex Builder 2 истек и он хочет кушать. Как продолжать писать на AS3 и не париться?
Для решения это проблемы Fishbounce возвращается к соотв. записи Константинера и дополняет ее чисто практическими указаниями, как все настроить и запустить: сборка Flex-приложений с помощью Apache Ant.
Лигалайз йосэлф!
На самом деле очень просто: скачиваем и открываем архив с Flex Style Explorer, идем во Flex Builder > File --> Open File... и быбираем Flex2StyleExplorer.html.
Джереми Лу создал Flex-компонент TabBar - продвинутый табулятор в стиле Firefox 2, на каждой из закладок которого есть кнопка "закрыть", а также включена возможность ручной сортировки закладок путем их перетаскивания -- это те самые волшебные закладки, хорошо известные пользователям Eclipse, а теперь уже и -- Firefox 2.0.
Вот пример работы компонента TabBar, где видно также, что на лету добавлять в него новые закладки, равно как и управлять его внешним видом весьма легко.
Подробности -- здесь: Почему Adobe совсем скоро реализует сохранение звука на сервере.
Еще не достепен для скачивания, но уже пожно поглазеть: скриншоты Flex Builder 2 для Apple Macintosh.
Начну с главного: постер "Flex 2 API Visual Reference" выложен для свободного скачивания. Размер файла: 41 Мб. Формат: GIF.
Постер выложил Илья, флэш-разработчик из Харькова. Он его отсканировал одним куском и собрал в один файл. Говорит, что качество получилось не хуже, чем у оригинала.
Теперь об оригинале. Дело было так: Рост из своего визита в Сонопию привез в Харьков три постера "Flex 2 API Visual Reference", которые ему подарил в Сонопии JabbyPanda. (Кстати, они уже перешли на Flex 2, и, насколько я знаю, Сонопия ищет еще разработчиков). В свою очередь, JabbyPanda получил серию постеров от их непосредственного производителя: JabbyPanda убедил RocketBoots в том, что на Украине Флекс любят и используют, и постеры зря не пропадут. Как вы видите, JabbyPanda более чем прав.
Написав отчет о визите с Сонопию, Рост пообещал отдать два постера в хорошие руки. На призыв отозвались Клишин и Reijii (он же Дима Кочетов, тоже из Харькова). Постер Клишина ждет своего хозяина, а вот с Reijii и Ильей было организовано поедание мороженого, в ходе которого было выпито пиво и был передан в хорошие руки второй постер.
Исторический кадр: Харьков, вечер, Илья держит в руках постер "Flex 2 API Visual Reference". Рост (справа) помогает держать постер.
Но, поскольку описанные события совпали с поисками флэш-разработчика для студии Validio Design, в которой работает Рост, и выбранным в результате многих собеседований кандидатом стал Reijii, то его постер автоматически оказался ему не нужен, так как теперь он работает в одном кабинете с Ростом. Теперь они могут вместе медитировать на этом постере (под музыку Muslimgauz) сколь угодно долго. Это происходит каждый день. Отличный постерище! Поэтому Reijii отдал свой постер Илье, который его отсканировал, собрал и выложил в сеть.
Качайте: постер "Flex 2 API Visual Reference" для свободного скачивания. Размер файла: 41 Мб. Формат: GIF.
.
Вышла версия 2.5 MDM Zinc -- инструмента для превращения SWF в десктопр-приложения для Windows и Mac OS X, с предоставлением флэш-приложениям таких возможностей, как доступ к низкоуровневым функциям ОС (типа файловых) через оболочку Zinc.
В этом обновлении Zinc добавлена поддержка Flex 2 / AS3, так что вы можете теперь запускать приложения Flex 2 прямо на вашем десктопе. Существует также быстрый урок по использованию Zinc и Flex 2. // via richinternet blog
Ура!!!!
Во Flex 2 глобальной функции trace() можно передать сколько хочешь аргументов через запятую, а она выведет их, разделив пробелами:
trace( Application, hello, 1, 2, 3, "booyaka" );
Выведет:
[class Application] function Function() {} 1 2 3 booyaka
Мелочь, а приятно :-)
"В то время как Adobe выпустили бесплатный SDK для разработки Flex-приложений, просто неприлично не уметь собирать приложения с его помощью. А если вы работаете на заказ, то бессвязный набор ваших исходных кодов вряд ли вдохновит заказчика: что ему с ними делать? Как собрать из них приложение в случае необходимости? Тем более, что часто заказчик неспециалист: ему что, покупать себе Flex Builder, осваивать его? Если в разработке Flash-приложений мы отдавали fla с классами и на пальцах объясняли что куда (а заказчик вынужден был смириться с тем, что ему понадобится среда разработки Flash - отнюдь не бесплатная), то с бесплатным SDK мы просто обязаны дать заказчику код, который он в любой момент может использовать для сборки приложения." -- так начинается статья Константинера "Сборка Flex-приложений с помощью Ant".
Как всегда у Константинера -- написано обстоятельно и без пробелов, боитесь буков -- не ходите.
Сию благую весть принес нам Константинер, а я не устоял пред искушеньем и за ним вторю я: Василий Нужа создал компонент "Color Picker для Flex 2 в стиле Photoshop".
Обновление: Последняя версия лог-панели -- xp3.
Жила себе была себе XPanel от Вадима Мельника, выводящая лог-информацию Flex 2 через собственный API. А Конст написал log target для родного Logging API Flex 2, так что теперь лог-информация Flex 2 выводится в XPanel через Logging API Flex 2. Читать подробности, качать и спасибо кричать -- у Константинера, в записи "Лог-панель для Flex 2"
С удовольствием сообщаем Вам, что открылся и начал свою плодотворную работу mail-лист русскоязычного Flex-сообщества! Это знаменательная дата не только для русскоязычных разработчиков, ориентированных на Flash-платформу, но и для мирового Flex-сообщества! Не зря же все говорят про высокий уровень образования в ex-СССР итд. Не будем вдаваться в сложные политические вопросы, а будем совместно изучать и поднимать Flex-движение на территории ex-СССР и за пределами!
Цель и девиз сообщества - быть профессионалами мирового уровня! Так присоединяйся, комрад! Или как написал в свое время Малевич Хармсу - идите и останавливайте прогресс!
Ну и после столь высокопарного заявления следует сделать лишь одно: присоединиться к ruFlex, начать спрашивать и отвечать, делиться опытом итд.
Основной язык группы ruFlex -- русский (допускается английский и каталонский) ввиду того, что группа рускоязычная.
Компилятор флекс-приложений использует опцию -as3 для указания, какой тип наследования будет использовать компилируемое приложение. Во флекс существует два возможных типа наследования:
1. Наследование фиксированных свойств через классы -- используется во флекс по умолчанию. 2. Наследование динамических свойств через прототипы -- второй возможный вариант (был единственно возможным во флэш).
Первый тип дает более быстрое приложение, а второй -- более совместимое со стандартом ECMA-262 (третья редакция).
Указав флекс-компилятору аргумент -as3, разработчик определяет, какой тип наследования будет использовать его приложение. Flex Builder 2 по умолчанию включает этот флаг, используя первый тип компиляции.
Первый тип быстрее за счет того, что каждый класс готового приложения самостоятельно хранит все унаследованные свойства (делает их своими): таким образом, на поиск унаследованного свойства практически не затрачивается никаких вычислительных усилий.
А второй, ECMA-совместимый способ компиляции, предполагает доступ к унаследованным свойствам через цепочку прототипов. На поиск свойства в цепочке прототипов тратится некоторое время, что и приводит к менее производительным приложениям. Но при этом более совместимым со стандартом, предлагающим динамический доступ к свойствам.
Чорт, да я же об этом уже писал: "Объекты-признаки как более эффективная замена цепочек прототипов в ActionScript 3.0
Кристиан Кэнтрелл давно уже выложил эту короткую статью: A Ruby Script for Compiling Flex Applications. Пусть и рельсовики приобщаются к флекс-компиляции ;)
В чем преимущества разработки RIA-приложений именно во Flex 2?
Вообще, их было десять, но я добавил еще три.
А что добавите вы?
Продолжая тему скинования flex2-компонентов, нельзя не привести следующий жизненный скриншот, который, с одной стороны, является бесполезным с точки зрения повышения продаж изделий в стиле "Аква", но с другой -- еще раз прекрасно демонстрирует нам, верным флэш-разработчикам, что нет в природе никакого Флекса, а старый добрый флэш снова залез в новую оболочку, теперь для настоящих и очень сердитых программеров.
Так выглядит попытка привязять несуществующий swf-файл (восьмой версии, кстати!) со скинами к mxml-файлу с использующими их компонентами в среде разработки Flex Builder 2:
Однако защита от дурака здесь тоже придумана. После компиляции то же самое флэкс-приложение нерадивого девелопера (это я Ж-) выглядит как будто там внутри не происходит страшного несоответствия заявленных скинов реальным. Просто используются скины по умолчанию:
А вот самое интересное. Шо Кувамомото подсказывает, что можно получить полноценный Live Preview обновленных скинов флекс-компонентов, скомпилировав файл со скинами как проект-библиотеку (Flex Library project). Затем нужно указать его в качестве зависимости в основном проекте. После этого, каждый раз про изменении проекта-библотеки скинов будет обновляться и внешний вид целевого проекта -- прямо внутри среды разработки.
О скиновании Flex 2 -- по-русски.
Шаблоны для Flash, Photoshop и Fireworks прилагаются -- и вообще очень толково написано. Самое полезное -- создание скинов для flex-приложений во флэше. Это проще, чем можно подумать -- осбенно учитывая наличие этого хорошо сделанного шаблона, содержащего уже готовые размеченные и проименованные мувиклипы.
Тем, кто уже создавал Flex2-приложения (которые, как вы понимаете, являются старыми добрыми флэш-приложениями под Flash Player 9 (чего нельзя было сказать о Flex1-приложениях)), будет полезен cписок изменений между третьей бета-версией Flex 2 и его финальной версией.
Flex 2 упакован и готов к доставке
Круги на воде:
Flex.org Flexcoders.net Bill McCoy: Flash Player 9 & Flex 2 Released TechCrunch: Adobe Launches Flex 2 CNET: Adobe updates Flash Player, Flex tool
Flexcoders.net
Bill McCoy: Flash Player 9 & Flex 2 Released
TechCrunch: Adobe Launches Flex 2
CNET: Adobe updates Flash Player, Flex tool
Flash Professional 9 Actionscript 3.0 Preview -- для флэш-разработчиков, желающих поиграть с Actionscript 3 уже сейчас, не дожидаясь выхода новой версии Flash "Blaze" 9 в 2007 году.
Качайте Flash Professional 9 ActionScript 3.0 Preview. Эта версия -- практически тот же Flash 8, но с возможностью написания и проверки синтаксиса Actionscript 3 и с полной документацией к нему же (жми F1). И возможностью компиляции под Flash Player 9, который теперь доступен для всех по интуитивно-понятному, легко вспоминаемому адресу: adobe.com/go/getflash.
Хакерам в эту же тему: Формат файла SWF 9.
Flex 2 -- это первый флэш-инструмент, перевод документации к которому появился раньше него самого (а сам Flex 2, если верить пророкам, выходит через несколько дней; а истинно же верующие получат его уже завтра). Сейчас уже переведена первая книга, называемая "Начало работы с Flex 2 (Getting started with Flex 2)". Эта ссылка ведет не сайт Майкла Клишина, который путем убеждений, диверсий и ухищрений заставил нескольких молодых людей бороться с тысячестраничным англоязычным pdf-файлом а себя подверг его беспощадному редактированию.
Респект? Рееееееееееееееспееееееееээээээээээээээээээээээээээээээээкт!
23 июня 2006 года, в пятницу, в Киеве, сотрудники компании Adobe проведут бесплатный тренинг по продуктам Flex, Breeze и Media Server 2.
На повестке дня:
Начало
Длит.
Описание мероприятий.
9:00
0:15
Регистрация участников.
9:15
0:45
10:00
10:45
Кофе-пауза.
11:00
11:45
12:00
0:30
12:30
1:00
13:30
14:15
15:00
15:15
16:00
16:45
17:30
Вопросы - ответы.
17:45
-
Подробности, регистрация и адрес мероприятия на сайте: тренинг компании Adobe "Программное обеспечение Adobe -- успех продаж"
Как вы знаете, Flex-приложения быстрее всего создаются на языке MXML -- подмножетсве XML. Он используется для описания структуры Flex-приложения, его компонентов, некоторых элементарных обработчиков событий и пр. -- это так называемая "статическая" часть Flex-программы. MXML скрывает от разработчика внутренний механизм работы объектов/компонетов, предоставляя их базовые свойства в виде тэгов и аттрибутов. Для получения же более сложного поведения приложения (что требуется практически всегда) используется язык ActionScript3, вставляемый прямиком в исходный MXML-код в виде блоков CDATA (есть и другие способы -- классы, внешние файлы...) Так и получается: два языка бок о бок в исходном коде. И если у флэшера личность раздваивалась по оси "программист-дизайнер", то у флексовика личность состоит уже из двух программистов, один из которых все же слегка верстальщик.
Однако картина меняется при компиляции MXML-исходника: прежде, чем на выходе появится готовый swf-файл, весь MXML превращается в ActionScript3, из которого и получается затем готовое swf-приложение.
Вы это наверняка уже знали.
Но как увидеть этот промежуточный Actionscript-файл? Оказывается, очень просто. Досаточно только указать компилятору опцию "-keep-generated-actionscript" -- и финальный as-файл окажется рядом с готовым swf, пригодный для вашего детального исследования (в ходе которого выясняется, что существует весьма прямолинейное взаимное отображение между mxml и as3).
-keep-generated-actionscript
А что с этим делать дальше -- сто путей, сто дорог, вплоть до полного отказа от MXML как от возможной, но необязательной прослойки. Да мало ли что ;)
Указать опцию можно так: Flex Builder > Project > Properties > Flex Compiler > Additional compiler arguments > -keep-generated-actionscript
Flex Builder > Project > Properties > Flex Compiler > Additional compiler arguments > -keep-generated-actionscript
А старожилы флекcа наверняка скажут, что это вовсе и не новость, и что это было еще во Flex 1.5. А зашедшие на огонек джависты добавят, что это из джавы пошло ;-)
Стивен Вебстер анонсировал скорое появление Flex-фреймворка Cairngorm 2 в обновленном виде в Adobe Labs. Точную дату появления и детали нововведений он не назвал, но сказал, что в новой версии будут учтены пожелания Flex-сообщества по улучшению Caringorm -- наверное, популярнейшего Flex-каркаса сейчас. Появление же Cairngorm 2 в семействе продуктов Adobe Labs делает его фактически официальным, рекомендуемым к использованию open-source инструментарием для Flex 2. В свете выходящего совсем скоро релиза Flex 2... в общем, не забывайте отдыхать :-)
xy_ задизайнил себе ЖЖ в стиле Flex 2. И рецепт приложил. А сделал он это... в далеком октябре 2005 года :)
Пишущий о RIA товарищ Раян Стюарт сравнил примеры дизайна приложений во Flex и Avalon. Давно уже сравнил кстати, а приятно до сих пор!
Андрей Горбатов перевел на русский язык урок от Кристофа Конраца "Flex-магазин + Ruby on Rails", которым я совсем недавно так восхищался.
Что в этом туториале хорошо -- так это то, что весь процесс показан с самого начала -- с создания базы данных и установки языка интерпретатора (ворчал Клишин) и менеджера пакетов языка Руби и его рельсов. А заканчивается урок прикручиванием слайдеров из состава Yahoo UI Library для большей аяксовости. Так что если вы хотите пить -- урок лучше не читать, там нет воды. Фрилэнсеры, обратите самое пристальное внимание.. стоит того, чтобы прочесть и удивиться!
Майк Мориарти, один из разработчиков Flex Builder 2, написал, как настроить цвета в редакторе кода Flex Builder 2.
В Адоби лабс прямым текстом утверждается, что нет более быстрого или легкого пути построения насыщенного веб-приложения, чем использование комбинации ColdFusion + Flex 2. Этой связке технологий посвящена специальная страница на сайте лабс: ColdFusion/Flex Connectivity. Там можно скачать дистрибутив ColdFusion/Flex Connectivity Beta, включающий новые ColdFusion Remoting-компоненты и ColdFusion Data Services для использования с Flex 2.
Впрочем, у Инжуна, специалиста по ColdFusion, уже идет обсуждение этой темы.
Принимаются заявки на фичи ActionScript 3 IDE.
Вот одним грязным списком некторые из уже предложенных фич:
- поддержка деббагера 8 плеера - рефакторинг - форматирование - нормальный поиск - список вызовов метода - Поддержка JavaDoc’ов - Stricker AS2 Syntaxis checher - автоформатирование, (настраиваемое, как для Java). - MXML Design View - MXML автокомплит - Продвинутый байндинг из MXML view в АС3 (а-ля Matisse в NetBeans, ну или хотя бы дельфи) - Визард для MXML компонента, создающий в обязательном порядке связанный AS3 класс - функционал EnterpriseArchitect касательно ActionScript - Работа с mxmlc- и compc- компиляторами из Flex 2 Framework. - Возможность пост-процессинга скомпилированного приложения; - Опция публикации “добавить номер билда”; - Code collapse - Code insight - Style checker - Code Templates - Сode Dragging - Duplicating items with Alt-Drag (both code/design)
На сайте cflex.net флексеры обмениваются опытом, получают работу и примеры флекс-приложений, подсказки для начинающих и ответы на популярные вопросы. А зарегистрировавшись, можно добавлять на сайт сообщества свой контент.
JBoss Mail Client построен на Flex 2.
Установив Flex Builder 2 дома, на старенький PIII 700 MHz с 320 Мб памяти, я ни на что особо не надеялся -- в лучшем случае, рассчитывал почитать документацию с удобными средствами поиска от платформы Eclipse. Но был приятно удивлен открывшейся производительностью, увеличивающейся с каждой минутой работы: не только каждая новая компиляция приложения (довольно простого, следует признать) занимала все меньше и меньше времени. Но и поиск по документации, выпадение хинтов кода, скорость отзыва как всего редактора кода, так и режима Design View -- вся производительность Flex Builder 2 IDE приблизилась к производительности моей студийной машины (3000 MHz, 2Gb RAM). Через некоторое время я вообще почти перестал замечать эту разницу. Фактически, я сейчас пользуюсь последним шансом свое открытие записать, пока я ее еще эту исчезающую разницу чувствую Ж-)
Разработчики могут использовать пространство имен mx_internal, чтобы добраться до textField и большинства других субкомпонентов, -- пишут на Адоби Лабз, -- и учтите, что это не описано в API, а значит, может измениться. Используйте пространство имен mx_internal на свой страх и риск так:
mx_internal
textField
import mx.core.mx_internal; use namespace mx_internal;
Похоже, теперь мы будем видеть его все чаще: Шо Кувамото, руководитель разработки Flex Builder 2, показывает, как создать Flex-приложение за 15 минут.
Добавлено: обнаружилось еще с полдюжины полезных видео, демонстрирующих работу с дата-сервисами, использование AJAX и оптимизацию программирования (два видео от одной дамы) во Flex.
Давид Цукерман -- один из разработчиков Flex Builder 2. Его побочный проект, Alpha Plugin, предназанчен для быстрого исправления ошибок в исходном коде ActionScript 3 (обещает сделать для MXML) при работе во Flex Builder 2. В основной релиз он не вошел.
Функции: автокомплит упущенных переменных и возвращаемых функциями значений; автосоздание переменных как для методов, так и для класса; автодобавление и автоудаление import'ов; выравнивание кривых модификаторов доступа. Кроме того -- подсветка всеx проблем компилятора. Подробности со скриншотами: "Alpha Plugin for Flex Builder 2 Beta 3"
import
P.S. А ведь такой функционал надо включать в среду разработки по умолчанию. P.P.S. Чорт, а ведь constantiner об этом уже писал %)
Мы живем в страшное время: сайт Ф. Потрошителя раздираем внутренними противоречиями: так, в то время, пока в комментариях к одной записи нормальные пацаны жалуются, что "да отстойный это форум, тут даже ссылки на ломаную Flash MX 2004 нету!", то в комментариях к другой записи ненормальные будут жаловаться на глюки бесплатного Flex 2.0 Framework и совсем уж офигевшего девятого флэш-проигрывателя, качая и то, и другое и все остальное вполне официально: вот Flash Player 9, вот Flex SDK 2.0 (включающий Flex Framework с его бесплатным компилятором), а вот все остальное.
Флекс попал на обложку журнала JDJ ("The world's leading Java resource", "#1 i-Technology magazine in the world" -- вот те скромные эпитеты, которыми этот журнал себя наделяет), а флэш -- в телевизор: ABC, один из крупнейших поставщиков видеопотока, выбрал флэш-видео, причем флэш используется не только как проигрыватель, но и как продвинутая переключалка каналов.
F2B3 должен выйти в мае, а вот справка к нему уже выложена в сеть: вот Flex 2.0 beta 3 - ActionScript 3 Language Reference, вот вся документация к Flex 2.0 Beta 3. Над этой версией хорошо поработали!
В ActionScript 3 появилось событие stage.onMouseLeave. Это означает, что теперь можно забыть о тех темных временах, когда флэш-кодеры путем уловок и ухищрений заставляли flash player определять момент выхода мышки за флэшку.
stage.onMouseLeave
Теперь можно писать так (prof, спасибо за поправки!):
package { import flash.display.Sprite; import flash.display.Stage; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.text.TextField; import flash.events.Event; public class stageOnMouseLeave extends Sprite /*MovieClip*/{ private var textTest:TextField; private var intCount:int=0; public function stageOnMouseLeave(){ stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.showDefaultContextMenu=false; stage.addEventListener(Event.MOUSE_LEAVE, onStageLeave); textTest = new TextField(); addChild(textTest); textTest.text = "Не покидай меня!"; } public function onStageLeave(event:Event):void{ textTest.text = "Ты бросил меня\n"+ ++intCount + " раз."; } } }
Это работающий пример, его можно компилировать из консоли (т.е. просто написав: mxmlc stageOnMouseLeave.as. Вы ведь уже добавили путь к mxmlc, компилятору actionscript3 в переменную окружения patn, как было описано в компиляции flex-приложений из командной строки.)
mxmlc stageOnMouseLeave.as
patn
Результат:
Одна из опаснейших сторон выходящего уже совсем скоро flex 2 -- это бесплатный двуголовый command-line компилятор для as3 / mxml, который Adobe обещает выпустить, (а на самом деле уже выпустила) в составе flex framework 2 для flex sdk 2.0 (15 Mb). Совсем скоро любой желающий сможет создавать flex-приложения, не потратив ни цента на покупку среды разработки. На самом деле, любой желающий уже может начать это делать, хотя и несколько обходным путем. Для этого достаточно скачать бета-версию flex builder 2.0 и использовать ее встроенный компилятор, он пока ближе к завершению. Во flex framework 2 войдет он же, пройдя обработку напильником наблюдаемых нами уже давно альфа- и бета- версий.
Из двух голов нового компилятора "главной" является голова "mxmlc", предназначенная для сборки рабочих приложений (написанных как на as3, так и на mxml), а вторая голова, "compc", изрыгает на свет компоненты (и swc-файлы вообще). В этом компиляторе реализована так называемая пошаговая компиляция (incremental compilation). Она уменьшает время сборки flex-приложений при использовании опции командной строки --incremental=true компилятора mxmlc. Обычно, когда последний собирает приложение, то генерируется достаточно много данных, одинаковых для каждой компиляции. А пошаговая компиляция позволяет разработчику указать, какую именно часть приложения нужно подвергнуть перекомпиляции. Остальное кэшируется в файле с именем "названиеПроекта_число.cache" и тем самым экономится время сборки. Кэш-файл хранится рядом с исходниками, так что при малейшем подозрении о закэшированности ошибки можно быстро удалить весь кэш. Эффективность этой опции прямо пропорциональна исходному времени компиляции проекта: на простейшем проекте выигрыш составляет приблизительно секунду из трех, на больших приложениях время компиляции уменьшалось с 40 секунд до почти 20 (пишет Даниэль). Его статья "компилируем легко с mxmlс!" должна помочь всем флэшерам-макоманам (звучит ;). Вот -- пример для пользователей Windows:
--incremental=true
Можно уже сейчас компилировать с помощью flex framework 2. Для этого достаточно распаковать flex sdk (15 Mb) в каталог "d:/swf/flex/sdk/". После этого в командной строке ввести:
"D:/swf/flex/sdk 2.0/bin/mxmlc.exe" MyApplication.as
И подождать от двух и более секунд, пока скомпилируется проект. Можно скачать простейший пример компиляции с помощью mxmlc, состоящий из одного as-файла и двух .bat-файлов (один компилирует, второй выводит справку по опциям компилятора, оба сохраняют результаты в текстовых логах там же)
"C:/Program Files/Adobe/Flex Builder 2 Beta 2/Flex Framework 2/bin/mxmlc.exe" ThankYou.mxml
Для удобства дальнейшего использования стоит занести путь к каталогу flex в переменную окружения path.
О компиляторах командной строки asctionscript 3 и mxml в Ливдоках. Их опции тоже подробно описаны: mxmlc, compc.
Скажи "привет!" AS3-у -- говорит Колин Мук и выкладывает на одной короткой странице тезисы и примечания к своей лекции "Введение в ActionScript 3", прочитанной им на недавно прошедшем фестивале Flash In Da Can в Торонто. Основные темы:
Данные тезисы (а еще лучше -- их англоязычный оригинал на сайте Колина, ссылка была выше) можно смело использовать в качестве путеводителя по главным темам языка ActionScript 3.
Наверное, стоит выложить их тут по-русски. Перевод тезисов Колина на русский язык (стиль и оформление -- авторские):
© 2006 Colin Moock's Notes on His ActionScript 3.0 Lectures at FIDC:
обзор
общее введение в ActionScript 3.0
более глубокое изучение выбранных тем
начнем с начала
новая виртуальная машина: "AVM2"
ActionScript 1.0 и ActionScript 2.0: "AVM1"
AVM1 и AVM2 работают одновременно в одном проигрывателе
AVM2 переписана с нуля
основной язык (core language) против API проигрывателя (player API)
ActionScript состоит из "основного языка" и "api проигрывателя"
Основной язык ActionScript 3.0 как следующий шаг в эволюции ActionScript 2.0
api проигрывателя: капитальный ремонт; решительные и далеко идущие изменения
основной язык: главные изменения
полностью переконструирован для производительности
исключения на этапе выполнения (runtime exceptions)
E4X
регулярные выражения
основной язык: второстепенные изменения
предупреждения о недостающих объявлениях типов
ключевое слово final
модификаторы public, internal, protected, private
каждый класс должен быть в пакете
переопределения (overrides) должны быть объявлены
переменные и функции уровня пакета
выражения на уровне класса
константы
связанные методы
типы int, uint, Number
* против Object
Void теперь void
значения параметров по умолчанию
параметр ... (rest)
ошибки при несовпадении аргументов/параметров
выражение is приходит на смену instanceof
цикл for-each-in
flash player api
полностью переписан и реорганизован
значительно более ооп-ориентирован
основные моменты
flex
Flex Builder
Flex Framework
Flex Data Services
бесплатно!
бесплатный компилятор из командной строки: ActionScript 3.0 + Flex Framework
XML является встроенным типом данных в ActionScript 3.0
var novel:XML = <BOOK ISBN="0141182806"> <TITLE>Ulysses</TITLE> <AUTHOR>Joyce, James</AUTHOR> <PUBLISHER>Penguin Books Ltd</PUBLISHER> </BOOK>;
novel.AUTHOR // Все элементы-потомки <BOOK> с именем "AUTHOR"
trace(novel.TITLE); // Выводит: Ulysses
trace(novel.@ISBN); // Выводит: 0141182806
novel.AUTHOR = "Hemingway, Ernest";
novel.PUBLISHER = "Scribner";
novel.@ISBN = "0684800713";
E4X: обход XML-дерева с помощью for-each-in
var order:XML = <ORDER> <ITEM SKU="209"> <NAME>Trinket</NAME> <PRICE>9.99</PRICE> <QUANTITY>3</QUANTITY> </ITEM> <ITEM SKU="513"> <NAME>Gadget</NAME> <PRICE>149.99</PRICE> <QUANTITY>1</QUANTITY> </ITEM> <ITEM SKU="374"> <NAME>Toy</NAME> <PRICE>39.99</PRICE> <QUANTITY>2</QUANTITY> </ITEM> </ORDER> // Задать начальное значение суммарной стоимости как 0. var total:Number = 0; // Этот цикл срабатывает один раз для каждого элемента <ITEM>. for each (var item:XML in order.*) { total += item.QUANTITY * item.PRICE; } trace(total);
E4X: фильтрующие логические условия (filtering predicate)
var staff:XML = <STAFF> <EMPLOYEE ID="501" HIRED="1090728000000"> <NAME>Marco Crawley</NAME> <MANAGER>James Porter</MANAGER> <SALARY>25000</SALARY> <POSITION>Designer</POSITION> </EMPLOYEE> <EMPLOYEE ID="500" HIRED="1078462800000"> <NAME>Graham Barton</NAME> <MANAGER&