Прежде всего, чтобы использовать ассоциативный массив, вам нужно использовать Объект, а не Массив (возможно, вы уже есть, тогда неважно).
Вы можете достичь того, что хотите сделать, следующим образом:
var vbox:VBox;
var formsArray:Object = new Object();
var counter:int = 0;
for each(<statement>)
{
vbox = new VBox();
formsArray[("vb" + counter.toString())] = vbox;
counter++;
}
Значение свойства VBox по умолчанию равно true
, поэтому нет необходимости явно устанавливать его.
Ответ на дополнительный вопрос в комментариях:
Вам не нужно использовать динамические ссылки, чтобы делать то, что вы хотите. Для этого лучше всего создать пользовательский компонент, расширяющий класс VBox, создав новый класс MXML с корневым тегом VBox. Что-то вроде этого:
<mx:VBox ... >
<mx:Button ... click="btnClickHandler()"/>
<mx:Script>
<![CDATA[
// Toggles visibility of the VBox
private function btnClickHandler():void
{
visible = !visible;
}
]]>
</mx:Script>
</mx:VBox>
Тогда вы можете просто создать столько этих пользовательских VBox, сколько вам нужно. Однако, сделав VBox невидимым, вы также сделаете скрытую кнопку невидимой, что затруднит повторное нажатие. :) Вы, вероятно, хотите обратиться к этому. В любом случае, я надеюсь, что это укажет вам правильное направление.