1. не пугаться
2. читать про itemRenderers
3. :) не верить без проверки всему что говорят
--
С уважением, Скорик Андрей. andrew...@gmail.com
И что значит *чилдрены меняют родителя*? Чилдрены кого?
> С уважением, Скорик Андрей. andrewsko...@gmail.com
label.text = data ? data.@name : "";
имя атрибута должно задаваться в labelFunction у Tree
-------
label.text = label.text.substr(0,15)+"...";
а это лучше делать в measure
------
а так же советую посмотреть как устроен commit в том классе от
которого вы отнаследовались
if (_data != null)
{
listOwner = Tree(_listData.owner);
if (_listData.disclosureIcon)
{
var disclosureIconClass:Class = _listData.disclosureIcon;
var disclosureInstance:* = new disclosureIconClass();
// If not already an interactive object, then we'll wrap
// in one so we can dispatch mouse events.
if (!(disclosureInstance is InteractiveObject))
{
var wrapper:SpriteAsset = new SpriteAsset();
wrapper.addChild(disclosureInstance as DisplayObject);
disclosureIcon = wrapper as IFlexDisplayObject;
}
else
{
disclosureIcon = disclosureInstance;
}
addChild(disclosureIcon as DisplayObject);
disclosureIcon.addEventListener(MouseEvent.MOUSE_DOWN,
disclosureMouseDownHandler);
}
if (_listData.icon)
{
var iconClass:Class = _listData.icon;
icon = new iconClass();
addChild(DisplayObject(icon));
}
label.text = _listData.label;
label.multiline = listOwner.variableRowHeight;
label.wordWrap = listOwner.wordWrap;
}
else
{
label.text = " ";
toolTip = null;
}
как это видно без микроскопа данные берутся из listData - как вы
думаете с чего бы это? :)
и никаких BindingUtils :))))
как это видно без микроскопа данные берутся из listData - как вы
думаете с чего бы это? :)
И что значит *чилдрены меняют родителя*? Чилдрены кого?
То есть, если ты хочешь лист с 8 строчками, тогда Лист создает 8
рендереров + 2 или 3 для кеша. Если у тебя датапровайдер имеет 100
записей, то для этих ста записей лист не создает столько-же
рендереров. Он создает 8 + 2, и, сетает data айтемрендереру объекты из
массива от 0 до 10.
Если ты скролишь, то он просто сетает инфу этим-же рендерерам.
Поэтому, нужно удалять любые исторические записи от предыдущих
объектов.
Вот отличная статься - http://www.adobe.com/devnet/flex/articles/itemrenderers_pt5.html
On 6 ноя, 14:58, Shaman <shama...@gmail.com> wrote:
не совсем так. лист устроен так что при скроле на небольшие расстояния
двигаются те же самые итем рендереры и им переназначаются данные. а
если лист отскролили сразу на большое расстояние - рендереры
уничтожаются и создаются заново.
>
> Этой listData можно манипулировать? Или что с ней можно сделать, я честно не понял.
>
смотрите референс по классу BaseListData. вы там можете получить
индекс ряда (и колонки для датагрида) и ссылку на родительский
компонент и взять нужные данные из его датапровайдера.
--
С уважением, Скорик Андрей. andrew...@gmail.com
Ну и чтобы сразу избежать недоразумений. Рендеры не уничтожаются, а
"складываються на полочку", а потом по мере надобности, беруться с нее
и им проставляются новая data.
И насколько мне помниться при складывании на полочку у них даже не
чистится пропертя data
--
Ilja Panin
http://the33cows.com