我目前正在使用最新版本的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
任何人都可以帮忙吗?感谢
答案 0 :(得分:2)
您是否创建了Model类的实例?
在您要访问它的类中,您应该执行以下操作:
var myModel : Model = new Model();
要在类之间共享模型实例,您将不得不做更多的工作。通过传递对同一对象的引用,或使用替代方法(如创建Singleton)。如果您需要一个示例,许多Flex框架(如Cairngorm或RobotLegs)都会使用Singletons。
答案 1 :(得分:0)
或者最简单的方法是使数组静态。
public static var ids:ArrayCollection = new ArrayCollection();
但是对于这种情况,Singleton方式更好。