解决flex4 分辨率自适应问题

首先是按照常规思维在app中设置

<mxml>
<s:Application .......
width="100%" height="100%"
minWidth="1280" minHeight="720">

这样确实可以全屏,但是当屏幕缩放到小于1280*720时,浏览器并不会自动添加滚动条,所以网页超出屏幕大小的内容就看不到了。

为了解决不出现滚动条,在网上找到了答案,并成功解决

 

http://stackoverflow.com/questions/4259434/flex-4-sscroll
设置Application的height和width属性,不设置minHeight和minWidth,当 屏幕小于height和width时出现滚动条。
但是,这种方法可以实现滚动条,但是必须是设定height和width的固定 大小,也就是说当我的 屏幕大于这个设定的固定 大小时,浏览器重显示的 网页也只有width*height大,会出现空白区域,所以还是不能满足自 适应的要求。
 
最终的解决方案是:
 <http://wbgen.com/blog/flex4%E8%AE%A9%E6%B5%8F%E8%A7%88%E5%99%A8%E7%AA%97%E5%8F%A3%E5%B0%8F%E4%BA%8Eapplication%E5%A4%A7%E5%B0%8F%E6%97%B6%E5%87%BA%E7%8E%B0%E6%BB%9A%E5%8A%A8%E6%9D%A1>
在index.template.html文件(位于Flex项目文件中的html-template文件夹下)中添加js脚本,实现读取当前 屏幕 大小,判断获取的 屏幕width小于1280px时width取1280px,当大于时,width去获取的 屏幕width,height的设置方法也是这样。
 
var winWidth = 0;  
 var winHeight = 0;  
 function findDimensions()  
 {  
  //获取窗口宽度  
  if (window.innerWidth)  
  {  
   winWidth = window.innerWidth;  
  }  
  else if ((document.body) && (document.body.clientWidth))  
  {  
   winWidth = document.body.clientWidth; //获取窗口高度  
  }  
  if (window.innerHeight)  
  {  
   winHeight = window.innerHeight;  
  }  
  else if ((document.body) && (document.body.clientHeight))  
  {  
   winHeight = document.body.clientHeight;  
  }  
  //通过深入Document内部对body进行检测,获取窗口<strong>大小</strong>  
  if (document.documentElement  && document.documentElement.clientHeight && document.documentElement.clientWidth)  
  {  
  winHeight = document.documentElement.clientHeight;  
  winWidth = document.documentElement.clientWidth;  
  }    
   
  var cssSize = document.styleSheets[0].rules||document.styleSheets[0].cssRules;  
  if(winWidth < 1280)  
  {  
  cssSize[0].style.width = "1280px";  
  }  
  else  
  {  
  cssSize[0].style.width = "100%";  
  }  
   
  if(winHeight < 720)  
  {  
  cssSize[0].style.height = "720px";  
  }  
  else  
  {  
  cssSize[0].style.height = "100%";  
  }  
 }  
   
 window.onresize=findDimensions;    
   
 function pageInit() {  
    //调用函数,获取数值  
   findDimensions();  
 }   

 

 
然后在Flex中App中设置
width="100%" height="100%"
这样即可实现自 适应的同时设定 网页的最小width和height。
在ie8中,“开发人员工具”中“脚本”中就可以看到这个index.template.html文件了,所以flex 网页最终也是以html形式存在,flex生成的swf 网页只是html中的一个object
为了确保万无一失,我将index.template.html中object的width和height都设成100%。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值