Последние 6 месяцев я интенсивно занимался разработкой Flex 4 и должен сказать, что это облегчит вашу работу.
Вот что я бы сделал:
1) Проверьте FlexSpaces на лучшую архитектуру проекта Flex 3. Это полнофункциональная CMS во Flex с категориями, тегами, поиском, файловой системой, совместной работой и т. Д.
2) Загрузите Flex 4 SDK и установите его. Больше нет необходимости использовать Flex 3, если вы только начинаете, определенно перейдите к Flex 4. Если вам нужны пользовательские компоненты, Spark (новая архитектура компонентов) предлагает очень простой способ их выполнения (вот классная запись в блоге). создание Рейтингового компонента в Spark, который показывает вам, как это сделать). Flex 4 обратно совместим с компонентами Flex 3, поэтому вы можете использовать проекты / компоненты, которые вы найдете в Интернете, если хотите, без проблем.
3) Для верхнего левого списка категорий, если категории не являются вложенными, я бы использовал spark.components.List
, ( вот один с использованием более сложных средств визуализации элементов). Затем просто расширьте spark.components.supportClasses.ItemRenderer
, который действует как скин. Если категории вложены, просто используйте mx.controls.Tree
. Проверьте, что FlexSpaces проект для этого (они показывают, как использовать XML / ArrayCollections в дереве, ваши вопросы "экземпляры объекта, приведенные в flex как-то").
4) Что касается эффекта колеса, то единственное, что мне не нравится в Spark, это то, что сложно анимировать макеты. Но люди начинают делать 3D-макеты, посмотрите Вот 5 3D-макетов для Flex 4 Райана Кэмпбелла. Также есть OpenFlux , если вы хотите очень легко анимированные макеты. Эффекты Flex в целом довольно неуклюжи, поэтому в итоге я использую Tweener или TweenMax для анимации.
5) Что касается перекомпоновки, попытка перекомпоновки с использованием архитектуры Flex 3 была бы монументальной задачей, если бы вы хотели, чтобы она выглядела чистой и красивой, и было бы безумно пытаться повторно использовать этот код в следующем проекте. Для Spark это совсем несложно, и это 100% mxml. Просто скопируйте всю папку sparkSkins из SDK и начните все менять, и все готово.
Но да, этот проект FlexSpaces - очень хороший пример того, о чем вы говорите. Полностью с открытым исходным кодом.
Приветствия