0
public class TMyClass 
{
   public var value : Number;
   public var scale : Number;
   public function TMyClass()
   {
   }

}

[Bindable]
public var myVector : Vector.<TMyClass> = new Vector.<TMyClass>();

yField="value" // the line series property
xFiled="scale"

我正在尝试将myVector设置为 Chart 对象中 LineSeries 的数据提供者。构建时一切都没有问题,但是当我执行它时 - 出现属性“值”不存在的错误。如果我将 dataprovider 切换到 ArrayCollection - 一切都很好。

  • Vector 可以用作图表系列对象的数据提供者吗?
4

1 回答 1

0

不,您不能将该Vector类用作数据提供者。即使dataProviderproperty 的类型为Object,它也对该对象应该是什么有一些期望。

a (并假设其他图表系列对象)的dataProvider属性的setter 方法在类中定义。如果您查看该 setter 方法,它最终会进入一系列语句,在其中检查您传入的类型。它检查是否是以下类型之一:LineSeriesChartElementifdataProviderdataProvider

  • Array
  • ArrayCollection
  • XMLList
  • XMLListCollection
  • ListCollectionView
  • 或任何实现IListICollectionView接口的东西

如果你想使用 a Vector,你可以将你的Vectorin 类包装成实现IListor ICollectionView

人们已经编写了包装 Vector 并实现IList接口的类,包括我自己。这允许您将Vector's 与通常具有dataProvider属性的任何 Flex 组件一起使用。

我的实现的一个设计目标是避免其他人的实现正在做的所有强制转换(尽管从来没有做任何性能测试)。

于 2012-12-19T01:33:40.603 回答