【问题标题】:Flex: createPopUp -> Make everything modal except scrollbarsFlex: createPopUp -> 使除滚动条之外的所有内容都成为模态
【发布时间】:2011-09-28 14:19:20
【问题描述】:

我制作了这个简单的应用程序来演示我的问题。它有:

  • 一张图片
  • 启动弹出窗口的按钮
  • 侧面的滚动条
<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>

这是我的要求

  1. 当弹出窗口打开时,我需要能够禁用除弹出窗口之外的所有内容。为此,我使用:PopUpManager.createPopUp(this,JakePanel,true);。最后一个参数指定弹出是“模态的”,它应该捕获所有鼠标事件。

  2. 我还需要允许在弹出窗口打开时启用主滚动条。通常我的用户会在一个很小的屏幕上打开应用程序,并且无法调整应用程序的大小。例如:

当应用程序太小而无法单击确定按钮时,这是一个问题:

有没有办法让除了主滚动条之外的所有东西都“模态”?我知道我可以在面板上放置一个滚动条,但我宁愿避免这样做。

【问题讨论】:

    标签: apache-flex modal-dialog


    【解决方案1】:

    我认为最好的方法是:

    1. 将主应用程序中的所有内容包装在&lt;mx:hgroup id="allYourStuff"&gt; 标记中。
    2. 当您将弹出窗口添加到屏幕调用时:allYourStuff.enabled = false
    3. 当您从屏幕调用中删除弹出窗口时:allYourStuff.enabled = true

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-01
      • 2018-01-12
      • 1970-01-01
      • 2016-01-11
      • 2015-05-02
      • 1970-01-01
      相关资源
      最近更新 更多