Flex 4.6 SkinnablePopupContainer 不断出错
Posted
技术标签:
【中文标题】Flex 4.6 SkinnablePopupContainer 不断出错【英文标题】:Flex 4.6 SkinnablePopupContainer keep getting error 【发布时间】:2013-09-29 03:59:06 【问题描述】:我刚刚从 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\经理\SystemManager.as:2187] 在 mx.managers::SystemRawChildrenList/getChildIndex()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\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:1933] 在 spark.components.supportClasses::StyleableStageText/updateProxyImageForTopmostForm()[E:\dev\4.y\frameworks\projects\mobilecomponents\src\spark\components\supportClasses\StyleableStageText.as:2172] 在 spark.components.supportClasses::StyleableStageText/commitProperties()[E:\dev\4.y\frameworks\projects\mobilecomponents\src\spark\components\supportClasses\StyleableStageText.as:1510] 在 mx.core::UIComponent/validateProperties()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:8219] 在 mx.managers::LayoutManager/validateClient()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\LayoutManager.as:957] 在 mx.managers::PopUpManagerImpl/addPopUp()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\PopUpManagerImpl.as:382] 在 mx.managers::PopUpManager$/addPopUp()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\PopUpManager.as:193] 在 spark.components::SkinnablePopUpContainer/open()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\SkinnablePopUpContainer.as:450] 在views::Login/init()[C:\Users\Adobe Flash Builder 4.7\TDMAPP\src\views\Login.mxml:50] 在views::Login/___Login_View1_initialize()[C:\Users\Adobe Flash Builder 4.7\TDMAPP\src\views\Login.mxml:5] 在 flash.events::EventDispatcher/dispatchEventFunction() 在 flash.events::EventDispatcher/dispatchEvent() 在 mx.core::UIComponent/dispatchEvent()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:13152] 在 mx.core::UIComponent/set processesDescriptors()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:1871] 在 mx.core::UIComponent/initializationComplete()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7670] 在 mx.core::UIComponent/initialize()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7649] 在 spark.components::View/initialize()[E:\dev\4.y\frameworks\projects\mobilecomponents\src\spark\components\View.as:999] 在视图::登录/初始化() 在 mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\4.y\frameworks\projects\framework\src\mx\核心\UIComponent.as:7495] 在 mx.core::UIComponent/addChildAt()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:7199] 在 spark.components::Group/addDisplayObjectToDisplayList()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:2037] 在 spark.components::Group/http://www.adobe.com/2006/flex/mx/internal::elementAdded()[E:\dev\4.y\frameworks\projects\spark\src\spark\组件\Group.as:1628] 在 spark.components::Group/addElementAt()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:1387] 在 spark.components::Group/addElement()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:1345] 在 spark.components::SkinnableContainer/addElement()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\SkinnableContainer.as:761] 在 spark.components::ViewNavigator/createViewInstance()[E:\dev\4.y\frameworks\projects\mobilecomponents\src\spark\components\ViewNavigator.as:2018] 在 spark.components::ViewNavigator/http://www.adobe.com/2006/flex/mx/internal::createTopView()[E:\dev\4.y\frameworks\projects\mobilecomponents\src\spark\组件\ViewNavigator.as:1981] 在 spark.components::ViewNavigator/http://www.adobe.com/2006/flex/mx/internal::setActive()[E:\dev\4.y\frameworks\projects\mobilecomponents\src\spark\组件\ViewNavigator.as:424] 在 spark.components::TabbedViewNavigator/commitProperties()[E:\dev\4.y\frameworks\projects\mobilecomponents\src\spark\components\TabbedViewNavigator.as:741] 在 mx.core::UIComponent/validateProperties()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:8219] 在 mx.managers::LayoutManager/validateProperties()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\LayoutManager.as:597] 在 mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\LayoutManager.as:783] 在 mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1180]
有人知道怎么解决吗?
【问题讨论】:
loginPopup.open(this,true); ? 【参考方案1】:刚刚通过将这段代码放在 APPLICATION_COMPLETE 事件而不是视图的 CREATION_COMPLETE 事件中解决了这个问题。看起来 Flex 4.6 中的创建顺序有点不同
希望对您有所帮助。
【讨论】:
以上是关于Flex 4.6 SkinnablePopupContainer 不断出错的主要内容,如果未能解决你的问题,请参考以下文章
Flex 4.6 - Air 3.2 - 为啥用偏移量绘制图形?