Apache flex flex或amfphp中的VO是什么?

Apache flex flex或amfphp中的VO是什么?,apache-flex,amfphp,Apache Flex,Amfphp,事情就是这样。我正在获取XML数据,我需要等待它被解析,然后在从我的库完成解析后发送事件 首先,在这种情况下,有没有办法避免库中的事件 我看到的另一种选择是使用VOs。那么这是什么,以及如何使其工作。如果您是从flex中以XML数据的形式获取结果,我猜您使用的是获取XML的和HTTPService,因此您可以访问ResultEvent的result属性中的数据 e、 g 您将获得您的数据: private function resultHandler(e:ResultEvent):void{

事情就是这样。我正在获取XML数据,我需要等待它被解析,然后在从我的库完成解析后发送事件

首先,在这种情况下,有没有办法避免库中的事件


我看到的另一种选择是使用VOs。那么这是什么,以及如何使其工作。

如果您是从flex中以XML数据的形式获取结果,我猜您使用的是获取XML的和HTTPService,因此您可以访问ResultEvent的result属性中的数据

e、 g

您将获得您的数据:

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;
}

}
}
您的模型类可能会管理数据的加载和解析,一旦完成,它将调度一个事件,让应用程序知道请求的数据可用

用尽可能少的话来说,flex中的valueobject将是一个表示数据项的actionscipt类。使用一种方法意味着将通用对象(来自外部源)映射到其actionscript表示

没什么特别的


希望能有所帮助。

如果您是从flex以XML数据的形式获取结果,我猜您使用的是获取XML的和HTTPService,因此您可以访问ResultEvent的result属性中的数据

e、 g

您将获得您的数据:

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;
}

}
}
您的模型类可能会管理数据的加载和解析,一旦完成,它将调度一个事件,让应用程序知道请求的数据可用

用尽可能少的话来说,flex中的valueobject将是一个表示数据项的actionscipt类。使用一种方法意味着将通用对象(来自外部源)映射到其actionscript表示

没什么特别的


希望有帮助。

如果您能使用AMFPHP,我强烈推荐。您可以在服务器和actionscript中定义值对象(VO)。这将允许您在客户端和服务器之间来回传递强类型对象。根本不需要解析、使用e4x或以这种方式受苦


VO也被称为DTO(数据传输对象),其中一种是面向对象的设计模式。

如果您可以使用AMFPHP,我强烈推荐它。您可以在服务器和actionscript中定义值对象(VO)。这将允许您在客户端和服务器之间来回传递强类型对象。根本不需要解析、使用e4x或以这种方式受苦


VO也称为DTO(数据传输对象),其中一种是面向对象的设计模式。

VO与外部对象结合使用时,将允许数据从一个对象(一种语言)传输到等效对象(另一种语言)

因此,不必解析XML、e4x等,您可以让flex通过网关(即ZendAMF、amfPHP、sabreAMF等)直接与PHP对话

本网站提供了更多信息,说明了如何执行此操作(设置RemoteObject)。当然,George上面所说的是好的,如果你打算做远程对象,你需要注册这个类


Cheers

当VO与外部对象结合使用时,将允许数据从一个对象(一种语言)传输到等效对象(另一种语言)

因此,不必解析XML、e4x等,您可以让flex通过网关(即ZendAMF、amfPHP、sabreAMF等)直接与PHP对话

本网站提供了更多信息,说明了如何执行此操作(设置RemoteObject)。当然,George上面所说的是好的,如果你打算做远程对象,你需要注册这个类


Cheers

VO与外部数据源没有任何关联。它们对于本地生成的数据也非常有用。VO绝不与外部数据源绑定。它们对于本地生成的数据也非常有用。