//********************** 定義url及參數為變數,動態傳值。。。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml"
initialize="myHTTPData.send();trace('calling service');">
<mx:Script>
<![CDATA[
var myURL:String="http://www.bpurcell.org/blog/rss.cfm";
var mode:String="short";
var mode2:String="cat";
var catid="14";
]]>
</mx:Script>
<!-- If you set resultFormat to Object it turns the returning data into an object -->
<mx:HTTPService url="{myURL}" id="myHTTPData" method="GET" resultFormat="object">
<mx:request>
<mode>{mode}</mode>
<mode2>{mode2}</mode2>
<catid>{catid}</catid>
</mx:request>
</mx:HTTPService>
<mx:TextArea text="{myHTTPData.result.RDF.channel.title}" width="250" />
<mx:TextArea text="{myHTTPData.result.RDF.item[0].description}"
width="250" height="200" />
<mx:TextArea text="{myHTTPData.result}" width="250" height="500" />
</mx:Application>
方法二:使用XMLLIST輸出完整XML資料 輸出資料屬性為XML <?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo"
width="1024" height="768" backgroundColor="#020202" creationComplete="menus.send()">
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
[Bindable]
private var roomsXml:XML;
[Bindable]
private var menuInfo:XMLList;
protected function httpservice1_resultHandler(event:ResultEvent):void
{
roomsXml=new XML(event.result);
menuInfo=roomsXml.node;
trace(menuInfo);
/////輸出資料為:
<node name="客廳空間" url="space1.xml"/>
<node name="廚房空間" url="space1.xml"/>
<node name="臥室空間" url="space1.xml"/>
<node name="餐廳空間" url="space1.xml"/>
<node name="浴室空間" url="space1.xml"/>
<node name="兒童房" url="space1.xml"/>
<node name="其他空間" url="space1.xml"/>
trace(menuInfo[0].@name);
/////輸出資料為:客廳空間
}
]]>
</fx:Script>
<fx:Declarations>
<mx:HTTPService id="menus" resultFormat="xml" url="dataAsset/rooms.xml" result="httpservice1_resultHandler(event)"/> ////重點:要輸出XML資料類型一定要設定resultFormat="xml"
</fx:Declarations>
</s:Application> HTTPService處理XML檔案ConnAsp.mxml
代碼:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="productsRequest.send()">
<mx:HTTPService id="productsRequest" url="http://localhost/FlexAsp_1.asp" />
<mx:DataGrid x="20" y="80" id="productGrid" width="400" dataProvider="{productsRequest.lastResult.guestbook.guests}" >
<mx:columns>
<mx:DataGridColumn headerText="Name" dataField="Name" />
<mx:DataGridColumn headerText="Message" dataField="Message" />
</mx:columns>
</mx:DataGrid>
</mx:Application>
Asp產生Xml的方法
FlexAsp_1.asp
<%
response.ContentType = "text/xml"
response.Charset="utf-8"
set conn=Server.CreateObject("ADODB.Connection")
conn.provider="Microsoft.Jet.OLEDB.4.0;"
conn.open server.mappath("./flash_asp/Database.mdb")
sql="select Name,Message from guestbook"
set rs=Conn.Execute(sql)
rs.MoveFirst()
response.write("<?xml version='1.0' encoding='utf-8'?>")
response.write("<guestbook>")
while (not rs.EOF)
response.write("<guest>")
response.write("<Name>" & rs("Name") & "</Name>")
response.write("<Message>" & rs("Message") & "</Message>")
response.write("</guest>")
rs.MoveNext()
wend
rs.close()
conn.close()
response.write("</guestbook>")
%>
access資料庫
資料庫名稱 database.mdb
表名稱:guestbook
欄位:ID,Name,Messagexml單獨顯示正常,Flex裡的DataGrid不顯示資料,why答:dataProvider="{productsRequest.lastResult.guestbook.guest}"