Flash AS3 - 循环 - 动态隐藏文本框集

时间:2010-11-18 12:35:17

标签: actionscript-3 flash-cs4

我需要一个隐藏一组文本框的功能,我写了以下内容 -

var allTxtBoxes:Array = ["title_txt","l1_txt","l2_txt","l3_txt","l4_txt","l5_txt"]; 


for(var i:Number = allTxtBoxes.length - 1; i >= 0; i--) {


var hiddenT:String = "newOverlibTxt."+allTxtBoxes[i]
              hiddenT.visible=false;;

    }

我已经以各种方式尝试了上述方法,包括创建一个变量,但我只是因为我不能将visible = false应用于字符串而得到错误,尽管我希望它像对象一样。

有什么想法吗?

干杯 保罗

2 个答案:

答案 0 :(得分:1)

如果文本框位于容器中,则可以循环容器子项并在每个容器上设置visible属性。如果您需要更多信息,请告诉我,并试图掀起一个例子。

<强>更新

如果是动画片段,请尝试以下方法:

public function setAllChildrenAsInvisible ( mc:MovieClip ) : void
{
    for ( var i:int = 0; i < mc.numChildren; i++ )
    {
        var tempNewOverlibTxt:newOverlibTxt = mc.getChildAt(i) as newOverlibTxt;
        tempNewOverlibTxt.visible = false;
    }
}

现在我无法测试此代码,但这个概念应该适合您。如果您不想将所有子项设置为不可见,则可以添加if或switch语句,并将tmpNewOverlibTxt的id与列表进行比较。

答案 1 :(得分:0)

您可以尝试以下方式:

var allTxtBoxes:Array = ["title_txt","l1_txt","l2_txt","l3_txt","l4_txt","l5_txt"]; 
for(var i:Number = allTxtBoxes.length - 1; i >= 0; i--) {
    newOverlibTxt[allTxtBoxes[i]].visible = false;
}

在原始代码中,您尝试在字符串上设置visible属性,当然没有它。在上面的代码中,我引用了newOverlibTxt对象,并使用括号语法根据名称提取属性。

这是一个猜测,因为我不确定此代码段的范围,因此newOverlibTxt可能无法使用。