Я сделал это простое приложение, чтобы продемонстрировать свою проблему.Он имеет:
- Изображение
- Кнопка, запускающая всплывающее окно
- Полосы прокрутки на боковой стороне
<mx: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"
verticalScrollPolicy="on"
horizontalScrollPolicy="on"
layout="vertical">
<fx:Script>
<![CDATA[
import mx.managers.PopUpManager;
public function buttonClick():void {
PopUpManager.createPopUp(this,JakePanel,true);
}
]]>
</fx:Script>
<mx:Image width="2000"
source="@Embed(source='assets/image.jpg')"/>
<mx:Button click="{buttonClick()}" label="Launch"/>
</mx:Application>
При нажатии кнопки запуска запускается это всплывающее окно:
<?xml version="1.0" encoding="utf-8"?>
<mx:Panel xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
layout="vertical"
width="400" height="300"
title="Popup"
>
<fx:Script>
<![CDATA[
import mx.managers.PopUpManager;
public function close():void {
PopUpManager.removePopUp(this);
}
]]>
</fx:Script>
<s:TextArea text="Enter more text here: " width="100%" height="200"/>
<s:Button label="OK" click="{close()}" width="100%" height="30" />
</mx:Panel>
Это мои требования
Когда всплывающее окно открыто, мне нужно иметь возможность отключить всекроме всплывающего окна.Для этого я использую: PopUpManager.createPopUp(this,JakePanel,true);
.Последний параметр указывает, что всплывающее окно является «модальным» и должно захватывать все события мыши.
Мне также нужно разрешить основные полосы прокрутки, когда всплывающее окно открыто.Часто мои пользователи открывают приложение на очень маленьком экране и не могут изменить его размер.Например:
Это проблема, когда приложение слишком маленькое, чтобы нажать кнопку ОК:
Есть ли способ сделать все "модальным", кроме основных полос прокрутки?Я знаю, что могу поставить полосу прокрутки на панели, но предпочел бы избежать этого.