цикл for..each для элементов управления Adobe Air - PullRequest
0 голосов
/ 04 августа 2011

У меня есть четыре элемента управления TextInput в виде Adobe Air. Они отображаются на панели с именем: pnlUnlockCode.

Теперь я хочу реализовать цикл for..each для этих четырех TextInput, например

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 ]

1 голос
/ 04 августа 2011

Вы можете сделать следующее:

for( var i:int=0; i < pnlUnlockCode.numElements; i++){
   var c:TextInput in pnlUnlockCode.getElementAt(i)
   ...
}
0 голосов
/ 04 августа 2011

Это то, что я бы попробовал:

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 для установки widht и height за один проход.Поэтому вам, возможно, будет лучше использовать свойства width и height по отдельности:

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

Может ли кто-нибудь это подтвердить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...