【问题标题】:How to create a DataProvider using specific elements from an XML object in Flash AS3如何在 Flash AS3 中使用 XML 对象中的特定元素创建 DataProvider
【发布时间】:2010-09-30 22:25:12
【问题描述】:

我有这个 XML (Flash/AS3):

 <channel>
 <title>...</title>
 <description>...</description>
 <item><summary>...</summary><detail>...</detail></item>
 <item><summary>...</summary><detail>...</detail></item>
 ...
 </channel>

我想创建一个包含元素的 DataProvider(用于数据网格)。

我认为这会起作用:

var items:XML = new XML(evt.target.data); //url loader event listener 'complete'
trace(items..item is XMLList); // true
myDP = new DataProvider(items..item);

但我收到此错误:

 TypeError: Error: Type Coercion failed: cannot convert 
   <item><summary>...</summary><detail>...</detail></item>
   <item><summary>...</summary><detail>...</detail></item>
     ...
 to Array or DataProvider.
    at fl.data::DataProvider/getDataFromObject()
    at fl.data::DataProvider()

我做错了什么?

【问题讨论】:

    标签: xml flash actionscript-3 dataprovider


    【解决方案1】:

    你必须给 DataProvider 一个 XML,而不是一个 XMLList:

    var items:XML = <channel>
       <title>Title</title>
       <description>Description</description>
       <item><summary>Summary 1</summary><detail>Detail 1</detail></item>
       <item><summary>Summary 2</summary><detail>Detail 2</detail></item>
    </channel>;
    
    var xml:XML = <dummy/>;
    xml.appendChild(items..item);
    list.dataProvider = new DataProvider(xml);
    list.labelFunction = function(item:Object) {
       return item.summary;
    }
    

    【讨论】:

      【解决方案2】:

      您不需要创建 DataProvider 的实例。您应该能够直接将 dataProvider 属性分配给 XML 实例。 dataProvider setter 将自动确定对象类型并进行适当处理。

      【讨论】:

      • 所以我尝试了这个:myData.dataProvider = items..item; (myData 是一个数据网格)并且我收到:TypeError: Error #1034: Type Coercion failed: cannot convert XMLList@af7f2b1 to fl.data.DataProvider.
      • 请阅读:help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/… 你在使用 mx.controls.DataGrid 吗?
      猜你喜欢
      • 1970-01-01
      • 2014-05-22
      • 1970-01-01
      • 1970-01-01
      • 2011-01-29
      • 2012-05-19
      • 2023-03-31
      • 2015-08-14
      • 2013-05-01
      相关资源
      最近更新 更多