Я сдаюсь. Надеюсь, я просто что-то упустил, но чувствую, что дергаю зубами, пытаясь заставить это работать. Все, что я хочу, это пользовательский компонент 'wizard', чьи дочерние элементы размещаются внутри ViewStack, а под ViewStack есть кнопка «Далее» и «Назад». Вот некоторые выдержки из кода, иллюстрирующие мой подход:
WizardGroup.as:
[SkinPart(required="true")]
public var nextBt:Button = new Button();
[SkinPart(required="true")]
public var backBt:Button = new Button();
[SkinPart(required="true")]
public var stack:ViewStackSpark = new ViewStackSpark();
WizardGroupSkin.mxml:
<s:VGroup width="100%" height="100%"
paddingBottom="10" paddingTop="10" paddingLeft="10" paddingRight="10">
<container:ViewStackSpark id="stack" width="100%" height="100%">
<s:Group id="contentGroup" width="100%" height="100%" minWidth="0" minHeight="0"/>
</container:ViewStackSpark>
<s:HGroup horizontalAlign="right" width="100%">
<s:Button id="nextBt" label="Next" enabled="{hostComponent.permitNext}" enabled.last="false"/>
<s:Button id="backBt" label="Back" enabled="{hostComponent.permitBack}" enabled.first="false"/>
</s:HGroup>
</s:VGroup>
Хотя это очень близко к работе, основная проблема заключается в том, что дочерние элементы компонента WizardGroup не добавляются как дочерние элементы стека просмотра. Вместо этого они добавляются как дочерние элементы группы содержимого. Таким образом, у стека просмотра всегда будет только один дочерний элемент: contentGroup.
Я также попробовал подход связывания содержимого стека представлений с дочерними элементами contentGroup, но в контейнерах Spark нет доступа к массиву дочерних элементов или массиву элементов (т. Е. Отсутствует contentGroup.getChildren. () или contentGroup.getElements ())
Есть идеи? Спасибо всем.