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
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="top" backgroundColor="white" creationComplete="tempXML.send();">
  3.  
  4.     <mx:HTTPService id="tempXML" url="xml/cuePoints.xml" resultFormat="e4x" />
  5.     <mx:XMLListCollection id="cuePointXMLList" source="{tempXML.lastResult.CuePoint}" />
  6.     <mx:XMLListCollection id="parametersXMLList" source="{dataGrid.selectedItem.Parameters.Parameter}" />
  7.  
  8.     <mx:Script>
  9.         <![CDATA[
  10.             private function parametersLabelFunction(item:Object, column:DataGridColumn):String {
  11.                 return item.Parameters.Parameter.length();
  12.             }
  13.  
  14.             private function numericSortCompareFunction(objA:Object, objB:Object):int {
  15.                 var itemA:Number = parseInt(objA.Time.text()) as Number;
  16.                 var itemB:Number = parseInt(objB.Time.text()) as Number;
  17.  
  18.                 if (itemA > itemB) {
  19.                     return 1;
  20.                 } else if (itemA < itemB) {
  21.                     return -1;
  22.                 } else {
  23.                     return 0;
  24.                 }
  25.             }
  26.         ]]>
  27.     </mx:Script>
  28.  
  29.     <mx:VBox>
  30.  
  31.         <mx:DataGrid id="dataGrid" dataProvider="{cuePointXMLList}" width="100%" rowCount="{cuePointXMLList.length + 1}">
  32.             <mx:columns>
  33.                 <mx:DataGridColumn id="timeCol" dataField="Time" headerText="Time (ms):" sortCompareFunction="numericSortCompareFunction" />
  34.                 <mx:DataGridColumn id="typeCol" dataField="Type" headerText="Type:" />
  35.                 <mx:DataGridColumn id="nameCol" dataField="Name" headerText="Name:" />
  36.                 <mx:DataGridColumn id="parametersCol" dataField="Parameters" headerText="Parameters:" labelFunction="parametersLabelFunction" />
  37.             </mx:columns>
  38.         </mx:DataGrid>
  39.  
  40.         <mx:DataGrid id="parametersDataGrid" dataProvider="{parametersXMLList}" width="100%" visible="{parametersXMLList.length > 0}" rowCount="{parametersXMLList.length + 1}">
  41.             <mx:columns>
  42.                 <mx:DataGridColumn id="parameterNameCol" dataField="Name" headerText="Parameter Name:" />
  43.                 <mx:DataGridColumn id="parameterValueCol" dataField="Value" headerText="Parameter Value:" />
  44.             </mx:columns>
  45.         </mx:DataGrid>
  46.  
  47.     </mx:VBox>
  48.  
  49. </mx:Application>

这里是cuePoints.xml文件:

Download: cuePoints.xml
  1. <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
  2. <FLVCoreCuePoints version="1">
  3.  
  4.     <CuePoint>
  5.         <Time>0</Time>
  6.         <Type>event</Type>
  7.         <Name>slide1</Name>
  8.         <Parameters>
  9.             <Parameter>
  10.                 <Name>id</Name>
  11.                 <Value>value</Value>
  12.             </Parameter>
  13.         </Parameters>
  14.     </CuePoint>
  15.  
  16.     <CuePoint>
  17.         <Time>5000</Time>
  18.         <Type>event</Type>
  19.         <Name>slide2</Name>
  20.         <Parameters>
  21.             <Parameter>
  22.                 <Name>param1</Name>
  23.                 <Value>value1</Value>
  24.             </Parameter>
  25.             <Parameter>
  26.                 <Name>param2</Name>
  27.                 <Value>value2</Value>
  28.             </Parameter>
  29.         </Parameters>
  30.     </CuePoint>
  31.  
  32.     <CuePoint>
  33.         <Time>20000</Time>
  34.         <Type>event</Type>
  35.         <Name>slide3</Name>
  36.     </CuePoint>
  37.  
  38. </FLVCoreCuePoints>
代码:Peter deHaan 翻译:minidxer

Topics: Flex | No Comments » | 242 views Tags: , , , ,

Related Post

Leave a Comment

Name(*):

E-Mail(*) :

Website :

Comments :

Search Posts

赞助商链接

Archives