Flex全屏方法介绍

最近在做工作流的流程设计工具相关的内容,web应用使用了比较标准的分布方式,即上、左、右的布局方式,这样做的结果就是设计工具的设计界面相对较小,当遇到比较复杂的流程时就感觉设计的流程比较紧凑,设计工具的易用性不够好。为了解决这个问题,需要支持Flex的全屏模式。

想了下,可以通过以下方式实现Flex的全屏:

  1. 使用Flex的FullScreen模式,具体实现方式为:
    1. 修改html-template文件夹下的index.template.html文件,在AC_FL_RunContent中增加:"allowFullScreen", "true";在embed中增加:allowFullScreen="true"
    2. 通过设置stage.displayState 的值为 StageDisplayState.FULL_SCREEN来切换到全屏模式。

    缺点

    使用这种方式虽然能够将Flex切换到全屏模式,但是Flex中的InputText等控件是无法编辑的,而且在Flex的中央会出现"Press Esc To Exist Full Screen"。因而这种方式无法满足设计需求。

        当然,中央出现的字幕还是有办法去掉的,虽然去掉之后并不能改变结果。去掉中央的"Press Esc To Exist Full Screen"字幕的方法请见:

    http://stackoverflow.com/questions/1415436/flex-fullscreen-translate-edit-press-esc-to-exit-fullscreen-mode

    该文章讲解了去掉IE,Firefox中Flex全屏后字幕的方法。

  2. 通过showModalDialog来模拟Flex的全屏模式,showModalDialog中去掉工具栏、菜单栏、地址栏,同时将宽度和高度设置成屏幕的宽度和高度。但是这种方式实现起来比较复杂,因为涉及到数据同步的问题,同步的方式根据项目的复杂程度和需求要求不同而不同。比较简单的方式是在关闭showModalDialog时将数据同步主页面。因为这种方式实现复杂,容易出错,所以没有进行实现,有兴趣的朋友可以自己试试。
  3. 模拟IE的F11的全屏模式。当用户选择全屏模式的时候,模拟IE的F11 Press Down事件,隐藏掉IE的地址栏、菜单栏、工具栏等,同时将上部和左部的Frame隐藏掉,让右边的Frame全屏显示,达到预期的效果。

    IE的F11 PressDown 事件模拟方式实现如下:

    var shell = new ActiveXObject('WScript.Shell')
    shell.SendKeys('{F11}');

    Frame的隐藏方法当然有很多,就不详细介绍了。

    缺点

    这种方式需要用户修改IE的安全选项,具体方法为:

    1. Tools > Internet options > Security > Custom Level
    2. ActiveX controls and plug-ins>Initializing and Script ActiveX controls not marked as safe>Enable

    如果没有将上面选项设置成Enable,那么会报:automation server can't create object 错误。

     

    原创文章,转载请注明出处!
    All CopyRight Reserved !

    主页:http://jingtao.cnblogs.com

    QQ:307073463
    Email:jingtaodeemail@qq.com
    MSN:sunjingtao@live.com

posted @ 2010-06-12 00:52  镜涛  阅读(2628)  评论(1编辑  收藏  举报
Creative Commons License

本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名孙镜涛(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言