Если вы получаете свой результат в виде XML-данных из flex, я предполагаю, что вы используете и HTTPService, который получает XML, поэтому вы получаете доступ к данным в свойстве результата ResultEvent.
, например
private function resultHandler(e:ResultEvent):void{}
Вы получите ваши данные:
private function resultHandler(e:ResultEvent):void{
var tempCollection:ArrayCollection = new ArrayCollection();
tempCollection = e.result.someDataObject as ArrayCollection;
}
и это место, в котором вы бы установили данные, полученные из xml, в VO
private function resultHandler(e:ResultEvent):void{
var tempCollection:ArrayCollection = new ArrayCollection();
tempCollection = e.result.someDataNode as ArrayCollection;
for each(var item:Object in tempCollection){
var myVO:VO = new Image();
myVO.firstProperty = item.firstProperty;
myVO.secondProperty = item.secondProperty;
myVOCollection.addItem(myVO);
}
}
Идея проста ... VO - это просто пользовательский объект: создаваемый вами класс расширяет объект и предназначен для хранения значений из внешнего источника данных (например, в результате xml). Поскольку вы используете пользовательский класс, который работает быстрее, чем динамический, и он очень помогает при чтении кода и отладке (вы получаете проверку типов данных и все такое).
Это может быть что угодно: товары в магазине, фотографии в галерее и т. Д.
В примере я предположил, что someDataNode - это узел в вашем xml и myVOCollection, ArrayCollection для ваших данных и т. Д.
так что VO в этом случае у вас будет что-то вроде:
package{
class VO{
private var _firstProperty:String;
private var _secondProperty:String;
public function VO(firstProp:String=null,secondProp:String=null){
_firstProperty = firstProp;
_secondProperty = secondProperty;
}
public function get firstProperty():String{
return _firstProperty;
}
public function set firstProperty(value:String):void{
_firstProperty = value;
}
public function get secondProperty():String{
return _secondProperty;
}
public function set secondProperty(value:String):void{
_secondProperty = value;
}
}
}
Ваш класс Model, вероятно, будет управлять загрузкой и анализом данных, и, как только это будет сделано, он отправит событие, чтобы приложение узнало, что запрашиваемые данные доступны.
В двух словах, как это возможно, значениемобъекта в flex будет класс actionscipt, представляющий элемент данных. Использование одного означает отображение универсального объекта (который поступает из внешнего источника) в его представление ActionScript.
Ничего особенного.
Надеюсь, это поможет.