0

您好,我正在将 flex 3 迁移到 flex 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:无法访问空对象引用的属性或方法。

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 回答