2013-03-01 2 views
1

Я хочу знать, имеет ли смысл иметь файл mxml для каждого компонента, затем встраивать эти различные компоненты в один файл mxml и поддерживать связь между этими mxml файлами?Flex: Это хорошая идея или дизайн, чтобы включить MXML другой файл MXML?

Например, у меня есть overView.mxml и в этом, я встраивать другие mxml файлы, которые содержат компоненты, такие как datagrid, другой mxml содержит может быть формой. Смогу ли я передать данные сетки, обратившись к ее идентификатору в форме mxml?

Пожалуйста, дайте мне знать, если мой вопрос не ясен. Я постараюсь перефразировать его.

Большое спасибо.

+0

Если вы хотите создать пользовательский компонент, тогда вы можете использовать свою идею там, не проблема с этим. Компонент должен содержать более двух элементов управления .... – Devendra

ответ

2

Да, это хорошая идея. Это намного лучше, чем создание одного гигантского MXML или класса, который содержит все ваши функции.

В то же время, он кариес некоторые накладные расходы. Для связи между классами (файлы MXML являются просто классами) вам нужно отправлять события. Родительский компонент, содержащий дочерние компоненты, может устанавливать общедоступные свойства своих дочерних компонентов (с привязкой или без привязки данных).

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

Что касается вашего примера с сеткой данных и формы:

Если эти два объекта будут иметь много взаимодействия между ними, это будет гораздо легче держать их в том же файле MXML. Это не похоже на сценарий, где один является родительским компонентом, который содержит дочерний компонент. Поскольку эти «братья и сестры», скорее всего, будут общаться друг с другом, было бы проще иметь их в одном файле MXML. Однако, если все становится сложным, и файл увеличивается до более чем нескольких сотен строк, вам, вероятно, удастся их разделить.

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

Что касается вашего вопроса: «Будет ли форма компонент быть в состоянии общаться ж/сетевой составляющая путем доступа к его идентификатор»:

Технически да, вы могли бы сделать это, но только плотно соединение вашей формы компонент с компонентом сетки. Компонент формы может использовать свойство parent, чтобы перейти на один уровень и использовать идентификатор сетки. Но так как свойство parent напечатано как DisplayObjectContainer, вам нужно обмануть компилятор, и вы потеряете преимущества сильной типизации (потому что DisplayObjectContainer не имеет свойства, которое является идентификатором вашей сетки). Поэтому, хотя это возможно, это не хороший дизайн и не позволяет повторно использовать компонент формы в другом месте.

Эта плотная муфта поражает цель создания отдельных компонентов.Таким образом, вы вернулись либо облегчение, что связь через диспетчерские событий, или положить сетку и форму в том же документе :)

TLDR:

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

+0

Я вижу ... Большое вам спасибо за очень подробное объяснение. Я очень новичок в том, чтобы сгибать, поэтому мне трудно получить то, что вы говорите. Я понимаю, в определенной степени. Все онлайн-примеры имеют скрипт действия и все компоненты в одном файле mxml. В программе, которую я написал, также есть все внутри одного mxml. Таким образом, чтобы разделить и заставить эти компоненты взаимодействовать друг с другом. знаете ли вы какие-либо руководства или вспомогательные ссылки, которые показывают, как я могу это сделать? – user2017147

Смежные вопросы