У меня есть функция с именем dataLoaded
, которая имеет несколько циклов по вложенному массиву, полному элементов ингредиентов. Цель состоит в том, чтобы вставить каждый элемент из массива в TextField, который является частью прокручиваемого списка. Моя структура массива выглядит так:
public var so:SharedObject = SharedObject.getLocal("mySharedObject");
public var meat_items_array:Array = new Array(so.data.meat1, so.data.meat2, so.data.meat3);
public var carb_items_array:Array = new Array(so.data.carbs1, so.data.carbs2, so.data.carbs3);
public var other_items_array:Array = new Array(so.data.other1, so.data.other2, so.data.other3);
public var mealtype_items_array:Array = new Array(so.data.mealtype1, so.data.mealtype2, so.data.mealtype3);
public var cuisine_items_array:Array = new Array(so.data.cuisine1, so.data.cuisine2, so.data.cuisine3);
public var veg_items_array:Array = new Array(so.data.veg1, so.data.veg2, so.data.veg3);
public var master_array:Array = new Array(meat_items_array, carb_items_array, other_items_array, mealtype_items_array, cuisine_items_array, veg_items_array);
Вот моя функция dataLoaded
:
private function dataLoaded():void
{
for ( var masterCounter:int = 0; masterCounter < master_array.length; masterCounter++ )
{
for (var nestedCounter:int=0;nestedCounter<master_array[masterCounter].length;nestedCounter++)
{
var txt:String = master_array[masterCounter][nestedCounter];
if (txt==null) continue;
populateItem(txt,nestedCounter);
}
}
}
Первоначально все эстетическое позиционирование элементов в прокручиваемом списке ниже было выполнено в функции dataLoaded
, но теперь я решил переместить все эти вещи в новую функцию под названием populateItems
, которая вызывается во время каждой итерации внутреннего цикла for
в dataLoaded
.
Все это работает хорошо, за исключением того, что строка _item.y = nestedCount * _itemPosition;
уже не работает как надо (изначально элементы располагались в списке последовательно, причем значение y
вычислялось путем умножения константы (_itemPosition
) на значение счетчика для каждой итерации внутреннего цикла for
). Теперь в список вводятся сразу 3 элемента, а на следующей итерации цикла еще 3 элемента помещаются прямо поверх предыдущих 3 элементов, скрывая их.
Как мне изменить мою функцию ниже, чтобы моя _itemPosition
была более динамичной благодаря итерациям функции dataLoaded
?
function populateItem(txt:String, nestedCount:Number):void {
_item = new Item();
_item.item_btn_over.alpha = 0;
_itemTextField = new TextField();
_itemTextField.x = _textFieldXPosition;
_itemTextField.y = _textFieldYPosition
_itemTextField.text = txt;
//adds textfield to displaylist//
_item.addChild(_itemTextField);
//vertical positioning//
_item.y = nestedCount * _itemPosition; // ????
//adds items to container displaylist//
_container.addChild(_item);
}
_itemPosition
устанавливается/обновляется - person BadFeelingAboutThis   schedule 26.04.2013Item
были выровнены вертикально в последовательности? - person BadFeelingAboutThis   schedule 26.04.2013