在Flash Builder Mobile应用程序中使用Global ArrayCollection?

时间:2011-08-27 18:12:24

标签: android flex flash-builder arraycollection

我目前正在使用最新版本的Flash Builder开发移动应用程序,我需要创建一个Global ArrayCollection来存储从本地数据库中提取的信息。我可以从数据库中恢复数据,但是当我尝试时,我似乎无法访问全局变量。我有一个名为“Model.as”的follng .as文件,该文件位于名为valueObjects的文件夹中,该文件包含以下代码:

package valueObjects
{
    import flash.data.SQLConnection;

    import mx.collections.ArrayCollection;

    public class Model
    {
        public var ids:ArrayCollection = new ArrayCollection();

        public function Model()
        {
        }
    }
}

现在我想开始用数据库中的信息填充这个ArrayCollection,所以我将类导入到Default Package mxml doc中,当应用程序启动时,它将首先加载:

import valueObjects.Model;

然后在私有函数中我尝试访问ids ArrayCollection并填充它但是我收到以下错误:

-1120: Access of undefined property ids.
-Access of undefined property ids

任何人都可以帮忙吗?感谢

2 个答案:

答案 0 :(得分:2)

您是否创建了Model类的实例?

在您要访问它的类中,您应该执行以下操作:

var myModel : Model = new Model();

要在类之间共享模型实例,您将不得不做更多的工作。通过传递对同一对象的引用,或使用替代方法(如创建Singleton)。如果您需要一个示例,许多Flex框架(如Cairngorm或RobotLegs)都会使用Singletons。

答案 1 :(得分:0)

或者最简单的方法是使数组静态。

public static var ids:ArrayCollection = new ArrayCollection();

但是对于这种情况,Singleton方式更好。