本文向大家简单介绍一下Flex全屏的原理和局部Flex全屏的几种方法,Flex全屏和flash全屏其实是相似的,都是由as控制的。
本文和大家重点讨论一下Flex全屏的原理和局部Flex全屏的几种方法,Flex全屏和flash全屏其实是相似的,都是由as控制的,当选择以Flex全屏显示的时候,会自动更改swf的高和宽,以Flex全屏幕显示整个swf。
Flex全屏
1.Flex全屏的原理:
Flex全屏和flash全屏其实是相似的,都是由as控制的,当选择以Flex全屏显示的时候,会自动更改swf的高和宽,以Flex全屏幕显示整个swf。
2.局部Flex全屏的两种方法:
一、使用在flash.display包中有一个stage对象,它有一个属性是fullScreenSourceRect:Rectangle,设置FlashPlayer以将特定的舞台区域放大到Flex全屏模式。
二、Flex全屏时调整某组件的高度和宽度,铺满整个屏幕,当退出Flex全屏时,要还原组件的高度和宽度。
3.Flex全屏的代码实现:
第一种方法:
1. //valid,willenablehardwarescaling
2. stage.fullScreenSourceRect=newRectangle(0,0,320,240);——详细代码可以查看Flex帮助
第二种方法:(注意:在Application中添加的初始化函数,使用的是applicationComplete事件)
1. <?xmlversionxmlversion="1.0"encoding="utf-8"?>
2. <!--http://blog.Flexexamples.com/2007/08/07/creating-full-screen-Flex-applications/-->
3. <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="vertical"
4. applicationComplete="init(event)"viewSourceURL="srcview/index.html">
5.
6. <mx:Script>
7. <![CDATA[
8. importflash.display.StageDisplayState;
9.
10. privatefunctioninit(evt:Event):void{
11. /*Setupfullscreenhandler.*/
12. Application.application.stage.addEventListener(FullScreenEvent.FULL_SCREEN,fullScreenHandler);
13. dispState=Application.application.stage.displayState;
14. }
15.
16. privatefunctionfullScreenHandler(evt:FullScreenEvent):void{
17. dispState=Application.application.stage.displayState+"(fullScreen="+evt.fullScreen.toString()+")";
18. if(evt.fullScreen){
19. /*Dosomethingspecifichereifweswitchedtofullscreenmode.*/
20. }else{
21. /*Dosomethingspecifichereifweswitchedtonormalmode.*/
22. }
23. }
24.
25. privatefunctiontoggleFullScreen():void{
26. try{
27. switch(Application.application.stage.displayState){
28. caseStageDisplayState.FULL_SCREEN:
29. /*Ifalreadyinfullscreenmode,switchtonormalmode.*/
30. Application.application.stage.displayState=StageDisplayState.NORMAL;
31. break;
32. default:
33. /*Ifnotinfullscreenmode,switchtofullscreenmode.*/
34. Application.application.stage.displayState=StageDisplayState.FULL_SCREEN;
35. break;
36. }
37. }catch(err:SecurityError){
38. //ignore
39. }
40. }
41. ]]>
42. </mx:Script>
43.
44. <mx:Stringidmx:Stringid="dispState"/>
45.
46. <mx:Labeltextmx:Labeltext="width={Application.application.width}"/>
47. <mx:Labeltextmx:Labeltext="height={Application.application.height}"/>
48. <mx:Labeltextmx:Labeltext="displayState={dispState}"/>
49.
50. <mx:Buttonlabelmx:Buttonlabel="Togglefullscreen"click="toggleFullScreen()"/>
51.
52. </mx:Application>
53.
--------------------------------------------------并修改index.template.html:-------------------------------------------
1. AC_FL_RunContent(
2. "src","main",
3. "width","100%",
4. "height","100%",
5. "align","middle",
6. "id","main",
7. "quality","high",
8. "bgcolor","#869ca7",
9. "name","main",
10. "allowScriptAccess","sameDomain",
11. "type","application/x-shockwave-flash",
12. "pluginspage","http://www.adobe.com/go/getflashplayer",
13. "allowFullScreen","true"
14. );
注意:
1、Application.application.stage.displayState=StageDisplayState.FULL_SCREEN;
//必须把它放到按钮或键盘事件中,否则在AS2.0里会被忽略,AS3.0里会抛出以下异常SecurityError:Error#2152:不允许使用Flex全屏模式。atflash.display::Stage/setdisplayState()
2、Flex全屏下Flash文本框无法输入,设计界面请勿支持Flex全屏,而且Flex全屏下做不到屏蔽右键的功能
本文和大家重点讨论一下Flex全屏的原理和局部Flex全屏的几种方法,Flex全屏和flash全屏其实是相似的,都是由as控制的,当选择以Flex全屏显示的时候,会自动更改swf的高和宽,以Flex全屏幕显示整个swf。
Flex全屏
1.Flex全屏的原理:
Flex全屏和flash全屏其实是相似的,都是由as控制的,当选择以Flex全屏显示的时候,会自动更改swf的高和宽,以Flex全屏幕显示整个swf。
2.局部Flex全屏的两种方法:
一、使用在flash.display包中有一个stage对象,它有一个属性是fullScreenSourceRect:Rectangle,设置FlashPlayer以将特定的舞台区域放大到Flex全屏模式。
二、Flex全屏时调整某组件的高度和宽度,铺满整个屏幕,当退出Flex全屏时,要还原组件的高度和宽度。
3.Flex全屏的代码实现:
第一种方法:
1. //valid,willenablehardwarescaling
2. stage.fullScreenSourceRect=newRectangle(0,0,320,240);——详细代码可以查看Flex帮助
第二种方法:(注意:在Application中添加的初始化函数,使用的是applicationComplete事件)
1. <?xmlversionxmlversion="1.0"encoding="utf-8"?>
2. <!--http://blog.Flexexamples.com/2007/08/07/creating-full-screen-Flex-applications/-->
3. <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"layout="vertical"
4. applicationComplete="init(event)"viewSourceURL="srcview/index.html">
5.
6. <mx:Script>
7. <![CDATA[
8. importflash.display.StageDisplayState;
9.
10. privatefunctioninit(evt:Event):void{
11. /*Setupfullscreenhandler.*/
12. Application.application.stage.addEventListener(FullScreenEvent.FULL_SCREEN,fullScreenHandler);
13. dispState=Application.application.stage.displayState;
14. }
15.
16. privatefunctionfullScreenHandler(evt:FullScreenEvent):void{
17. dispState=Application.application.stage.displayState+"(fullScreen="+evt.fullScreen.toString()+")";
18. if(evt.fullScreen){
19. /*Dosomethingspecifichereifweswitchedtofullscreenmode.*/
20. }else{
21. /*Dosomethingspecifichereifweswitchedtonormalmode.*/
22. }
23. }
24.
25. privatefunctiontoggleFullScreen():void{
26. try{
27. switch(Application.application.stage.displayState){
28. caseStageDisplayState.FULL_SCREEN:
29. /*Ifalreadyinfullscreenmode,switchtonormalmode.*/
30. Application.application.stage.displayState=StageDisplayState.NORMAL;
31. break;
32. default:
33. /*Ifnotinfullscreenmode,switchtofullscreenmode.*/
34. Application.application.stage.displayState=StageDisplayState.FULL_SCREEN;
35. break;
36. }
37. }catch(err:SecurityError){
38. //ignore
39. }
40. }
41. ]]>
42. </mx:Script>
43.
44. <mx:Stringidmx:Stringid="dispState"/>
45.
46. <mx:Labeltextmx:Labeltext="width={Application.application.width}"/>
47. <mx:Labeltextmx:Labeltext="height={Application.application.height}"/>
48. <mx:Labeltextmx:Labeltext="displayState={dispState}"/>
49.
50. <mx:Buttonlabelmx:Buttonlabel="Togglefullscreen"click="toggleFullScreen()"/>
51.
52. </mx:Application>
53.
--------------------------------------------------并修改index.template.html:-------------------------------------------
1. AC_FL_RunContent(
2. "src","main",
3. "width","100%",
4. "height","100%",
5. "align","middle",
6. "id","main",
7. "quality","high",
8. "bgcolor","#869ca7",
9. "name","main",
10. "allowScriptAccess","sameDomain",
11. "type","application/x-shockwave-flash",
12. "pluginspage","http://www.adobe.com/go/getflashplayer",
13. "allowFullScreen","true"
14. );
注意:
1、Application.application.stage.displayState=StageDisplayState.FULL_SCREEN;
//必须把它放到按钮或键盘事件中,否则在AS2.0里会被忽略,AS3.0里会抛出以下异常SecurityError:Error#2152:不允许使用Flex全屏模式。atflash.display::Stage/setdisplayState()
2、Flex全屏下Flash文本框无法输入,设计界面请勿支持Flex全屏,而且Flex全屏下做不到屏蔽右键的功能