[
https://issues.apache.org/jira/browse/FLEX-34355?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14160144#comment-14160144
]
jerome billet edited comment on FLEX-34355 at 10/6/14 9:51 AM:
---------------------------------------------------------------
To reproduce it:
{code}
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
import mx.events.CloseEvent;
import mx.managers.PopUpManager;
import spark.components.TitleWindow;
private var _popup1:TitleWindow;
private var _popup2:TitleWindow;
private var _popup3:TitleWindow;
protected function
button1_clickHandler(event:MouseEvent):void
{
if(_popup1==null){
_popup1= new TitleWindow();
_popup1.addEventListener(CloseEvent.CLOSE,_popup1CloseHandler,false,0,true);
_popup1.title="test 1";
PopUpManager.addPopUp(_popup1,
this,true);
_popup1.x=10;
_popup1.y=10;
}
createPopup2(_popup1);
if(_popup2==null){
_popup2= new TitleWindow();
_popup2.addEventListener(CloseEvent.CLOSE,_popup2CloseHandler,false,0,true);
_popup2.title="test 2";
PopUpManager.addPopUp(_popup2,
this,true);
_popup2.x=50;
_popup2.y=50;
}
createPopup2(_popup2);
}
protected function
createPopup2(parent:DisplayObject):void
{
if(_popup3==null){
_popup3= new TitleWindow();
_popup3.title="test 3";
}
PopUpManager.addPopUp(_popup3, parent, false);
_popup1.x=parent.x+20;
_popup1.y==parent.y+20;
}
private function
_popup1CloseHandler(event:CloseEvent):void
{
PopUpManager.removePopUp(_popup1);
PopUpManager.removePopUp(_popup3);
_popup1=null;
}
private function
_popup2CloseHandler(event:CloseEvent):void
{
PopUpManager.removePopUp(_popup2);
PopUpManager.removePopUp(_popup3);
_popup2=null;
}
]]>
</fx:Script>
<s:layout>
<s:VerticalLayout/>
</s:layout>
<s:Button label="open" click="button1_clickHandler(event)"/>
<s:TextInput />
</s:Application>
{code}
1- Click the open button that create the 3 popups
2- Close popup "Test 2"
3- Try to close the "Test 1"
was (Author: jebi):
To reproduce it:
{code}
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
import mx.events.CloseEvent;
import mx.managers.PopUpManager;
import spark.components.TitleWindow;
private var _popup1:TitleWindow;
private var _popup2:TitleWindow;
private var _popup3:TitleWindow;
protected function
button1_clickHandler(event:MouseEvent):void
{
if(_popup1==null){
_popup1= new TitleWindow();
_popup1.addEventListener(CloseEvent.CLOSE,_popup1CloseHandler,false,0,true);
_popup1.title="test 1";
PopUpManager.addPopUp(_popup1,
this,true);
_popup1.x=10;
_popup1.y=10;
}
createPopup2(_popup1);
if(_popup2==null){
_popup2= new TitleWindow();
_popup2.addEventListener(CloseEvent.CLOSE,_popup2CloseHandler,false,0,true);
_popup2.title="test 2";
PopUpManager.addPopUp(_popup2,
this,true);
_popup2.x=50;
_popup2.y=50;
}
createPopup2(_popup2);
}
protected function
createPopup2(parent:DisplayObject):void
{
if(_popup3==null){
_popup3= new TitleWindow();
_popup3.title="test 3";
}
PopUpManager.addPopUp(_popup3, parent, false);
_popup1.x=parent.x+20;
_popup1.y==parent.y+20;
}
private function
_popup1CloseHandler(event:CloseEvent):void
{
PopUpManager.removePopUp(_popup1);
PopUpManager.removePopUp(_popup3);
_popup1=null;
}
private function
_popup2CloseHandler(event:CloseEvent):void
{
PopUpManager.removePopUp(_popup2);
PopUpManager.removePopUp(_popup3);
_popup2=null;
}
]]>
</fx:Script>
<s:layout>
<s:VerticalLayout/>
</s:layout>
<s:Button label="open" click="button1_clickHandler(event)"/>
<s:TextInput />
</s:Application>
{code}
> 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.3.4#6332)