У меня есть следующий компонент панели под названием AdvancedPanel с controlBarContent:
<!-- 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>
Я создал вторую панель, вызванную CustomAdvancedPanel на основе AdvancedPanel, так как я не хочу повторно объявлять controlBarContent
<!-- CustomAdvancedPanel.mxml -->
<local:AdvancedPanel>
<s:Button includeIn="edit" label="Extra edit button" />
</local:AdvancedPanel>
Это не работает, потому что состояние 'редактирования' в CustomAdvancedPanel не объявляется согласно компилятору. Я должен повторно объявить состояние редактирования в CustomAdvancedPanel.mxml следующим образом:
<!-- 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>
Используя CustomAdvancedPanel в компоненте приложения показывает пустую панель с кнопкой "Go to edit". Но когда я нажимаю его, "Дополнительная кнопка редактирования" становится видимой, но кнопка "Show in edit" в панели управления не делает.
Когда CustomAdvancedPanel пуст, без перезаявленных состояний и "Работает просто великолепно дополнительная кнопка редактирования" панель.
Я думаю, что это - потому что объект состояния, объявленный в AdvancedPanel, не является тем же как CustomAdvancedPanel, таким образом, состояние отличается, даже если у них есть то же имя.как бы то ни было. Я не могу использовать состояния AdvancedPanel в CustomAdvancedPanel без (ре), объявляют их в mxml.
Там какой-либо путь состоит в том, чтобы достигнуть этого вида повторного использования состояния? Или существует ли лучший способ получить тот же результат?