2

我有一个变量,我想使用 actionscript 和 flex 将这个变量放入 arraycollection 或数组中

以下是代码

var xyz:int=30;

var myArray:Array = [ {Month: "January", Views_Week1:xyz}, { Month: "June",        

    Views_Week2: 13 }, { Month:" December", Views_Week3: 14} ];

pageViews= new ArrayCollection(myArray);

或者

pageViews= new ArrayCollection(myArray);
[
    { Month: January, Views_Week1: xyz},
    { Month:June, Views_Week2: 13},
    { Month: december, Views_Week3: 14}])

4

2 回答 2

1
pageViews= new ArrayCollection(myArray);

看起来不错。然而,第二个没有意义,你在哪里初始化ArrayCollection然后尝试再次分配对象(这不会发生,因为有;语句结束标记)。

这对你不起作用吗?

于 2012-05-23T08:09:28.137 回答
1

那是行不通的。定义变量时,它基本上只存在于该范围内。您可以在类的范围内将其声明为 [Bindable],因此该类将使用 PropertyChangeEvent.PROPERTY_CHANGE 类型的 PropertyChangeEvent 传播更改。这将允许您使用带有 <{} /> 声明性绑定的 BindingUtils、ChangeWatcher 和 MXML 数据绑定。

您需要定义一个类,声明该类或字段 [Bindable],然后创建该类的实例并通过 ArrayCollection 引用这些实例。使用 vanilla 对象不会让你到达某个地方,因为它们不能调度事件。

    package
    {
      [Bindable]
      public class Person
      {
        public var name:String;

        public function Person(n:String)
        {
          name = n;
        }
      }
    }

    const source:Array = [new Person('Fred')]
        , collection:IList = new ArrayCollection(source);

数据绑定依赖于一些关键机制,如事件分派,这是需要牢记的。此外,以一种或另一种方式,对正在更改的数据的引用需要在需要更改通知的不同范围内。

于 2012-05-23T08:41:23.020 回答