我需要一个隐藏一组文本框的功能,我写了以下内容 -
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应用于字符串而得到错误,尽管我希望它像对象一样。
有什么想法吗?
干杯 保罗
答案 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可能无法使用。