2010-05-12 9 views
6

El componente panel de chispa, por ejemplo, se puede escribir como esto¿Cómo puedo definir "contentGroups" personalizados en un componente personalizado de Flex 4?

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

</Panel> 

y su archivo de la piel se encargará de diseño de la contentGroup, controlBarGroup y titleDisplay. Observe, sin embargo, que contentGroup no aparece en el código anterior y que el controlBarGroup acepta componentes child mxml.

Ahora digo que quiero crear un componente personalizado que defina varias partes clave requeridas y no requeridas, como 'headerGroup', 'navigationGroup' y 'accountPreferencesGroup'. Me gustaría escribir este componente personalizado como éste

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

La motivación aquí es que ahora puedo crear un par de diferentes archivos de piel para cambiar el aspecto y el diseño de esos subgrupos. Fuente de lectura del panel de chispa, hay algunas llamadas dentro del espacio de nombres mx_internal como getMXMLContent() que es un método del componente de grupo de chispa, pero al que no tengo acceso.

¿Tiene sentido la descripción anterior? ¿Cómo puedo crear 'contentGroups' personalizados en mi componente personalizado de Flex4 que pueda usar componentes secundarios mxml anidados? ¿Debería abordar esto de una manera diferente?

+0

me acaba de encontrar el siguiente enlace que está bastante cerca de lo que estoy tratando de lograr. http://forums.adobe.com/thread/575569?tstart=1 – swidnikk

Respuesta

0

Así las cosas ... después de trabajar a través de un poco más ... me encontré con que su posible el uso de espacio de nombres mx_internal añadiendo lo siguiente

importación mx.core.mx_internal; use el espacio de nombres mx_internal;

Adobe utiliza este espacio de nombre para marcar métodos y propiedades que pueden cambiar en el futuro, por lo que usan este espacio de nombres para ocultar cosas.

Si sigue el código en Panel.as puede hacer esto y definir sus propias áreas de contenido personalizadas.

Cuestiones relacionadas