又一个flex bug汗了半天
Actual Results:
TypeError: Error #1034: Type Coercion failed: cannot convert mx.managers::HistoryManagerImpl@2403de71 to mx.managers.IHistoryManager.
at mx.managers::HistoryManager$/get impl()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\managers\HistoryManager.as:96]
at mx.managers::HistoryManager$/unregister()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\managers\HistoryManager.as:144]
at mx.containers::ViewStack/commitProperties()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\containers\ViewStack.as:651]
at mx.containers::TabNavigator/commitProperties()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\containers\TabNavigator.as:504]
at mx.core::UIComponent/validateProperties()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:5670]
at mx.managers::LayoutManager/validateProperties()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:519]
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:639]
at Function/http://adobe.com/AS3/2006/builtin::apply()
at mx.core::UIComponent/callLaterDispatcher2()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:8460]
at mx.core::UIComponent/callLaterDispatcher()[E:\dev\3.0.x\frameworks\projects\framework\src\mx\core\UIComponent.as:8403]
Adding the following code to your main app may resolve the problem. It did for me:
import mx.managers.HistoryManager;
private var hist:HistoryManager;
See:
https://bugs.adobe.com/jira/browse/SDK-13121
http://bugs.adobe.com/jira/browse/SDK-12218
I'm not sure that I agree that it's "Not a Bug" (see Resolution of SDK-12218). I would hardly classify the code given by Rodrigo as unusual or buggy. If the default behaviour of modules is to share managers with the main app (if I understand the problem correctly), then they should be able to clean up after themselves during the unload process gracefully.