Flash Ripper RSS Readers

Как жить с раздвоением личности на MXML и ActionScript3: -keep-generated-actionscript

Как вы знаете, Flex-приложения быстрее всего создаются на языке MXML -- подмножетсве XML. Он используется для описания структуры Flex-приложения, его компонентов, некоторых элементарных обработчиков событий и пр. -- это так называемая "статическая" часть Flex-программы. MXML скрывает от разработчика внутренний механизм работы объектов/компонетов, предоставляя их базовые свойства в виде тэгов и аттрибутов. Для получения же более сложного поведения приложения (что требуется практически всегда) используется язык ActionScript3, вставляемый прямиком в исходный MXML-код в виде блоков CDATA (есть и другие способы -- классы, внешние файлы...) Так и получается: два языка бок о бок в исходном коде. И если у флэшера личность раздваивалась по оси "программист-дизайнер", то у флексовика личность состоит уже из двух программистов, один из которых все же слегка верстальщик.

Однако картина меняется при компиляции MXML-исходника: прежде, чем на выходе появится готовый swf-файл, весь MXML превращается в ActionScript3, из которого и получается затем готовое swf-приложение.

Вы это наверняка уже знали.

Но как увидеть этот промежуточный Actionscript-файл? Оказывается, очень просто. Досаточно только указать компилятору опцию "-keep-generated-actionscript" -- и финальный as-файл окажется рядом с готовым swf, пригодный для вашего детального исследования (в ходе которого выясняется, что существует весьма прямолинейное взаимное отображение между mxml и as3).

А что с этим делать дальше -- сто путей, сто дорог, вплоть до полного отказа от MXML как от возможной, но необязательной прослойки. Да мало ли что ;)

Указать опцию можно так:
Flex Builder > Project > Properties > Flex Compiler > Additional compiler arguments > -keep-generated-actionscript

А старожилы флекcа наверняка скажут, что это вовсе и не новость, и что это было еще во Flex 1.5. А зашедшие на огонек джависты добавят, что это из джавы пошло ;-)

Писал Rost, 22 Июнь 2006 0:21

Найдены баги:

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

Reijii - 22 Июнь 2006 9:20

Прав. Не вижу смысла отказываться от одной из сильно сокращающих время разработки вещей.

МК - 22 Июнь 2006 11:15

Хотя что это за "mxml для быстрого, as3 -- для сложного"

MXML -- для интерфейса и связей, AS -- для логики. Если есть молоток, зачем забивать гвозди отверткой?

МК - 22 Июнь 2006 11:16

тоже правильно...
я же говорил что могу быт не прав )

Reijii - 22 Июнь 2006 11:55

Не сдавайся, Reijii !!

Тут есть такая безумная совершенно мысль: перегон из mxml в as и обратно есть одна из форм сериализации/десериализации. А значит, этот механизм форму можно разобрать и использовать в своих целях.
Например, для создания опен-сорсного визуального Flex-редактора, который бы и взял на себя то, что сейчас делает MXML + Code View в Эклипсе.

А?

Рост - 22 Июнь 2006 12:07

таки да. идея хорошая, но зачем если есть Eclipse + Flex plug-in ? :(

ps. спал два часа просто поентому могут проскакиват неадекватные мысли )

Reijii - 22 Июнь 2006 12:14

вот. идея.
а не влияет ли это на производителность ?
при переводе из mxml в AS ?

Reijii - 22 Июнь 2006 12:15

Reijii Я думаю, что не влияет, адобовцы же не тормоза и mxml сразу переводиться в код, а не mxml -> AS -> kod ,хотя я не знаю так это или нет и могу ошибаться.А, ты,зная мою "лень" к лишним "телодвижениям" в коде ради производительности наверное и не ожидал другого ответа от меня %)

__i - 22 Июнь 2006 18:02

ага, лени тебе не занимать )
нужно будет протестировать.. по свободе

Reijii - 22 Июнь 2006 19:53

Reijii, а чего так мало спишь? А ну, спать быссро! ;)

Рост - 23 Июнь 2006 2:48



Это запись из категории 'Flex 2'. 10 еще cвежих:

Архивы по категориям:

3D-18, Adobe AIR-30, Animation-1, Apache Ant-1, Architecture-1, ARP-1, Art-25, Articles-26, AS3-52, Books-7, Business-3, Cairngorm-2, CI-1, Classes-10, Coding-30, Community-113, Components-19, Contests-28, Cool-Job-5, Debug-18, Design-26, Development-84, EMO-1, Events-13, Extensions-2, FAQ-8, FDS-1, Flash and html-5, Flash Player-35, Flash Updates-8, Flash-scene-1, flash10-4, FlashLite-2, Flex-30, Flex 2-80, Flickr-1, FMS-1, FPUG-46, frameworks-1, Games-11, Good Job!-35, HaXe-14, Health-2, Humor-10, Ideas-13, JavaScript-1, Job-26, JSFL-8, Links-2, Linux-1, Maps-1, Math-8, Money-11, MXML-1, Open Source-15, Optimization-2, Patterns-2, Personalities-27, Politics-1, Preloading-3, Productivity-9, PureMVC-10, Pv3d-1, Rafpug-4, Red5-3, Remoting-11, Resources-21, Ruby-6, SAAS-1, Security-11, SEO-8, Silverlight-5, Sound-3, Strategy-120, Tamarin-1, Tools-113, Training-2, Trash-8, URAFPUG-13, Urgent-1, Usability-6, Video-6, VoIP-5, Wallop-1, Wishlist-2, Архив всех записей (большой)

За последние месяцы:

Июл 2008: Международная встреча разработчиков URAFPUG завершена, URAFPUG - трансляция студии Flex-фреймворка Mate, весь Июл

Июн 2008: Попытка предварительных выводов о встрече аниматоров, Онлайн трансляция встречи аниматоров в Донецке, весь Июн

Май 2008: Если 3D, то по-взрослому: официальный запрос в Adobe по поводу контроля над мип-маппингом. Нужна ваша поддержка!, В этом году «Russian Flash Awards» пройдет в «космическом стиле», весь Май

Апр 2008: Программирование под флэш платформу. Cтатья (местами спорная), Advanced Flash Components бесплатно раздает все свои AS2-компоненты, весь Апр

Мар 2008: Зарплаты программистов в 2007 году, FlashPhone как технология года? Технология года? В Рунете?, весь Мар

Фев 2008: ЙА ФПУГ — регистрация на первую встречу UAFPUG продолжается, Закулисы Flex и секрет успеха опенсорс-проекта, весь Фев





Примечания:
Статус документа
: в процессе
   2002-2007 Производство: Рост Прибыли · О проекте · Подписка на новости (RSS)