Как определить пользовательские «группы содержимого» в пользовательском компоненте Flex 4? - PullRequest
6 голосов
/ 13 мая 2010

Например, компонент панели зажигания можно записать так:

<Panel title="Skinny">
  <child components ... />
  <controlBarGroup>
    <child control bar components ... />
  </controlBarGroup>

</Panel>

И его файл обложки будет обрабатывать макет contentGroup, controlBarGroup и titleDisplay. Однако обратите внимание, что contentGroup не отображается в приведенном выше коде и что controlBarGroup принимает дочерние компоненты mxml.

Теперь скажите, что я хочу создать пользовательский компонент, который определяет различные обязательные и необязательные части скина, такие как 'headerGroup', 'navigationGroup' и 'accountPreferencesGroup'. Я хотел бы написать этот пользовательский компонент, как это

<MyComp>
<headerGroup>
   <child components .../>
</headerGroup>
<navigationGroup>
   <child components .../>
</navigationGroup>
<accountPreferencesGroup>
   <child components .../>
</accountPreferencesGroup>
</MyComp>

Мотивация заключается в том, что теперь я могу создать пару разных файлов скинов, чтобы изменить внешний вид и расположение этих подгрупп. При чтении источника панели spark, есть некоторые вызовы в пространстве имен mx_internal, такие как getMXMLContent (), который является методом компонента группы spark, но к которому у меня нет доступа.

Имеет ли смысл приведенное выше описание? Как я могу создать собственные «группы содержимого» в моем пользовательском компоненте Flex4, который может использовать вложенные дочерние компоненты mxml? Должен ли я подойти к этому по-другому?

Ответы [ 2 ]

6 голосов
/ 16 июля 2010

Я недавно наткнулся на это сообщение в блоге.Я думаю, это дает довольно хорошее объяснение того, о чем вы говорите.

http://saturnboy.com/2010/07/multiple-content-area-containers/

0 голосов
/ 13 мая 2010

Итак ... проработав немного больше ... я обнаружил, что можно использовать пространство имен mx_internal, добавив следующее

import mx.core.mx_internal; использовать пространство имен mx_internal;

Adobe использует это пространство имен для маркировки методов и свойств, которые могут измениться в будущем, поэтому они используют это пространство имен для сокрытия вещей.

Если вы будете следовать коду в Panel.as, вы можете получить эту работу и определить свои собственные области содержимого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...