我必须为每个循环创建几个vbox-es。 现在我想做这样的事情。
formsArray [“vb”+ counter] =新的VBox; formsArray [“vb”+ counter] .visible = true;
添加标签等。
我无法让这件事发挥作用。有人知道如何为我的vbox-es创建动态变量名吗?
由于
答案 0 :(得分:0)
首先,要使用关联数组,你需要使用一个Object而不是一个数组(也许你已经存在,然后就不用了)。
您可以通过以下方式实现您想要的目标:
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:es。但是,使VBox不可见也会使包含的按钮不可见,从而难以再次单击它。 :)你可能想解决这个问题。无论如何,我希望这会指出你正确的方向。