Flex远程访问获取数据--HTTPService

编写service类:

package services {
    import com.adobe.serialization.json.JSON;
    
    import log.LogUtil;
    
    import mx.collections.ArrayCollection;
    import mx.collections.XMLListCollection;
    import mx.controls.Alert;
    import mx.rpc.events.ResultEvent;
    import mx.rpc.http.mxml.HTTPService;
    
    
    public class CategoryService extends HTTPService {
        [Bindable]
        public var categoryArray:ArrayCollection;
        public var testFlag:Boolean = true;
        
        public function CategoryService(rootURL:String=null, destination:String=null) {
            super(rootURL, destination);
            this.url = "http://192.168.1.210:8081/xxx.action";
//url为远程请求接口
            addEventListener(ResultEvent.RESULT, handleCategoryResult);
            
        }
        
        private function handleCategoryResult(event:ResultEvent):void{
            var rawData:String =  String(event.result);
            trace(rawData);
            LogUtil.debug("CategoryService",rawData);
            var o:Object = com.adobe.serialization.json.JSON.decode(rawData);//对结果进行json转换  
            categoryArray = new ArrayCollection(o.result);
        }    
        
                
        
    }
}

结果集接收之后进行json格式转换,需要导入as3corelib.swc
在XML中引入:

  

<fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->
        <services:CategoryService id="categoryService"/>
    </fx:Declarations>

在方法中调用:

<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
             xmlns:s="library://ns.adobe.com/flex/spark" 
             xmlns:mx="library://ns.adobe.com/flex/mx" width="342" height="60" xmlns:services="services.*" initialize="group1_initializeHandler(event)">
    <fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->
        <services:CategoryService id="categoryService"/>
    </fx:Declarations>
    
    <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            import mx.events.FlexEvent;
            
            import spark.events.IndexChangeEvent;
            
                        
              
            protected function group1_initializeHandler(event:FlexEvent):void
            {
                if(categoryService.testFlag){
                    categoryService.localTest();
                }else{
                    categoryService.send();
                }
                
                
            }
            
        ]]>
    </fx:Script>
    
       <s:DropDownList id="categoryList" x="92" y="29" width="174"
                dataProvider="{categoryService.categoryArray}"
                labelField="name"
                prompt="请选择"
                change="updateSelection(event);"
                />
    

    
</s:Group>

 

转载于:https://www.cnblogs.com/sagech/p/5630986.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值