Flex3加载外部数据1

简介:


1.加载文本文件中的纯文本:

LoadData1.mxml
<?xml version="1.0" encoding="utf-8"?> 
<!--通过Bind绑定,使用了MXML的HTTPService标签,结果格式为text文本格式--> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="txtLoader.send();"> 
  <mx:Style> 
    Application{font-size:12px;} 
  </mx:Style> 
  <mx:HTTPService id="txtLoader" url="test1.txt" resultFormat="text"/> 
  <mx:VBox> 
    <mx:Text text="{txtLoader.lastResult}" /> 
  </mx:VBox> 
</mx:Application> 
 
文本文件test1.txt:
这是用于Flex的一段测试文本
 
 
运行结果:
 
 
2.这里不是用MXML标签,而采用类
<?xml version="1.0" encoding="utf-8"?> 
<!--使用HTTPService类得到同样的结果--> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="loadTxt(event);"> 
  <mx:Style> 
    Application{fontSize:14px;} 
  </mx:Style> 
  <mx:Script> 
    <![CDATA[ 
      import mx.rpc.events.ResultEvent; 
      import mx.events.FlexEvent; 
      import mx.rpc.http.HTTPService; 
      private var txtLoader:HTTPService=new HTTPService(); 
        
      //加载文本代码如下 
      private function loadTxt(evt:FlexEvent):void 
      { 
        txtLoader.url="test1.txt";//文件路径 
        txtLoader.resultFormat="text";//结果的格式是纯文本 
        txtLoader.addEventListener(ResultEvent.RESULT,resultHandler); 
         
        txtLoader.send(); 
      } 
      private function resultHandler(evt:ResultEvent):void 
      { 
        myTxt.text=evt.target.lastResult;//这里为文本控件赋值 
      } 
    ]]> 
  </mx:Script> 
  <mx:VBox> 
    <mx:Text id="myTxt"/> 
  </mx:VBox> 
</mx:Application>
 
结果同上。
 
3.使用URLLoader类加载数据
 
<?xml version="1.0" encoding="utf-8"?> 
<!--使用URLLoader类从文本文件加载文本数据到Flex中,无法通过MXML标签使用该类--> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="loadTxt(event)"> 

  <mx:Script> 
    <![CDATA[ 
      import mx.events.FlexEvent; 
        
      private var loader:URLLoader=new URLLoader(); 
      private function loadTxt(evt:FlexEvent):void 
      { 
        loader.addEventListener(Event.COMPLETE,handleData); 
        loader.load(new URLRequest("test1.txt")); 
      } 
        
      //数据加载完毕,为文本赋值 
      private function handleData(evt:Event):void 
      { 
        myTxt.text=evt.target.data;//URLLoader对象的data域 
      } 
    ]]> 
  </mx:Script> 
  <mx:VBox> 
    <mx:Text id="myTxt" fontSize="18"/> 
  </mx:VBox> 
</mx:Application>
 
结果同上。
 
4.加载url编码值对数据:
 
<?xml version="1.0" encoding="utf-8"?> 
<!--使用HTTPService标签,加载值对(url编码的)到Flex的标签和组合框控件--> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="svc.send();"> 
  <mx:Style> 
    Application{fontSize:14px;} 
  </mx:Style> 
  <mx:HTTPService id="svc" url="test2.txt" resultFormat="flashvars"/> 
  <mx:HBox> 
    <mx:Label text="{svc.lastResult.lbl}"/> 
    <mx:ComboBox dataProvider="{svc.lastResult.jobs.split(',')}" /> 
  </mx:HBox> 
</mx:Application>
 
test2.txt:
 
lbl=职位&jobs=网页设计师,软件工程师,项目经理
 
结果:
 
 
5.使用HTTPService类加载值对:
 
<?xml version="1.0" encoding="utf-8"?> 
<!--使用HTTPService类,加载URL编码数据--> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="loadVal(event);"> 
  <mx:Style> 
    Application{fontSize:12px;color:#ff0000;} 
  </mx:Style> 
  <mx:Script> 
    <![CDATA[ 
      import mx.rpc.events.ResultEvent; 
      import mx.events.FlexEvent; 
      import mx.rpc.http.HTTPService; 
      private var svc:HTTPService=new HTTPService(); 
      private function loadVal(evt:FlexEvent):void 
      { 
        svc.url="test2.txt"; 
        svc.resultFormat="flashvars";//结果格式-值对 
        svc.addEventListener(ResultEvent.RESULT,handleResult); 
        svc.send(); 
      } 
      private function handleResult(evt:ResultEvent):void 
      { 
        lbl.text=svc.lastResult.lbl; 
        combox.dataProvider=svc.lastResult.jobs.split(","); 
      } 
    ]]> 
  </mx:Script> 
  <mx:HBox> 
    <mx:Label id="lbl"/> 
    <mx:ComboBox id="combox"/> 
  </mx:HBox> 
</mx:Application> 
 
结果:
 
 
 
6.使用URLLoader类加载值对数据:
 
<?xml version="1.0" encoding="utf-8"?> 
<!--使用URLLoader类,加载URL编码数据--> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="loadVal(event);"> 
  <mx:Style> 
    Application{font-size:14px;color:green;} 
  </mx:Style> 
  <mx:Script> 
    <![CDATA[ 
      import mx.events.FlexEvent; 
      import flash.net.URLLoader; 
        
      private var loader:URLLoader=new URLLoader(); 
      private function loadVal(evt:FlexEvent):void 
      { 
        loader.addEventListener(Event.COMPLETE,handleComplete); 
        loader.load(new URLRequest("test2.txt")); 
      } 
      private function handleComplete(evt:Event):void 
      { 
        var value:URLVariables=new URLVariables(evt.target.data); 
        lbl.text=value.lbl; 
        combox.dataProvider=value.jobs.split(","); 
      } 
    ]]> 
  </mx:Script> 
  <mx:HBox> 
    <mx:Label id="lbl"/> 
    <mx:ComboBox id="combox"/> 
  </mx:HBox> 
</mx:Application> 
 
结果:


本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/102134 ,如需转载请自行联系原作者

相关文章
|
2月前
|
移动开发 小程序 JavaScript
【小程序质量提优解决方案】(二)内嵌H5加载异常(404)
【小程序质量提优解决方案】(二)内嵌H5加载异常(404)
34 0
|
前端开发
4、引入css方法(内嵌、嵌入、外部)
4、引入css方法(内嵌、嵌入、外部)
82 0
|
缓存 JavaScript 开发者
动态组件与 v-once 指令
《Vue学习笔记》
88 0
Qml实用技巧:将样式style从对象中独立出来,可使多个按钮加载同一个样式
Qml实用技巧:将样式style从对象中独立出来,可使多个按钮加载同一个样式
Qml实用技巧:将样式style从对象中独立出来,可使多个按钮加载同一个样式
|
前端开发 JavaScript 容器
探秘 flex 上下文中神奇的自动 margin
探秘 flex 上下文中神奇的自动 margin
160 0
探秘 flex 上下文中神奇的自动 margin
|
前端开发 Web App开发 JavaScript