Ответ 1
Flash и Flex используют один и тот же базовый движок рендеринга, только с разными интерфейсами. Flash лучше подходит для создания фильмов и анимации. Flex лучше подходит для разработки приложений.
Я пробовал искать везде для краткого списка преимуществ и недостатков использования Flex vs. Flash.
Исходя из фона программирования, я абсолютно люблю Flex. Легко подобрать, и поскольку он может использовать flash-классы, почему я хочу использовать Flash без flex?
Flex:
Плюсы:
Минусы:
Вспышка
Плюсы:
Минусы:
Пожалуйста, поправьте меня, если я пропустил все, что было сказано до сих пор.
Flash и Flex используют один и тот же базовый движок рендеринга, только с разными интерфейсами. Flash лучше подходит для создания фильмов и анимации. Flex лучше подходит для разработки приложений.
С точки зрения программиста большая разница между Flash и Flex заключается не столько в том, какой IDE/приложение вы используете для программирования, но только в программе ActionScript (AS) или используете фреймворк Flex и MXML для программирования ваших приложений.
Я бы сказал, что чистый ActionScript лучше для программирования (независимо от того, используете ли вы Flash IDE или Flex IDE, это не так важно), а MXML лучше для не-программистов комбинировать компоненты, запрограммированные в AS.
Я бы добавил в ваш список эти плюсы/минусы:
Flex:
Плюсы:
Минусы:
Flash (или Flex IDE в режиме проекта ActionScript):
Плюсы:
Минусы:
Короче: выберите правильный инструмент для правильной задачи.
Flex - это библиотека кода, написанная в ActionScript3, поэтому она добавляет во Flash множество возможностей и материалов, похожих на стандартную библиотеку. Недостатком является то, что это код суммирования, который входит в ваше приложение. Если вы используете какой-либо Flex вообще в своем приложении, размер загрузки SWF увеличивается на 100 из K.
Если ваше приложение имеет какие-либо виджеты пользовательского интерфейса, вам почти нужно использовать Flex, поскольку сама Flash имеет только самые основные вещи, такие как текстовые поля. Flex имеет целый XML-интерфейс с макетами, привязкой данных и настройкой XML и т.д.
Выполняя это во Flash, вам приходится писать с нуля такие вещи, как списки...
На мой взгляд, наиболее важной особенностью фреймворка Flex является жизненный цикл компонента, который обеспечивает действительно элегантную модель для проверки/недействительности свойств, размера компонента и иерархического рендеринга.
Преимущество разработчиков заключается в том, что он создает отдельные фазы приложения для бизнес-логики и рендеринга, избегая дорогостоящей геометрии и кода рендеринга до последнего момента до рисования кадра.
Вот действительно хорошая презентация, объясняющая, как это работает:
http://tv.adobe.com/#vi+f15384v1002
Модель настолько хорошо разработана, что жизненный цикл компонента остается почти полностью невидимым в течение большей части разработки Flex, когда вы используете компоненты и контейнеры по умолчанию. Вам нужно только изучить внутреннюю работу, когда вы начинаете разрабатывать свои собственные компоненты.
Развиваясь во Flash-среде или в чистом ActionScript, вы ничего не получаете. Любой, кто разрабатывает чистые приложения AS3, должен либо тщательно закодировать очень, чтобы отделить бизнес-логику от рендеринга, либо сильно пострадать.
[...] почему я хочу использовать Flash без flex?
Flex - это новый продукт, тогда как Flash существует из дней Macromedia. Дизайнер, аниматоры и большинство тех, кто не воспитывается на основной диете программирования, вероятно, найдут Flash легче освоить, чем большинство других подобных решений.
Цель отличается. Flex больше посвящен программисту, а Flash более дружелюбен к художнику/веб-дизайнеру.
Flash - это IDE, используемая (как правило) для создания анимаций и вещей, которые хорошо работают на временной шкале.
Flex лучше работает для создания интернет-приложений, у которых есть взаимодействия, более похожие на рабочий стол.
Зачем использовать Flash? Ну, если вам нужно сделать что-то более конкретное, привязанное к временной шкале, конечно!
Я вижу Flex как больше решений для приложений RIA, где вам нужно разрабатывать решения на основе приложений. Там довольно много вы получаете прямо из коробки с помощью Flex, но она также имеет цену с точки зрения размера файла, детализации и т.д.
Если, с другой стороны, вы работаете над полностью настраиваемым решением, таким как игра, то, возможно, Flash - это путь, потому что вы можете начать новый с чистого листа. Многие люди по-прежнему используют Flash, потому что им не нужны все приложения и свистки на платформе Flex.
Мне нравится свобода Flash, и ее действительно просто вставлять активы во Flash, немного сложнее делать в Flex.
Одна вещь, которую мне нравится в гибкости, - это способность делать жидкое приложение с минимальными усилиями. Что бы навсегда во Flash.
Все, что вы можете сделать в flex, которое вы можете сделать во флэш-памяти, может занять гораздо больше времени. Вы не можете делать все в flex, которое вы можете делать во флэш-памяти.
Flex заботится обо всех программах пользовательского интерфейса для вас и позволяет сосредоточиться на бизнес-логике, со вспышкой вы потратите большую часть времени на программирование пользовательского интерфейса.
Вы можете легко создавать приложения Flex под Linux, но с Flash вы просто не можете.
Другим решением, которое не было предложено здесь, будет использование их обоих. Вы можете добавить компоненты flex для флеш-роликов, используя ContainerMovieClip. И вы можете добавить флеш-ролики для гибких компонентов, используя SpriteVisualElement. Еще одна вещь, о которой не упоминалось, - это прокладка приложения. Это будет гибким профи в сравнении с недостатком флэш-памяти, потому что вы получили встроенную гибкую систему. Но опять же, когда вы используете их оба, вы можете компоновать свои видеоролики с помощью гибкой планировочной системы.
Также flex станет проект верхнего уровня Apache. И теперь он становится все более и более открытым сообществом.
Flash и Flex - это две совершенно разные вещи, одна из которых - инструмент проектирования с поддержкой действия script, другой - это фреймворк, который также имеет действие script, но почерпнутый вокруг MXML, который является интерфейсом на основе XML определение "Язык".