Flash ActionScript2.0:在哪里可以放置类实例,以便从其他类访问它?

Flash ActionScript2.0:在哪里可以放置类实例,以便从其他类访问它?,flash,actionscript-2,Flash,Actionscript 2,我目前有三个类:Main、Externals和Page Main类创建一个Externals类的实例,该实例加载XML,加载XML后,该Externals实例还创建一个Page类的实例,该实例随后将使用Externals类中的信息填充自身 我最初希望Externals是一个静态类,然后我发现ActionScript2.0中没有静态类,只有静态方法 然后,我将所有Externals方法声明为静态方法,但发现当我尝试访问它们时,构造函数没有运行,XML也没有加载和解析。我曾想过每次都要重写加载和解析

我目前有三个类:Main、Externals和Page

Main类创建一个Externals类的实例,该实例加载XML,加载XML后,该Externals实例还创建一个Page类的实例,该实例随后将使用Externals类中的信息填充自身

我最初希望Externals是一个静态类,然后我发现ActionScript2.0中没有静态类,只有静态方法

然后,我将所有Externals方法声明为静态方法,但发现当我尝试访问它们时,构造函数没有运行,XML也没有加载和解析。我曾想过每次都要重写加载和解析XML的方法,但我意识到A:那真的会浪费网络资源;B:由于网络比处理器慢,我会遇到时间问题,因为代码会试图访问尚未加载的数据

因此,我决定将所有内容还原为实例方法,并在主类中创建一个实例,该实例将运行其构造函数,使用XML加载自身,将所有内容解析为整洁的getter,然后创建Page实例,该实例将创建将使用XML数据的页面

但我(现在仍然)面临一个难题:我只能从Externals类内部创建Page类的实例,因为它只能在XML数据已经加载之后启动,但除了主类之外,我无法从任何地方访问收集到Externals实例中的数据。对于我来说,在我的页面实例中获得它的唯一方法是创建一个新实例,但这是一个非常糟糕的主意,原因有两个:1:上面提到的时间问题;Externals类在加载完XML后会创建一个新页面,因此它会创建一个新的页面实例,这会创建一个新的Externals实例,这会创建一个新的页面实例,依此类推

我尝试将Externals实例放置在电影的根目录上,如下所示:

_root.externals:Externals = new Externals();
但我也无法在那里访问它


现在我有点不知所措了。我真的不明白这是怎么做到的,但我知道一定有办法。有人知道我做错了什么吗?

我想你可以试试单例设计模式:

我猜Externals类是单例的?您可以将一个Externals对象的引用传递给所有其他对象

或者另一种方法(虽然我并不总是推荐它,但似乎您倾向于这样做)是在根级别像普通一样创建对象,然后在其他对象中访问它,方法是:_root.externalsObject