下面是个加载数据的例子,其实就是返回类型是XML,然后把它显示出来:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.HTTPService;
// internal function onClick():void
// {
// var service:HTTPService = new HTTPService();
// service.url = "http://localhost:8080/TestFlex/book.xml";
// service.useProxy = false;
// service.resultFormat="e4x";
// service.addEventListener(ResultEvent.RESULT,onResultHandler);
// service.send();
// }
internal function onResultHandler(event:ResultEvent):void
{
var xml:XML = event.result as XML;
trace(xml);
bookGrid.dataProvider = xml.Book;
}
]]>
</mx:Script>
<mx:HTTPService id="hs" useProxy="false" resultFormat="e4x" result="onResultHandler(event);" url="http://localhost:8080/TestFlex/book.xml"/>
<mx:Panel x="49.5" y="94" width="419" height="267" layout="absolute" fontSize="12" title="使用HTTPService加载XML数据">
<mx:DataGrid x="10" y="10" width="377" id="bookGrid">
<mx:columns>
<mx:DataGridColumn headerText="编号" dataField="Id"/>
<mx:DataGridColumn headerText="书名" dataField="Name"/>
<mx:DataGridColumn headerText="作者" dataField="Author"/>
<mx:DataGridColumn headerText="价格" dataField="Price"/>
</mx:columns>
</mx:DataGrid>
<mx:ControlBar height="42">
<mx:Button label="加载数据" fontWeight="normal" click="hs.send()"/>
</mx:ControlBar>
</mx:Panel>
</mx:Application>
这个例子中的onclick函数没用到,这里只是展示怎么硬编码HTTPService,注意返回方法里的写法,还有resultFormat="e4x",加载
数据还有一种方法就是利用URLRequest和URLLoader:
<mx:Script>
<![CDATA[
internal function onClick():void
{
var request:URLRequest = new URLRequest("http://localhost:1146/Data/Book.xml");
var loader:URLLoader = new URLLoader();
loader.load(request);
loader.addEventListener(Event.COMPLETE,onCompleteHandler);
}
private function onCompleteHandler(evt:Event):void
{
var xml:XML = new XML(evt.target.data);
bookGrid.dataProvider = xml.Book;
}
]]>
</mx:Script>