0

今天我遇到了这个错误:

http://bugs.adobe.com/jira/browse/SDK-26147

我正在通过 SWFLoader 将另一个团队的应用程序加载到我自己的应用程序中。由于各种原因,我必须使用标志 loadForCompatibility 并将其设置为 true。我注意到加载的子应用程序中的所有 spark DropDownList 实例都错误地偏移了它们的下拉列表。由于我的应用程序有一个标题,因此下拉列表垂直偏移标题的高度。MX 版本的 ComboBox 在测试子应用程序中没有这个问题。

我尝试添加该行:

-includes=mx.managers.systemClasses.MarshallingSupport

-includes+=mx.managers.systemClasses.MarshallingSupport

到我的应用程序的编译器选项,但它没有效果。

我还注意到,在尝试编写导入语句时,MarshallingSupport 甚至不存在。我使用的是 FlashBuilder 4。我使用的是默认的 SDK (4.1)。子应用程序是相同的。

有什么解决方法吗?难道我做错了什么?为什么必须这样?告诉其他团队将他们所有的 s:DropDownList 切换到 mx:ComboBox 至少可以说是很麻烦的。由于 API 不同,这也将非常耗时。我真的希望我能做些什么来解决这个问题。请告诉我我做错了。

4

1 回答 1

0

好的,所以一种选择是制作一个新的 DropdownListSkin 来修改 AnchorPopUp 的行为。这是一个好的解决方案。但事实证明,有些挣扎,我得到了“-includes+=mx.managers.systemClasses.MarshallingSupport”最终在编译器中工作。通过在 MatrixUtil.getConcatenatedMatrixHelper() 的第 1432 行放置一个断点,我能够确认编组支持是打开还是关闭。或者,您也可以通过以下方式进行检查:

 ApplicationDomain.currentDomain.hasDefinition("mx.managers.systemClasses.MarshallingSupport");

因此,如果您像我一样认为您的编译器选项设置正确,请使用上面的代码来确认您真的对上帝诚实并正确。只要 MatrixUtil 可以访问 MarshallingSupport,那么您的 spark pulldown 等就可以正常工作。

此外,我还从 Adob​​e 论坛获得了一些帮助: http ://forums.adobe.com/thread/1034957

编辑:我将此标记为答案,因此 SO 将停止要求我接受答案。

于 2012-08-03T07:36:15.177 回答