我将应用程序从flex 3迁移到flex 4时收到此警告:
组件:MyApp是直接引用的模块或应用程序。这将导致组件:MyApp及其所有依赖项与模块链接:searchModule。建议使用接口来避免这种情况。未知的Flex问题
MyApp是一个扩展Application组件的类,在名为“searchModule”的模块中有这一行:
var parentApp:myApp = parentApplication as MyApp;
然后我使用变量myApp来调用MyApp类中定义的方法。此警告被报告10次,因为我在其他模块中也这样做。
我想修复它,但我不理解“这将导致其依赖关系与模块链接”的部分,我将如何创建一个接口来避免这种情况?为什么在flex 3中没有关于它的警告?
提前致谢
答案 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时,我遇到了这个错误。 在引用的组件中将应用程序更改为组,并且警告不再存在。
错误的原因是,因为我在单独的项目中作为应用程序处理组件,后来将其复制到主项目,但我没有将其更改为组件。