AIRでモバイルアプリケーションを作成していますが、同じ問題が発生することがよくあります。実行の順序は何ですか。UIクラスの初期化、作成などの順序を決定できることを私は知っています。また、トレースステートメントをすべてのクラスのコンストラクターに入れて、そのようにすることもできます。しかし、それは退屈です。
ロード時に各クラスがそれ自体を「アナウンス」する一般的なコードはありますか?誰かがこのようなことを書いたことがありますか?
擬似コードは次のようになります。
for each var class:Class in application
{
trace(class.getQualifiedClassName.toString();
}
ありがとう。
編集:
これが例です。MyApp.mxmlを実行し、それにトレースステートメントを配置します。最初のビューは、xmlを介してサーバーから取得された配列によって入力されたリストです。ただし、アプリが読み込まれると、リストは空白になります。なんで?手動で挿入したトレースステートメントに基づいて、イベントの順序は次のとおりです。
MyApp::viewnavigatorapplication1_intitializeHandler firing
Model::initialize function firing
XMLLoader::going to http://mysite.com/myxml.xml
MyApp::addedToStageHandler running
HomeListView::viewActivateHandler firing
XMLLoader::xmlLoaded
リストが空白である理由は、HomeListViewがアクティブ化された後にxmlがロードされるためです。したがって、クラスごとにクラスに書き込むことなく、このすべての情報を取得する方法があると便利です。また、すべてのクラスが表示リストに含まれているわけではないことに注意してください(ModelやXMLLoaderなど)。