Предположим, у меня есть приложение, размеры которого больше разрешения экрана пользователя. Обычно при добавлении всплывающего окна я бы назвал popupManager.addPopup()
, а затем popupManager.centerPopup()
, но это может привести к добавлению всплывающего окна за пределы видимой области пользователя на экране.
Есть ли способ добавить всплывающее окно в середине текущей видимой области пользователя вместо этого?
EDIT:
Вот быстрый пример:
<?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"
width="3000" height="2000"
creationComplete="creationCompleteHandler(event)">
<fx:Script>
<![CDATA[
import mx.managers.PopUpManager;
import spark.components.TitleWindow;
public var myWindow:TitleWindow = new TitleWindow;
protected function creationCompleteHandler(event:FlexEvent):void
{
myWindow.title = "My Title Window";
PopUpManager.addPopUp(myWindow, DisplayObject(FlexGlobals.topLevelApplication), false);
PopUpManager.centerPopUp(myWindow);
}
]]>
</fx:Script>
<s:BorderContainer width="3000" height="2000" backgroundColor="0x000000" />
</s:Application>
Пример 1:
+==========================+---------------------+
| Viewable Area | |
| | |
| +-------------+ | |
| | I want the | | |
| | popup to | | |
| | go here. | | |
| +-------------+ | |
| | |
| | |
+==========================+ |
| |
| Rest of Application |
| |
| |
| |
| |
+------------------------------------------------+
Пример 2:
+------------------------------------------------+
| |
| Rest of Application |
| |
| |
| +===========================+ |
| | Viewable Area | |
| | | |
| | +-------------+ | |
| | | I want the | | |
| | | popup to | | |
| | | go here. | | |
| | +-------------+ | |
| | | |
| | | |
| +===========================+ |
| |
+------------------------------------------------+