将Flex 3从Flex 3迁移到Flex 4时发出警告

时间:2010-08-01 15:33:05

标签: flex

我将应用程序从flex 3迁移到flex 4时收到此警告:

组件:MyApp是直接引用的模块或应用程序。这将导致组件:MyApp及其所有依赖项与模块链接:searchModule。建议使用接口来避免这种情况。未知的Flex问题

MyApp是一个扩展Application组件的类,在名为“searchModule”的模块中有这一行:

var parentApp:myApp = parentApplication as MyApp;

然后我使用变量myApp来调用MyApp类中定义的方法。

此警告被报告10次,因为我在其他模块中也这样做。

我想修复它,但我不理解“这将导致其依赖关系与模块链接”的部分,我将如何创建一个接口来避免这种情况?为什么在flex 3中没有关于它的警告?

提前致谢

2 个答案:

答案 0 :(得分:2)

我猜了一下,但是......

Flex Framework是Flex播放器可以缓存的特殊Adobe专用库之一。因此,对于某些编译设置,编译器中的SWF不包含Flex库。在lex 4中,框架未编译到您的应用程序SWf中,从而导致应用程序文件大小明显减小。

如果您扩展Application类,听起来就像您所做的那样,编译器不能依赖于缓存的Flex Framework中的新“Application”,因此必须将您的新类编译,然后将Application标记编译到SWF中。这将是菊花链显着;因为Application标签做了很多Flex Framework设置。

我认为这就是警告在依赖性方面意味着什么。

您是否真的使用其他功能扩展了应用程序?或者“MyApp.mxml”只是主应用程序文件的名称?

你可以试试这个:

var parentApp:Application = parentApplication as Application;

我相信Flex 4中引入了FlexGlobals类,它还可以让您访问顶级应用程序。

在使用界面方面。接口旨在帮助删除特定的依赖项。您可以为新Application类的新功能创建一个接口,并引用它。

var parentApp:myApp = parentApplication as IMyApp

基于我所看到的可能解决问题的消息的插入。

答案 1 :(得分:0)

例如,当我将Component MXML用于组件MXML时,我遇到了这个错误。 在引用的组件中将应用程序更改为组,并且警告不再存在。

错误的原因是,因为我在单独的项目中作为应用程序处理组件,后来将其复制到主项目,但我没有将其更改为组件。