我目前有三个类,Main、Externals 和 Page。
Main 类创建 Externals 类的实例,该实例加载 XML,并且一旦加载 XML,Externals 实例还创建 Page 类的实例,然后将使用 Externals 类中的信息来填充自身。
本来想让Externals是一个静态类,后来发现Actionscript 2.0没有静态类,只有静态方法。
然后我将我所有的 Externals 方法声明为静态,但发现当我尝试访问它们时,构造函数没有运行,并且 XML 没有加载和解析。每次都想重写加载和解析 XML 的方法,但意识到 A:那真的很浪费网络资源;B:由于网络比处理器慢,我会遇到时间问题,因为代码会尝试访问尚未加载的数据。
因此,我决定将所有内容都还原为实例方法,并在 Main 类中创建一个实例,该实例将运行其构造函数,使用 XML 加载自身,将所有内容解析为整洁的 getter,然后才创建一个 Page 实例,该实例创建页面这将消耗 XML 数据。
但是我(现在仍然)遇到了一个难题:我只能从 Externals 类中创建 Page 类的实例,因为它只能在 XML 数据已经加载后启动,但我无法访问我从 Main 类以外的任何地方收集到我的 Externals 实例中的数据。我在我的 Page 实例中获得它的唯一方法是创建一个新实例,但这是一个非常糟糕的主意,原因有两个: 1:上述时间问题;和 2:Externals 类在完成加载 XML 时创建一个新 Page,因此它最终会创建一个新的 Page 实例,这会创建一个新的 Externals 实例,这会创建一个新的 Page 实例,依此类推。
我尝试将 Externals 的实例放在电影的根目录上,如下所示:
_root.externals:Externals = new Externals();
但我也无法在那里访问它。
现在我有点难过。我真的不明白如何做到这一点,但我知道必须有办法。有人看到我在这里做错了吗?