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. <? xmlversion xmlversion ="1.0" encoding ="utf-8" ?>  
  2. <!--http://blog.Flexexamples.com/2007/08/07/creating-full-screen-Flex-applications/-->  
  3. < mx:Applicationxmlns:mx mx: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:Stringid mx:Stringid = "dispState" />  
  45.  
  46. < mx:Labeltext mx:Labeltext = "width={Application.application.width}" />  
  47. < mx:Labeltext mx:Labeltext = "height={Application.application.height}" />  
  48. < mx:Labeltext mx:Labeltext = "displayState={dispState}" />  
  49.  
  50. < mx:Buttonlabel mx: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全屏下做不到屏蔽右键的功能

 

本文摘自:http://developer.51cto.com/art/201008/216028.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值