我在 as3 flash 中有一个带有文本字段和单选按钮的表单,它们的“实例名称”全部连续设置,例如:field_1 field_2 field_3 ...等
AS3 代码中是否有一种简单的方法可以遍历所有这些字段并在数组中获取它们的值?理想情况下,我想要一个简单的循环来获取值(所以如果缺少值,我可以添加一个简单的弹出窗口),然后使用填充的数组简单地使用 URLRequest 发布它。
谢谢!
我在 as3 flash 中有一个带有文本字段和单选按钮的表单,它们的“实例名称”全部连续设置,例如:field_1 field_2 field_3 ...等
AS3 代码中是否有一种简单的方法可以遍历所有这些字段并在数组中获取它们的值?理想情况下,我想要一个简单的循环来获取值(所以如果缺少值,我可以添加一个简单的弹出窗口),然后使用填充的数组简单地使用 URLRequest 发布它。
谢谢!
如果您想要一种工作量更少且更易于维护的方式(如果将来文本的数量会发生变化,或者您需要在其他表单上重用代码或不想打扰实例名称),那么您可以这样做类似于下面的代码。
请记住,这假定您的所有文本字段都是同一父级的子级并且在该父级的范围内(因此在时间轴中包含所有文本字段的帧上)
function validateTextFields(){
var tmpTf:TextField;
var i:int = numChildren;
while(i--){ //iterate through all the display objects on this timeline
tmpTf = getChildAt(i) as TextField;
if(tmpTf){
//now that you have the textfield, you can check for an appropriate value, or send the value to a server, or store it in an array etc.
//check if the value is blank, if so set the background to red
if(tmpTf.text == ""){
tmpTf.background = true;
tmpTf.backgroundColor = 0xFF0000;
}else{
tmpTf.background = false;
}
}
}
}
听起来您想使用 for 语句。我还使用了一个多维数组来存储实例名称以及它们包含的文本。我喜欢使用变量 _path 来定义我的代码范围。
var _path = this;
var text_ar:Array = new Array(['instance_1',''],['instance_2',''],['instance_3','']); //instance name, instance text.
for(var i=0; i<ar.length; i++)
{
text_ar[i][1] = _path[text_ar[i][0]].text
}
trace( text_ar[1][1] ); //Traces the text that's entered in instance_1.