гибкий провод 3 выполняет итерации через объектные значения

Во-первых: ваш ввод может быть нулевым, поэтому сначала проверьте нулевое значение, и, я думаю, в этом случае верните нулевое значение.

Во-вторых: после создания массива одинакового размера необходимо выполнить итерацию ввода и для каждого индекса проверить две вещи:

  1. Если индекс меньше (длина-1), добавьте элемент в справа
  2. Если индекс больше 0, добавить элемент слева
  3. Всегда добавлять элемент в текущий индекс

Готово?

5
задан MatrixFrog 17 July 2009 в 02:55
поделиться

4 ответа

Ищите документацию относительно цикличного выполнения Flex 3. Если Вы сделаете, то Вы найдете это:

for..in

for..in цикл выполняет итерации через свойства объекта или элементы массива. Например, можно использовать для.. в цикле для итерации через свойства родового объекта (свойства объектов не сохранены ни в каком конкретном порядке, таким образом, свойства могут появиться в на вид произвольном порядке):

var myObj:Object = {x:20, y:30};
for (var i:String in myObj)
{
    trace(i + ": " + myObj[i]);
}
// output:
// x: 20
// y: 30

Вместо того, чтобы пытаться создать поле ввода для каждого объекта, я предложил бы, чтобы Вы смотрели на DataGrid и пользовательский ItemEditors.

12
ответ дан 18 December 2019 в 08:31
поделиться

Можно записать это как actionscript, но включать его в mxml файле с тегом script:

<mx:Script>
   <![CDATA[
       public function LoopAndPrint() : void
       {
           //your code here
       }
   ]]>
 </mx:Script> 
1
ответ дан 18 December 2019 в 08:31
поделиться

Проблема с "for ... in" в том, что он выполняет итерацию только для динамических свойств. То есть, если ваш объект определен как класс (а не динамически), "for..in" ничего не даст.

В документации ActionScript предлагается использовать describeType () для фиксированных свойств, но это выглядит слишком большим. сложно для этой простой задачи…

2
ответ дан 18 December 2019 в 08:31
поделиться

Я согласен, что этот ответ бесполезен. Он работает только с общими объектами, а не с объявленными пользователем объекты.

Однако вот некоторый код, который должен / мог бы работать с описанием типа, как предложено выше. (И я не думаю, что это слишком сложно). Имейте в виду, что доступны только общедоступные свойства / методы и т. Д.:

var ct:CustomObject = new CustomObject(); 
var xml:XML = describeType(ct);
for each(var accessor in xml..accessor) {
  var name:String = accessor.@name;
  var type.String = accessor.@type;
  trace(ct[name]);
}
4
ответ дан 18 December 2019 в 08:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: