GBee, привет дружище)
Проблема в том, что рендеры пересоздаются.
Да, можно хранить во внешних классах, но при перетаскивании ещё и индексы меняются и все это нужно учитывать. Все путается у меня постоянно.
Я думал может есть какие-то встроенное решение, у Флекса куча разных возможностей и свойств, но похоже придется топорно городить огород.
Добавлено через 2 часа 25 минут
Цитата:
|
отдаем локальному листу этот data.socialVector как датапровайдер
|
Ну вот я делаю практически так же.
У меня есть объект PostData который является элементом датапровайдера для главного List:

Код AS3:
package
{
import flash.events.EventDispatcher;
import mx.collections.ArrayCollection;
[Bindable]
public class PostData extends EventDispatcher {
public var sort:int;
public var uid:String;
public var text:String;
public var image:String;
public var url:String;
public var socials:Vector.<int>;
public var res:Vector.<int>;
public var resources:ArrayCollection;
public var tags:String;
public var published:Boolean;
}
}
Параметр resources является ArrayCollection который является датапровайдером socIR. Вроде бы для каждого итемрендерера свой.
К resources привязываю другой ArrayCollection, который имеет данными такой объект:

Код AS3:
ackage
{
import flash.events.EventDispatcher;
[Bindable]
public class ResData extends EventDispatcher
{
public var uid:String;
public var name:String;
public var url:String;
public var social:int;
public var tags:String;
public var mintags:int;
public var maxtags:int;
public var selected:Boolean;
}
}
Где selected отвечает за выделение итема.
Теперь как связать выделение с данными? Если кликаю по итему, то я назначаю внутри его:

Код AS3:
if (this.selected) {
data.selected = true;
} else {
data.selected = false;
}
Если так не назначать, то при драге все выделения слетают. Если так назначать, то при драге выделение не слетают, но при выделении например первого итема все первые итемы в остальных рендерах тоже выделяются. И вот как от этого избавиться непонятно.