5.5.为Tree设置XML数据

5.5.1问题
用一个Tree 组件来表现由外部载入的XML 数据
5.5.2解决方法
以e4x 标准为HTTPService 对象设置类型并且加载指定XML 文件,设置请求结果为Tree的数据提供者,使用像labelField 这样的Tree 叶子结点,通过XML 语法来传递结点属性,确保Tree 将会显示正确的标签
5.5.3讨论
只要Tree 组件的labelField 属性显示正确的属性值,Tree 组件处理XML 数据就是正常的, 例如,label 属性一个label 调用的属性值:
+展开
-XML
<data label="2004">
<result label="Jan-04">
<product label="apple">81156</product>
<product label="orange">58883</product>
<product label="grape">49280</product>
</result>
<result label="Feb-04">
<product label="apple">81156</product>
<product label="orange">58883</product>
<product label="grape">49280</product>
</result>
</data>

以E4X 语法设置labelField 属性来显示你需要提供给标签用的指定属性值或属性:
+展开
-ActionScript
labelField="@label"

这个使用属性值调用标签的显示结果存在于每一个XML 结点,默认情况下,如果没有labelField 被提供,Tree 组件显示的结点值,这是一个完整的例子:
+展开
-XML
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxmlwidth="400height="300left="20top="10">
<mx:HTTPService id="xmlLoaderurl="assets/data.xmlresultFormat="e4xcontentType="application/xmlresult="xmlReturned(event)"/>
<mx:Script>
<![CDATA[
import mx.collections.XMLListCollection;
[Bindable]
private var xmlValue:XMLListCollection;
private function xmlReturned(event:Event):void {
xmlValue = new XMLListCollection( new XMLList(xmlLoader.lastResult));
}

]]>
</mx:Script>
<mx:Button click="xmlLoader.send()label="get XML"/>
<mx:Tree dataProvider="{xmlValue}y="100labelField="@labelwidth="300showRoot="true"/>
</mx:Canvas>

加支付宝好友偷能量挖...


评论(0)网络
阅读(95)喜欢(0)flash/flex/fcs/AIR