Wenn Sie Ihr Ergebnis als XML-Daten von flex erhalten, schätze ich, dass Sie verwenden und HTTPService, die die XML erhält, so dass Sie auf die Daten in der Ergebniseigenschaft eines ResultEvent zugreifen.
z.B.
private function resultHandler(e:ResultEvent):void{}
Sie würden Ihre Daten erhalten:
private function resultHandler(e:ResultEvent):void{
var tempCollection:ArrayCollection = new ArrayCollection();
tempCollection = e.result.someDataObject as ArrayCollection;
}
und dies der richtige Ort würden Sie die Daten, die Sie aus XML erhalten setzen würde in VO des
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);
}
}
Die Idee ist einfach ... Ein VO ist nur ein benutzerdefiniertes Objekt: Eine Klasse, die Sie erstellen, erweitert das Objekt und dient dazu, Werte aus einer externen Datenquelle zu speichern (z. B. Ihr XML-Ergebnis). Da Sie eine benutzerdefinierte Klasse verwenden, die schneller als eine dynamische Klasse ist, und es hilft viel beim Lesen des Codes und Debuggen (Sie erhalten die Überprüfung von Datentypen und all das). Produkte in einem Geschäft, Fotos in einer Galerie usw.
Im Beispiel I someDataNode angenommen ist ein Knoten in XML und myVOCollection, ein Arraycollection für Ihre Daten und so weiter:
Sie können alles sein.
so ein VO in diesem Fall Sie so etwas wie:
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;
}
}
}
Ihre Modellklasse würde wahrscheinlich Laden und Parsen von Daten verwalten, und sobald dies geschehen ist wird es eine -Ereignis auf die Anwendung zu informieren, die angeforderte Daten sind verfügbar.
In so wenigen Worten wie möglich wäre ein valueobject in flex eine actionscipt-Klasse, die ein Datenelement darstellt. Die Verwendung von Eins bedeutet, dass ein generisches Objekt (das von einer externen Quelle kommt) auf seine Actionscript-Darstellung abgebildet wird.
Nichts Besonderes.
Ich hoffe, es hilft.
VOs sind in keiner Weise zu einer externen Datenquelle gebunden. Sie sind auch sehr nützlich für lokal erzeugte Daten. –