如何在actionscript中创建动态变量vbox

时间:2009-05-11 17:37:09

标签: actionscript-3 dynamic variables

我必须为每个循环创建几个vbox-es。 现在我想做这样的事情。

formsArray [“vb”+ counter] =新的VBox; formsArray [“vb”+ counter] .visible = true;

添加标签等。

我无法让这件事发挥作用。有人知道如何为我的vbox-es创建动态变量名吗?

由于

1 个答案:

答案 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不可见也会使包含的按钮不可见,从而难以再次单击它。 :)你可能想解决这个问题。无论如何,我希望这会指出你正确的方向。