for..Each循环的Adobe空中表单控件

时间:2011-08-04 08:44:05

标签: actionscript-3 air

我在adobe air表单中有四个TextInput控件。 它们显示在名为:pnlUnlockCode。

的面板中

现在我要做的是为这四个TextInput实现一个for..each循环,如

foreach (Control c in this.Controls)
{
    c.Height = this.Height * (sizes[count].Height / SCALE_H);
    c.Width = this.Width * (sizes[count].Width / SCALE_W);
    c.Left = this.Width * (positions[count].X / SCALE_W);
    c.Top = this.Height * (positions[count].Y / SCALE_H);
}

在c#中。

请拉我解决这个问题。

等待您的回复。

由于

2 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

for( var i:int=0; i < pnlUnlockCode.numElements; i++){
   var c:TextInput in pnlUnlockCode.getElementAt(i)
   ...
}

答案 1 :(得分:0)

这就是我想要的:

var numControls : uint = pnlUnlockCode.numChildren;
for (var i : uint; i < numControls; i++) {
    var control : TextInput = pnlUnlockCode.getChildAt(i) as TextInput;
    control.setActualSize(sizes[count].Width / SCALE_W, sizes[count].Height / SCALE_H);
    control.move(positions[count].X / SCALE_W, positions[count].Y / SCALE_H);
}

注意,您也可以通过设置显示对象的scaleX, scaleY属性来应用缩放。

另请注意:

setActualSize(w, h)设置的大小显然不可靠。我找不到任何Flex方法来在一次运行中设置widhtheight。因此,您可能会更好地单独使用width和height属性:

control.width = ...;
control.height = ...;

有人可以证实吗?