Flex中利用mx:HTTPService标签在run-time时导入XML文件的例子
By Minidxer | April 25, 2008
利用mx:HTTPService导入XML文件的处理方法,在前面的Flex中利用HTTPService标签动态导入XML文件的例子中其实我们已经用到过了。只不过前面是利用XML来分别读取相册内容,这里我们再看看针对单独的一般的文本XML的导入。
让我们先来看一下Demo(可以右键View Source或点击这里察看源代码):
直接看这里吧:
下面是完整代码(或点击这里察看):
Download: main.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="top" backgroundColor="white" creationComplete="tempXML.send();">
- <mx:HTTPService id="tempXML" url="xml/cuePoints.xml" resultFormat="e4x" />
- <mx:XMLListCollection id="cuePointXMLList" source="{tempXML.lastResult.CuePoint}" />
- <mx:XMLListCollection id="parametersXMLList" source="{dataGrid.selectedItem.Parameters.Parameter}" />
- <mx:Script>
- <![CDATA[
- private function parametersLabelFunction(item:Object, column:DataGridColumn):String {
- return item.Parameters.Parameter.length();
- }
- private function numericSortCompareFunction(objA:Object, objB:Object):int {
- var itemA:Number = parseInt(objA.Time.text()) as Number;
- var itemB:Number = parseInt(objB.Time.text()) as Number;
- if (itemA > itemB) {
- return 1;
- } else if (itemA < itemB) {
- return -1;
- } else {
- return 0;
- }
- }
- ]]>
- </mx:Script>
- <mx:VBox>
- <mx:DataGrid id="dataGrid" dataProvider="{cuePointXMLList}" width="100%" rowCount="{cuePointXMLList.length + 1}">
- <mx:columns>
- <mx:DataGridColumn id="timeCol" dataField="Time" headerText="Time (ms):" sortCompareFunction="numericSortCompareFunction" />
- <mx:DataGridColumn id="typeCol" dataField="Type" headerText="Type:" />
- <mx:DataGridColumn id="nameCol" dataField="Name" headerText="Name:" />
- <mx:DataGridColumn id="parametersCol" dataField="Parameters" headerText="Parameters:" labelFunction="parametersLabelFunction" />
- </mx:columns>
- </mx:DataGrid>
- <mx:DataGrid id="parametersDataGrid" dataProvider="{parametersXMLList}" width="100%" visible="{parametersXMLList.length > 0}" rowCount="{parametersXMLList.length + 1}">
- <mx:columns>
- <mx:DataGridColumn id="parameterNameCol" dataField="Name" headerText="Parameter Name:" />
- <mx:DataGridColumn id="parameterValueCol" dataField="Value" headerText="Parameter Value:" />
- </mx:columns>
- </mx:DataGrid>
- </mx:VBox>
- </mx:Application>
这里是cuePoints.xml文件:
Download: cuePoints.xml
- <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
- <FLVCoreCuePoints version="1">
- <CuePoint>
- <Time>0</Time>
- <Type>event</Type>
- <Name>slide1</Name>
- <Parameters>
- <Parameter>
- <Name>id</Name>
- <Value>value</Value>
- </Parameter>
- </Parameters>
- </CuePoint>
- <CuePoint>
- <Time>5000</Time>
- <Type>event</Type>
- <Name>slide2</Name>
- <Parameters>
- <Parameter>
- <Name>param1</Name>
- <Value>value1</Value>
- </Parameter>
- <Parameter>
- <Name>param2</Name>
- <Value>value2</Value>
- </Parameter>
- </Parameters>
- </CuePoint>
- <CuePoint>
- <Time>20000</Time>
- <Type>event</Type>
- <Name>slide3</Name>
- </CuePoint>
- </FLVCoreCuePoints>
代码:Peter deHaan 翻译:minidxer
Topics:
Flex |
No Comments » |
242 views
Tags: HTTPService, labelFunction, send, sortCompareFunction.Flex, XML