Да, это хорошая идея. Это намного лучше, чем создание одного гигантского MXML или класса, который содержит все ваши функции.
В то же время, он кариес некоторые накладные расходы. Для связи между классами (файлы MXML являются просто классами) вам нужно отправлять события. Родительский компонент, содержащий дочерние компоненты, может устанавливать общедоступные свойства своих дочерних компонентов (с привязкой или без привязки данных).
Вам следует попытаться как можно больше разделить ваши компоненты. Старайтесь не писать код, где дочерний компонент явно ссылается на родителя (т. Е. Не пытайтесь использовать свойство parent
). Вместо этого отправьте событие из дочернего компонента и попросите родителя прослушать событие.
Что касается вашего примера с сеткой данных и формы:
Если эти два объекта будут иметь много взаимодействия между ними, это будет гораздо легче держать их в том же файле MXML. Это не похоже на сценарий, где один является родительским компонентом, который содержит дочерний компонент. Поскольку эти «братья и сестры», скорее всего, будут общаться друг с другом, было бы проще иметь их в одном файле MXML. Однако, если все становится сложным, и файл увеличивается до более чем нескольких сотен строк, вам, вероятно, удастся их разделить.
Предположим, вы планируете использовать компонент формы в другом месте вашего проекта с сеткой данных, тогда также имеет смысл отделить их.
Что касается вашего вопроса: «Будет ли форма компонент быть в состоянии общаться ж/сетевой составляющая путем доступа к его идентификатор»:
Технически да, вы могли бы сделать это, но только плотно соединение вашей формы компонент с компонентом сетки. Компонент формы может использовать свойство parent
, чтобы перейти на один уровень и использовать идентификатор сетки. Но так как свойство parent
напечатано как DisplayObjectContainer
, вам нужно обмануть компилятор, и вы потеряете преимущества сильной типизации (потому что DisplayObjectContainer
не имеет свойства, которое является идентификатором вашей сетки). Поэтому, хотя это возможно, это не хороший дизайн и не позволяет повторно использовать компонент формы в другом месте.
Эта плотная муфта поражает цель создания отдельных компонентов.Таким образом, вы вернулись либо облегчение, что связь через диспетчерские событий, или положить сетку и форму в том же документе :)
TLDR:
Вы должны, как правило, пытается создать многоразовые компоненты. Поэтому я обычно опирался в этом направлении. Файлы MXML - это просто классы, все обычные вещи, о которых говорят люди в объектно-ориентированном программировании.
Если вы хотите создать пользовательский компонент, тогда вы можете использовать свою идею там, не проблема с этим. Компонент должен содержать более двух элементов управления .... – Devendra