Для проекта, над которым я работаю во Flex, я решил создать несколько отдельных файлов для каждой «темы», которые можно использовать. Поскольку каждая тема может и будет требовать определенного кода, изображений, стилей и практически чего-либо еще, классический вариант css-only на самом деле невозможен.
У меня есть одна проблема с этим методом, и это то, что каждый «дочерний» mxml-файл не может читать переменные и тому подобное, созданные в родительском приложении. Использование Application.application решает половину проблем, но любой вид решения с глобальными переменными кажется мне неудачным. И из-за этого код не становится намного чище.
Я создал класс, который загружается в основное приложение со статической переменной, которую я использовал в качестве AS3-эквивалента глобальных переменных. К сожалению, доступ к ним из этих «дочерних» mxml-файлов невозможен, я могу только повторно инициировать класс или написать функцию-обертку в основном приложении, которая извлекает эти переменные. Это, опять-таки, далеко не идеальный вариант, и все равно у меня нет достойного способа использовать методы из классов, которые были инициированы в родительском приложении.
Какой лучший способ заставить это работать хорошо?
Краткое изложение приложения:
1) Основное приложение загружает несколько классов / пакетов, запускает несколько с правильными настройками и тому подобное.
2) Основное приложение имеет ViewStack, в котором каждая тема создается из внешнего файла (themes / ThemeName.mxml)
3) Каждая тема должна иметь доступ как минимум к двум переменным, установленным основным приложением (с помощью загруженных классов и методов), а некоторым может также потребоваться прямой доступ к определенным функциям, которые должны быть доступны глобально для обоих основных приложений, а также конкретная тема mxml.
Надеюсь, мои объяснения немного ясны. Пожалуйста, задавайте любые вопросы, которые могут помочь вам понять это больше. Большое спасибо заранее!
-Dave
Небольшое обновление: Для большей ясности: у меня есть класс, который позволяет мне легко создавать вид с камеры. Я инициализирую и использую этот класс в основном приложении, которое затем помещает новый (web) cam (era) экземпляр в переменную, готовую для использования в любом месте, где это необходимо. Затем в файле просмотра (themes / theTheme.mxml) отображаются 2 камеры в зависимости от того, что они хотят. Я хочу, чтобы в файле просмотра использовались камеры, созданные в основном приложении, чтобы мне не приходилось просить ребят, создающих тему, реализовывать все это снова и снова. Это один из примеров того, почему мне это нужно.
Спасибо, что помогли мне до сих пор!