PopUpManager 팝업 창 해결 RangeError: Error #2006: 제공된 인덱스가 범위를 초과했습니다.

1702 단어 qqFlexjmsFlashAdobe
시스템은 JMS로 메시지 알림을 실현해야 한다. QQ와 같은 메시지 알림은 처음에는 간단한 파일 스캔일 뿐이고 팝업 창은 구성 요소 A이다. 이것마다 새로운 A 팝업을 실례화하고 A의 보기 단추를 누르면 구성 요소 A를 제거한다.그러나 2기 맞춤형 조회도 메시지를 사용했습니다. 이것은 구성 요소 A를 연속으로 꺼내야 합니다. 구성 요소 A를 세 번 꺼내면 flex는 아래의 이상을 보고합니다.
 
RangeError: Error #2006:  。
	at flash.display::DisplayObjectContainer/addChildAt()
	at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::rawChildren_addChildAt()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\managers\SystemManager.as:2175]
	at mx.managers::SystemManager/addChild()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\managers\SystemManager.as:1685]
	at mx.managers::PopUpManagerImpl/addPopUp()
	at mx.managers::PopUpManager$/addPopUp()
	at module.portal.desktop::MenuComponent/showSubMenu()[E:\flexworkplace\tpl\src\module\portal\desktop\MenuComponent.mxml:210]

 
 
 
인터넷에서 검색한 결과 이 오류가 발생한 원인은 PopUpManager가 컨트롤에 추가된 등급을 잘 제어하지 못했기 때문이다.매번addPopUp이 맨 위에 올라가면 프로그램도 도대체 얼마나 늘어나야 할지 몰라요. 최대 세 번까지 이 오류가 발생합니다.
 
해결 방법은 다음과 같습니다.
  
                                                              if(messageComponent.parent==null){
					messageComponent.x=Application.application.width-messageComponent.width;
					messageComponent.y=Application.application.height-messageComponent.height;
					PopUpManager.addPopUp(messageComponent,Application.application as DisplayObject,false);
				}else{
					PopUpManager.bringToFront(messageComponent);
				}

 
messageComponent는 팝업할 메시지 구성 요소입니다.
 
 
 
 
 
 
 
 

좋은 웹페이지 즐겨찾기