tengo el siguiente componente del panel denominado AdvancedPanel con controlBarContent:¿Cómo heredar estados con mxml?
<!-- AdvancedPanel.mxml -->
<s:Panel>
<s:states>
<s:State name="normal" />
<s:State name="edit" />
</s:states>
<s:controlBarContent>
<s:Button
includeIn="edit"
label="Show in edit"
/>
<s:Button
label="Go to edit"
click="{currentState='edit'}"
/>
</s:controlBarContent>
</s:Panel>
he creado un segundo panel, llamado CustomAdvancedPanel basado en la AdvancedPanel ya que no quiero redeclare la controlBarContent
<!-- CustomAdvancedPanel.mxml -->
<local:AdvancedPanel>
<s:Button includeIn="edit" label="Extra edit button" />
</local:AdvancedPanel>
Este no funciona, porque el estado 'editar' en CustomAdvancedPanel no se declara de acuerdo con el compilador. Tengo que redeclare el estado de edición en CustomAdvancedPanel.mxml de la siguiente manera:
<!-- CustomAdvancedPanel.mxml with edit state redeclared -->
<local:AdvancedPanel>
<local:states>
<s:State name="normal" />
<s:State name="edit" />
</local:states>
<s:Button includeIn="edit" label="Extra edit button" />
</local:AdvancedPanel>
Utilizando el CustomAdvancedPanel dentro de un componente de la aplicación muestra un panel de vacío con el botón "Ir a editar". Pero cuando hago clic en él, el "botón de edición adicional" se vuelve visible, pero el botón "Mostrar en edición" dentro de la barra de control no.
Cuando CustomAdvancedPanel está vacío, sin estados redeclarados y "Botón de edición adicional", el panel funciona bien.
Creo que es porque el objeto de estado declarado en AdvancedPanel no es lo mismo que CustomAdvancedPanel, por lo que el estado es diferente, incluso si tienen el mismo nombre. Sin embargo. No puedo usar los estados de AdvancedPanel dentro de CustomAdvancedPanel sin (re) declararlos en mxml.
¿Hay alguna manera de lograr este tipo de reutilización de estado? ¿O hay una mejor manera de obtener el mismo resultado?
+1 para una pregunta bien redactada, con ejemplos. – JeffryHouser