現在、Main、Externals、Pageの3つのクラスがあります。
Mainクラスは、XMLをロードするExternalsクラスのインスタンスを作成し、XMLがロードされると、そのExternalsインスタンスはPageクラスのインスタンスも作成します。このインスタンスは、Externalsクラスからの情報を使用して自身にデータを入力します。
もともとExternalsを静的クラスにしたかったのですが、Actionscript 2.0には静的クラスはなく、静的メソッドだけであることがわかりました。
次に、すべてのExternalsメソッドを静的として宣言しましたが、それらにアクセスしようとすると、コンストラクターが実行されず、XMLがロードおよび解析されなかったことがわかりました。毎回XMLをロードして解析するメソッドを書き直すことを考えましたが、次のことに気づきました。B:ネットワークはプロセッサよりも遅いため、コードがまだロードされていないデータにアクセスしようとするため、タイミングの問題が発生します。
そこで、すべてをインスタンスメソッドに戻し、コンストラクターを実行するMainクラスにインスタンスを作成し、XMLをロードして、すべてを適切なゲッターに解析してから、Pageのインスタンスを作成してページを作成することにしました。 XMLデータを消費します。
しかし、私には難問が残っていました。XMLデータが既にロードされた後にのみ開始できるため、Externalsクラス内からのみPageクラスのインスタンスを作成できますが、にアクセスすることはできません。 Mainクラス以外の場所からExternalsのインスタンスに収集したデータ。Pageのインスタンスでそれを取得する唯一の方法は、新しいインスタンスを作成することですが、これは2つの理由から非常に悪い考えです。1:上記のタイミングの問題。2:Externalsクラスは、XMLのロードが完了すると新しいページを作成するため、新しいPageインスタンスを作成し、新しいExternalsインスタンスを作成し、新しいPageインスタンスを作成します。
次のように、Externalsのインスタンスをムービーのルートに配置してみました。
_root.externals:Externals = new Externals();
でもそこにもアクセスできませんでした。
今、私は少し困惑しています。私はこれがどのように行われるのか本当に理解していませんが、方法がなければならないことを知っています。私がここで間違っていることを誰かが見ていますか?