1

我刚刚从 Flex 4.5 升级到 Flex 4.6,该应用程序在 Flex 4.5 上运行良好,但在 Flex 4.6 中运行时不断出现错误。

正是这个位抛出了错误,loginPopup 是一个 SkinnablePopupContainer

protected function init(event:FlexEvent):void
{
    loginPopup = new LoginPopup();      
    loginPopup.currentState = "Start";
    loginPopup.open(UIComponent(FlexGlobals.topLevelApplication),true); -- This line throws the error
}

错误是:

[SWF] TDMAPP.swf - 7,212,792 bytes after decompression

ArgumentError:错误 #2025:提供的 DisplayObject 必须是调用者的子对象。在 flash.display::DisplayObjectContainer/getChildIndex() 在 mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::rawChildren_getChildIndex()[E:\dev\4.y \frameworks\projects\framework\src\mx\managers\SystemManager.as:2187] 在 mx.managers::SystemRawChildrenList/getChildIndex()[E:\dev\4.y\frameworks\projects\framework\src\mx\ manager\SystemRawChildrenList.as:181] 在 spark.components.supportClasses::StyleableStageText/getFormIndex()[E:\dev\4.y\frameworks\projects\mobilecomponents\src\spark\components\supportClasses\StyleableStageText.as:1956 ] 在 spark.components.supportClasses::StyleableStageText/findTopmostForm()[E:\dev\4.y\frameworks\projects\mobilecomponents\src\spark\components\supportClasses\StyleableStageText.as:

有谁知道如何解决这个问题?

4

1 回答 1

1

刚刚通过将这段代码放在 APPLICATION_COMPLETE 事件而不是视图的 CREATION_COMPLETE 事件中解决了这个问题。看起来 Flex 4.6 中的创建顺序有点不同

希望有帮助。

于 2013-09-25T03:07:08.950 回答