Если вы не хотите взаимодействовать со строкой как объектом в списке отображения, я просто нарисовал бы ее в updateDisplayList()
, используя Graphics api , и вызвал бы invalidateDisplayList()
из set dataSource()
"правильный" способ немного более многословен; -)
private var dataSourceValid = true;
public function set dataSource(value:FooData):void {
_dataSource = foo;
dataSourceValid = false;
invalidateProperties();
}
override protected function commitProperties():void {
if (!dataSourceValid)
commitDataSource();
// Do it later in case we've invalidated something
// belonging to Flex while validating our stuff
super.commitProperties();
}
protected function commitDataSource():void {
// Do whatever we need to with our datasource,
// including adding or removing child elements.
// ...
// If we also need to re-draw something, then
// invalidateDisplayList();
dataSourceValid = true;
}
(весь код набран в TextMate, поэтому он, вероятно, полон орфографических ошибок и не компилируется, ноВы поняли)