Каковы преимущества использования mxml по сравнению с ActionScript в приложении Flex? - PullRequest
4 голосов
/ 31 октября 2010

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

Уточните поведение mxml против AS3 во время выполнения, как описано в Oreilly Flex 4 Cookbook стр. 1:

"Многие новички в Flex задаются вопросом, как MXML и ActionScript соотносятся друг с другом. Компилятор MXML (mxmlc) после анализа различных идиом переводит их в одни и те же объекты, так что:

<s:Button id="btn" label="My Button" height="100"/>

и это:

var btn:Button = new Button();
btn.label = "My Button";
btn.height = 100;

создает один и тот же объект. Основное отличие состоит в том, что при создании этого объекта в ActionScript (второй пример) создается кнопка, и ничего больше, при создании объекта в MXML кнопка добавляется ккакой бы компонент не содержал код MXML. Flex Framework обрабатывает вызов конструктора объекта, описанного в MXML, и либо добавляет его к родительскому элементу, либо устанавливает его как свойство родительского элемента. "

Ответы [ 7 ]

8 голосов
/ 31 октября 2010

Обычно

  • MXML используется для создания пользовательского интерфейса
  • ActionScript используется для кодирования логики вашего приложения

Конечно, вы также можете создать пользовательский интерфейс с помощью ActionScript, но:

  • это займет у вас больше времени
  • Представления MXML легче читать, чем представления AS

С точки зрения пользовательского интерфейса, ActionScript должен использоваться только для управления элементами представления (добавить, удалить, ...) во время выполнения.

2 голосов
/ 02 ноября 2010

Аналогичным вопросом может быть «в чем преимущество использования HTML над Javascript для пользовательского интерфейса?»

Полагаю, вы действительно спрашиваете: "В чем преимущество использования декларативного пользовательского интерфейса перед императивным?"

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

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

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

2 голосов
/ 31 октября 2010

Редактировать

В приложении Flex ожидается предпочтение использования mxml по сравнению с AS при условии, что оба варианта доступны.Если mxml не предоставляет решения, пользователь может вернуться к AS3.Flex - это фреймворк, поэтому можно ожидать, что акцент будет сделан на mxml, а не на AS3.Как и большинство фреймворков, идея состоит в том, чтобы скрыть детали, чтобы упростить дизайн и предположительно сделать программирование более доступным.

Однако все обходится дорого, на самом деле нельзя ожидать, что mxml будет быстрее, чем AS3, посколькупостроенный сверху этого.Логичным выводом было бы принять решение на индивидуальной основе.Каковы ваши требования к приложениям, действительно ли прирост производительности при использовании этого компонента или нет и т. Д. Помимо того, что Flex в целом должен работать медленнее, чем AS3, я не думаю, что вы можете устанавливать общие правила.Можно добавить, что если кто-то беспокоится о производительности, то зачем в первую очередь выбирать Flex ...

Конец редактирования

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

Вопрос не в том,действительно зачем выбирать одно над другим.Это тот же подход, что и у вас, если вы решите разрабатывать, используя язык напрямую или используя платформу, основанную на этом языке.Это похоже на сравнение JQuery & Javascript или CodeIgniter & PHP. Я не имею в виду, что причины использования JQuery одинаковы в отношении использования Flex.Хотя JQuery будет пытаться скрыть особенности браузера и сделать JS более доступным, цель Flex совершенно иная.

Если вы разрабатываете RIA, Flex имеет смысл, если вы разрабатываете игры, но не совсем.Все, что вы можете сделать с Flex, можно сделать с AS3, только вы не захотите тратить время на разработку DataGrids или HBoxes, в то время как вы могли бы тратить больше времени на структуру и дизайн своего приложения.

С другой стороны, еслиВы разрабатываете веб-сайт или игру, и вам не хотелось бы добавлять вес фреймворка Flex к своему SWF-файлу просто потому, что вы добавили несколько компонентов Image и пару ярлыков.

FlexFlex не приспособлен к любой ситуации, в отличие от моих предыдущих примеров Javascript или Php, цель Flex не состоит в том, чтобы сделать язык, на котором он основан, более доступным или более простым в обращении.У Flex очень специфическая цель.

0 голосов
/ 07 ноября 2010

В любом случае ваше приложение будет преобразовано в объект ActionScript.

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

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

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

0 голосов
/ 04 ноября 2010

Под поверхностью MXML get преобразуется в тот же байт-код AS3, как если бы вы писали в простом AS3, поэтому вопрос, замедляет ли приложение MXML, сводится к тому, насколько хорошо компилятор Flex выполняет преобразование.

Что касается исходного вопроса, я бы сказал, что MXML предназначен для визуальной разработки, но, как было сказано, прежде чем вы достигнете пределов при попытке создания пользовательских компонентов.Лично я пишу приложения Flex на 99,9% простом AS3, потому что я не выношу MXML.Единственный файл MXML - это обязательный класс Entry, поэтому компилятор знает, что это должно быть приложение Flex, которое он компилирует.

0 голосов
/ 02 ноября 2010

Производительность, вы создаете элементы представления с MXML быстрее, чем с AS3.

0 голосов
/ 01 ноября 2010

Нет, Flex предназначен для обучения, так как вы узнаете больше, вы используете больше .as, а затем однажды ... вы используете 0 Flex.С одной стороны, это медленно.

(правка - ответ на комментарии) «Почему гибкость медленная» - создает сгенерированный компьютером .as код.Эквивалентная функциональность в .as быстрее и меньше.«MXML отделяет пользовательский интерфейс от кода» - я бы сказал, что нет.Прежде всего ... это XML.

Если вы новичок, посмотрите другие фреймворки, такие как Away3d, FDT и MinimalComponents.По мере того, как вы становитесь более продвинутым, вы используете меньше MXML и однажды не используете MXML, вы пишете в чистом виде .as.Все, что во Flex, можно сделать лучше в HTML5 / .js.Также .as намного лучше, чем HTML5 / .j. Это как учебный трицикл и хорошо для корпоративных разработчиков, которые перетаскивают, думают о себе как о программистах.Разработчики программного обеспечения ... не оставайтесь с Flex надолго до развития.Здесь: http://www.youtube.com/watch?v=TL2t8eOs1XE Мне жаль вас, если вы остаетесь во Флексе и не продвигаетесь.

...