2010-03-16 2 views
1

주 응용 프로그램 창 중간에 팝업 창 (TitleWindow)을 배치하려고합니다. 내 팝업 창의 좌표를 주 응용 프로그램 창의 위치로 설정하는 방법은 무엇입니까? localToGlobal 함수를 사용해 보았지만 행운이 없었으므로 주 윈도우 x와 y를 얻을 수 없습니다.주 창 중간에 팝업 창 넣기

미리 감사드립니다. 우지. Adobe Docs에서

답변

2

:

은 그냥 TitleWindow의 CreationComplete 이벤트에 centerPopUp 메서드를 호출합니다.

private function handleCreationComplete():void { 
    // Center the TitleWindow container 
    // over the control that created it. 
    PopUpManager.centerPopUp(this); 
} 

당신이 방법 내에서 팝업을 만드는 경우, 당신은 또한 시도 할 수 있습니다 :

public function openWindow(event:MouseEvent):void { 
    myPopUp = new TextArea(); 
    myPopUp.width= 220; 
    myPopUp.height= 150; 
    myPopUp.text = "Hold down the Shift key, and " + 
    "click in the TextArea to close it."; 
    myPopUp.addEventListener(MouseEvent.CLICK, closeWindow); 
    PopUpManager.addPopUp(myPopUp, this, true); 
    PopUpManager.centerPopUp(myPopUp); 
} 

편집 : 또한 시도 할 수 있습니다 :

PopUpManager.centerPopUp(Application.application as DisplayObject); 

또는 경우를 구성 요소가 응용 프로그램의 기본 스테이지에 직접 있습니다.

,451,515,

두 번째 편집 : 당신이 당신의 팝업을 실행하려면 PopUpManager.addPopUp 방법을 사용하는 경우, 그냥 this.parent (또는 어떤 구성 요소 당신이 좋아하는)에 this에서 두 번째 인수를 변경합니다. 두 번째 인수는 팝업의 부모가 무엇인지 PopUpManager에게 알려줍니다. 자세한 내용은 Adobe Live Docs을 확인하십시오.

PopUpManager.addPopUp(myPopUp, this.parent, true); 
+0

내가 그랬지 만, 그것의 부모를 중심으로 팝업 센터 (나는 메인 윈도우가 팝업의 부모가 아니라는 것을 잊어 버렸습니다. 나는 엄마 안에 여러 개의 창이 있습니다. 창에서). mian window의 속성을 어떻게 든 얻는 것뿐입니다. 답변 해 주셔서 감사합니다. 우지 (Uzi). –

+0

귀하의 의견에 따라 답변을 편집했습니다. 앞으로 귀하가 작성한 코드 중 일부를 게시 할 수 있다면 귀하의 문제에 대한보다 구체적인 해결책을 찾아내는 데 도움이 될 것입니다. 도와 드리겠습니다. :) –

0
myPopUp.x = (Application.application.width - myPopUp.width)/2 
myPopUp.y = (Application.application.height - myPopUp.height)/2 
+0

이 작업도 가능하지만 PopUpManager가 이미 팝업을 센터링 할 수있는 방법을 제공 할 때 추가 작업을 수행해야하는 이유는 무엇입니까? –

+0

나는 PopUpManager.centerPopUp이 popUp을 매개 변수로 취해서 부모가 아닌 것으로 생각한다. 제가 누락 된 것이 있습니까? – Nishu

+0

PopUpManager.addPopUp을 사용하여 팝업을 만들 때 팝업의 부모 컨트롤이 무엇인지 지정할 수 있습니다. 따라서 centerPopUp 메서드를 호출하면 자동으로 부모 컨트롤 위에 놓입니다. –

0

@uzi orgad 난 당신이 팝업이 중간에 나타나는 주요 application.So에 한 DisplayObject 점 등이

var popup:Object ; 
popup = PopUpManager.createPopUp(
         FlexGlobals.topLevelApplication as DisplayObject, 
         popupname, true); 
PopUpManager.centerPopUp(popup as mx.core.IFlexDisplayObject); 

FlexGlobals.topLevelApplication 시도이 적합 할 것이라고 생각 응용 프로그램의