0

こんにちは、フレックス3からフレックス4に移行しています。警告が1つあり、修正しようとしましたが、何も機能しません。

警告は次のとおりです。データバインディングはトップレベルアプリケーションへの割り当てを検出できません

flex 3ではapplication.Applicationがあり、現在はFlexGlobals.topLevelApplicationがあります。

1400個のFlexGlobals.topLevelApplicationファイルと±150個の.ASファイルがあります。

Application(FlexGlobals.topLevelApplication)、mainAPP(FlexGlobals.topLevelApplication)を使用しようとしましたが、何も機能しません。警告をクリーンアップするのは、[Bindable] public var myApplication:Object=FlexGlobals.topLevelApplication;を追加した場合のみです。すべての.ASファイルにアクセスしますが、プロジェクトを実行してアプリケーションにログインしようとすると、アクションスクリプトエラーが発生します

エラー#1009:nullオブジェクト参照のプロパティまたはメソッドにアクセスできません。

4

1 に答える 1

0

あなたが正しい。アプリケーションにアクセスするためのクリーンな方法は、FlexGlobals.topLevelApplicationを使用することです。

[Bindable]
public var app:mainApp = mainApp(FlexGlobals.topLevelApplication); // fail fast to find erros

うまくいくはずですが、そうでない場合は、そのインスタンスにアクセスするのが早すぎるようです。FlexEvent.CREATION_COMPLETEがディスパッチされた後、アプリケーションをブートストラップする(そしてそこから先に進む)必要があります。また、クラスに次のようなフィールドを導入する場合は、

private const app:mainApp = mainApp(FlexGlobals.topLevelApplication); // fail fast to find errors

protected final get app():mainApp { return app; }

アプリケーションでフィールドにクリーンにアクセスし、アプリケーションへの過度の依存関係を回避します。

PS:接尾辞.mxmlが大文字で始まる必要がある場合でも、クラス名。

于 2012-12-26T16:03:59.760 に答える