Каковы издержки использования файла MXML во Flex по сравнению с простым классом actionscript? - PullRequest
1 голос
/ 05 ноября 2008

Мне гораздо проще писать классы MXML со встроенным скриптом, чем пытаться создать файл actioncript.

Мне было интересно, однако, какие накладные расходы возникают при использовании файла MXML - с точки зрения размера файла. Я не особенно обеспокоен производительностью, но если это уместно, будет заинтересован в любых выводах.

Очевидно, я говорю о компонентах пользовательского интерфейса, которые имеют макет. MXML НАМНОГО проще визуализировать и изменять, но мне неясно, что именно он компилирует. Я надеюсь, что разница ничтожна.

Ответы [ 2 ]

10 голосов
/ 05 ноября 2008

Если вы собираетесь использовать ту же функциональность, MXML не увеличит ваш SWF.

То, что влияет на размер, - это использование Flex SDK и его компонентов. Независимо от того, объявляете ли вы их с помощью MXML или AS3, вы используете их, и их код встроен в SWF. Точно так же, если вы ссылаетесь на Flex RSL и, таким образом, избегаете встраивания компонентов Flex непосредственно в ваш swf, он в любом случае будет одинакового размера. Привязка данных создает много событий и прослушивателей, так что это может вызвать некоторое раздувание, но не больше, чем если бы вы объявили механизм привязки данных с помощью служебных функций AS3.

Поскольку MXML действительно генерирует промежуточный код AS3, он может быть более подробным, чем вы могли бы написать самостоятельно, поэтому из этого вы можете увидеть некоторые дополнительные размеры. Чтобы взглянуть на это (что хорошо для понимания в целом), вы можете посмотреть с помощью директивы компилятора, чтобы сохранить сгенерированный код.

От: http://www.flashguru.co.uk/flex-2-compilation-hidden-goodies

  1. Щелкните правой кнопкой мыши проект Flex на панели навигатора.
  2. Выберите Свойства из контекстного меню.
  3. Выберите Flex Compiler в окне свойств.
  4. Введите -keep-generate-actionscript в ‘Дополнительный компилятор поле аргументов.
  5. Нажмите «ОК», чтобы применить изменения.
  6. Создайте свой Flex Project, нажав кнопку «Выполнить».
  7. Снова щелкните правой кнопкой мыши свой проект Flex на панели навигатора.
  8. Выберите Обновить из контекстного меню.
  9. Новая папка должна появиться под вашим Flex Project в навигаторе Панель с именем «сгенерировано»

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

0 голосов
/ 17 ноября 2009

Включение инфраструктуры Flex (с помощью MXML или чистого ActionScript) значительно увеличит размер вашего окончательного SWF-файла.

Я только что написал флэш-фильм, состоящий из одной кнопки. Версия MXML была 175 КБ, а версия ActionScript без Flex - 2 КБ.

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

http://code.google.com/p/e4xu/

...