在学习Flex的过程中,你可能会遇到Flex全屏方面的问题,这里和大家分享一下Flex全屏的方法,相信本文介绍一定会让你有所收获。
Flex全屏方法介绍
最近在做工作流的流程设计工具相关的内容,web应用使用了比较标准的分布方式,即上、左、右的布局方式,这样做的结果就是设计工具的设计界面相对较小,当遇到比较复杂的流程时就感觉设计的流程比较紧凑,设计工具的易用性不够好。为了解决这个问题,需要支持Flex全屏模式。
想了下,可以通过以下方式实现Flex全屏:
◆使用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的中央会出现"PressEscToExistFullScreen"。因而这种方式无法满足设计需求。
当然,中央出现的字幕还是有办法去掉的,虽然去掉之后并不能改变结果。去掉中央的"PressEscToExistFullScreen"字幕的方法请见:
http://stackoverflow.com/questions/1415436/flex-fullscreen-translate-edit-press-esc-to-exit-fullscreen-mode
该文章讲解了去掉IE,Firefox中Flex全屏后字幕的方法。
◆通过showModalDialog来模拟Flex的全屏模式,showModalDialog中去掉工具栏、菜单栏、地址栏,同时将宽度和高度设置成屏幕的宽度和高度。但是这种方式实现起来比较复杂,因为涉及到数据同步的问题,同步的方式根据项目的复杂程度和需求要求不同而不同。比较简单的方式是在关闭showModalDialog时将数据同步主页面。因为这种方式实现复杂,容易出错,所以没有进行实现,有兴趣的朋友可以自己试试。
◆模拟IE的F11的全屏模式。当用户选择全屏模式的时候,模拟IE的F11PressDown事件,隐藏掉IE的地址栏、菜单栏、工具栏等,同时将上部和左部的Frame隐藏掉,让右边的Frame全屏显示,达到预期的效果。
IE的F11PressDown事件模拟方式实现如下:
- varshell=newActiveXObject('WScript.Shell')
- shell.SendKeys('{F11}');
Frame的隐藏方法当然有很多,就不详细介绍了。
缺点:
这种方式需要用户修改IE的安全选项,具体方法为:
- Tools>Internetoptions>Security>CustomLevel
- ActiveXcontrolsandplug-ins>InitializingandScriptActiveXcontrolsnotmarkedassafe
- >Enable
如果没有将上面选项设置成Enable,那么会报:automationservercan'tcreateobject错误。
【编辑推荐】