XML解析:Flex从配置文件中读取数据的几种方式总结:
??? <一>、使用model:<fx:Model id="model" source="D:/shuju/s.xml"/>
???????? 取值时通过id-〉model.属性名,即可取到数据。自认为这种方式下,XML的层次结构只有一层。如下:
???? <config>
??????? <username>shiyanlong</username>
??????? <password>123</password>
??????? <email>284567562@qq.com</email>
??? </config>
?? <二>、使用HttpService。
?????? ?<mx:HTTPService
???id="service"
???url="D:/shuju/s1.xml" >
??</mx:HTTPService>
???????? 通过数据绑定:dataProvider="{service.lastResult.config.node}",此时取到的值是node节点下的数据。
??????????? 注意:<node> <name>zhangsan</name> </node>和<node name="zhangsan"/>是一种模式。
?? <三>、类似于model方式:<mx:XML id="dp" source="countries_states.xml"/>
?? <四>、使用URLLoader,目前还未使用用到。
可以将返回的数值先封装在一个数组中:
?[Bindable]
?private var lsw:ArrayCollection = new ArrayCollection();
???
?function service_resultHandler(event:ResultEvent):void
? {
??// TODO Auto-generated method stub
??lsw = event.result.contries.contry;
?}然后直接调用lsw。
XML查询:使用"."操作符查询节点,使用"[]"访问指定索引的节点:如:.node会查到整个node:<node> <name>zhangsan</name> </node>和<node name="zhangsan"/>
??????? []会查询到第几个node节点,使用".."操作符访问所有以该标签命名的节点,使用"@"操作符访问节点属性。
Flex向java后台传输数据方式:
?????
??方式一:通过<s:request/>标签进行交互,在该标签内部以要传递的参数名作为该标签内的子标签,值作为内容进行传递,服务端接受数据采用request.getParmeter("参数名")获取数据.
代码块:
???
?????? <!--定义HttpService发送请求-->?
?????? <s:HTTPService id="service"??
?????????????????????? url=""??
?????????????????????? useProxy="false"??
?????????????????????? fault="service_faultHandler(event)"??
?????????????????????? result="service_resultHandler(event)">?
??????????? <!--第一种传值方式-->?
?????????? <s:request >?
????????????? <!--参数名称作标签,中间填充参数值-->?
??????????????? <username>{txtusername.text}</username>?
?????????????? <password>{txtpassword.text}</password>?
??????????? </s:request>??
??????? </s:HTTPService>??????
?????
? 方式二:第二种传值方式通过send()方法传值send方法中传递参数 ,服务端接受数据采用request.getParmeter("参数名")获取数据.
?????
?????????????? //定义一object对象??
?????????????? var val:Object=new Object();?
?????????????? //分别将文本框username,password的值传递到后台??
?????????????? //object对象.参数名=值?? 传值操作??
?????????????? val.username=txtusername.text;?
?????????????? val.password=txtpassword.text;?
?????????????? service.send(val);?
???
?? java后台提取数据:
???????? //获取flex传递的参数 username password??
???????? String username=request.getParameter("username");?
???????? //get方式处理乱码??
???????? //username=new String(username.getBytes("ISO-8859-1"),"utf-8");??
???????? String password=request.getParameter("password");?
???????? //password=new String(password.getBytes("ISO-8859-1"),"utf-8");?
??
flash.system.System.useCodePage=true;//处理中文乱码