WEB开发网
开发学院软件开发Java 基于 Cairngorm MVC 框架的 Flex 程序设计与开发 阅读

基于 Cairngorm MVC 框架的 Flex 程序设计与开发

 2010-08-16 00:00:00 来源:WEB开发网   
核心提示: 方法 getPersonInfos() 用于发送查询 abc.xml 文件的请求,定义 VO从 xml 文件中读取过来的数据实际上都是一个个的员工的信息,基于 Cairngorm MVC 框架的 Flex 程序设计与开发(9),便于存储,定义 VO 类来封装员工信息,因为 ModelLocato

方法 getPersonInfos() 用于发送查询 abc.xml 文件的请求。

定义 VO

从 xml 文件中读取过来的数据实际上都是一个个的员工的信息,便于存储,定义 VO 类来封装员工信息,在 vo 包中定义 ActionScript class,取名为 PersonForm.as,代码如下:

清单 13. PersonForm.as

 package vo 
 { 
  public class PersonForm 
  { 
  public var id:String=""; 
  public var name:String=""; 
  public function PersonForm() 
  { 
  
  
  } 
  } 
 } 

实现 Command

通过在 Command 中维护 ModelLocator 单例的引用,当更新 ModelLocator 中的数据时,因为 ModelLocator 是单例,所以页面中的 ModelLocator 中的数据也相应的更新,详细的原理请看注释,LoadPersonCommand.as 完整代码如下:

清单 14. LoadPersonCommand.as

 package commands 
 { 
  import business.delegates.PersonDelegate; 
  import com.adobe.cairngorm.commands.ICommand; 
  import com.adobe.cairngorm.control.CairngormEvent; 
  import model.ModelLocator; 
  import mx.collections.ArrayCollection; 
  import mx.controls.Alert; 
  import mx.rpc.Responder; 
  import mx.rpc.events.FaultEvent; 
  import mx.rpc.events.ResultEvent; 
  import vo.PersonForm; 
  public class LoadPersonCommand implements ICommand 
 { 
    private var _model:ModelLocator=ModelLocator.getInstance(); 
  public function execute(event:CairngormEvent):void 
  { 
  //注册两个回调函数 
var responder:Responder = 
new Responder(onResults_loadPersons, onFaults_loadPersons); 
var delegate:PersonDelegate = new PersonDelegate(responder); 
  delegate.getPersonInfos(); 
  } 
  //如果请求发送成功则执行 
 public function onResults_loadPersons(event:ResultEvent):void 
  { 
  //用 xml 文件中的数据填充 ArrayCollection 
  var personRaw:ArrayCollection =event.result.menus.Box; 
  //用 personInfo填充 Model 
  for(var i:int=0;i<personRaw.length;i++) 
  { 
  var tempPerson:PersonForm=new PersonForm(); 
  var personFromXML:Object=personRaw.getItemAt(i); 
  tempPerson.id=personFromXML.id; 
  tempPerson.name=personFromXML.name; 
  _model.personInfos.addItem(tempPerson); 
  } 
  } 
  //如果请求发送不成功则执行 
 public function onFaults_loadPersons(event:FaultEvent):void 
  { 
  Alert.show("failed"); 
  } 
  } 
 } 

上一页  4 5 6 7 8 9 10  下一页

Tags:基于 Cairngorm MVC

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接