我正在尝试在另一个窗口应用程序中加载窗口子应用程序,要求是将一个加载的应用程序替换为另一个用户操作。
我在主窗口应用程序中尝试了unloadAndStop
()的记录方法swfLoader
,但是在内存分析过程中,我可以看到这些应用程序的实例即使在显式运行垃圾收集之后仍保留在内存中。
如果我将这些窗口应用程序作为模块,然后尝试使用 Moduleloader 加载它们,事情会顺利运行,并且卸载的模块会从内存中删除。
以前有人遇到过同样的问题吗?
我正在尝试在另一个窗口应用程序中加载窗口子应用程序,要求是将一个加载的应用程序替换为另一个用户操作。
我在主窗口应用程序中尝试了unloadAndStop
()的记录方法swfLoader
,但是在内存分析过程中,我可以看到这些应用程序的实例即使在显式运行垃圾收集之后仍保留在内存中。
如果我将这些窗口应用程序作为模块,然后尝试使用 Moduleloader 加载它们,事情会顺利运行,并且卸载的模块会从内存中删除。
以前有人遇到过同样的问题吗?
首先,您应该在应用程序中加载应用程序。各种疯狂的事情都可能发生。我以前也遇到过你的情况。我所做的是为任何应用程序或模块任务分离出我的实际 UI/产品。例如:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<local:YourMainUI width="100%" height="100%" />
</s:Application>
或者
<?xml version="1.0" encoding="utf-8"?>
<s:Module xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<local:YourMainUI width="100%" height="100%" />
</s:Module>
你明白我要去哪里了吗?现在,您的产品有了一个可重用的“主要”组件,可以在任何情况下使用,甚至是WindowedApplication
一个 :)