You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flex.apache.org by "Alex Harui (JIRA)" <ji...@apache.org> on 2014/06/19 02:23:25 UTC

[jira] [Resolved] (FLEX-34355) ActiveWindowManager, findHighestModalForm issue

     [ https://issues.apache.org/jira/browse/FLEX-34355?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alex Harui resolved FLEX-34355.
-------------------------------

    Resolution: Cannot Reproduce

Using 4.12.1 I cannot reproduce the problem with a simple test case.

In theory, objects in the form array are all parented by the SystemManager rawChildren at the time the mouse is down.  Normally, an object in the form is removed after the ActiveWindowManager's mouse handler is run, and when it is removed then by the next mouse event, it isn't there to be found.

Is there some unusual way you are removing popups?  Not calling PopUpManager.removePopUp?


> ActiveWindowManager, findHighestModalForm issue
> -----------------------------------------------
>
>                 Key: FLEX-34355
>                 URL: https://issues.apache.org/jira/browse/FLEX-34355
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: .Unspecified - Framework
>    Affects Versions: Apache Flex 4.12.0
>            Reporter: Alexander Mazuruk
>
> We have a lot of modal messageBoxes popped out on the stage, and we are trying to close them one by one, and for the second closed dialog we are facing this issue. Modal form was removed from the stage faster than mouseClickhandler from SystemManager was called actually.
> IChildList interface has .contains() method, Why in the world you are not using it?
> This code fragment must be fixed:
> 	private function findHighestModalForm():int
> 	{
> /////////////////////////////////////////
> 				var index:int = rc.getChildIndex(f as DisplayObject);
> 				if (index > 0)
> 				{
> 				}
> /////////////////////////////////////////
> 	}
> As follows:
> 	private function findHighestModalForm():int
> 	{
> /////////////////////////////////////////
> 	var index:int = rc.contains(f as DisplayObject) ? rc.getChildIndex(f as DisplayObject) : -1;
> 				if (index > 0)
> 				{
> 				}
> /////////////////////////////////////////
> 	}
> Otherwise we have this error pops out when we don't have a child in the IChildList and code is trying to fetch it out, but it's not there already.
> ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
> 	at flash.display::DisplayObjectContainer/getChildIndex()
> 	at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::rawChildren_getChildIndex()[/Users/justinmclean/Documents/ApacheFlex4.12.0/frameworks/projects/framework/src/mx/managers/SystemManager.as:2195]
> 	at mx.managers::SystemRawChildrenList/getChildIndex()[/Users/justinmclean/Documents/ApacheFlex4.12.0/frameworks/projects/framework/src/mx/managers/SystemRawChildrenList.as:189]
> 	at mx.managers.systemClasses::ActiveWindowManager/findHighestModalForm()[/Users/justinmclean/Documents/ApacheFlex4.12.0/frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as:441]
> 	at mx.managers.systemClasses::ActiveWindowManager/mouseDownHandler()[/Users/justinmclean/Documents/ApacheFlex4.12.0/frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as:469]
> 	at flash.events::EventDispatcher/dispatchEventFunction()
> 	at flash.events::EventDispatcher/dispatchEvent()
> 	at mx.core::UIComponent/dispatchEvent()[/Users/justinmclean/Documents/ApacheFlex4.12.0/frameworks/projects/framework/src/mx/core/UIComponent.as:13682]
> 	at mx.managers::SystemManager/mouseEventHandler()[/Users/justinmclean/Documents/ApacheFlex4.12.0/frameworks/projects/framework/src/mx/managers/SystemManager.as:2926]



--
This message was sent by Atlassian JIRA
(v6.2#6252)