air开发中的requestedDisplayResolution 扫盲
app.xml里面requestedDisplayResolution 取值可以为high/standard, 如果为high表示设备跟ios声明它需要使用高清屏(其实就是需要最大分辨率)
这里我猜测了一下ios对这个参数的解释,伪代码如下:
if ( device.hasHighResolutionDisplay) { //设备是否具备高清屏
if (app.requestedDisplayResolution == "high" ) {
app.stageWidth = device.maxResolution.x;
app.stageHeight = device.maxResolution.y;
device.renderAppScale(1); // 以scale=1的正常尺寸渲染整个APP
} else {
app.stageWidth = device.maxResolution.x/2;
app.stageHeight = device.maxResolution.y/2;
device.renderAppScale(2); // 以scale=2的放大尺寸渲染整个APP, 实际上就是4个像素点渲染原APP一个像素点
}
} else {
app.stageWidth = device.maxResolution.x;
app.stageHeight = device.maxResolution.y;
device.renderAppScale(1); // 以scale=1的正常尺寸渲染整个APP
}
下面是目前的苹果设备在不同的requestedDisplayResolution下的屏幕显示情况
如果我们是以640*960的尺寸为标准开发的IOS程序,设置requestedDisplayResolution为high, 为了让我们的程序在所有IOS设备上都能正常显示,还需要:
1. 假设我们没有使用starling , , 假设我们的程序所有的UI都放置在某个根节点root下,那么,在iphone 3gs下设置 root.scaleX = scaleY = 0.5 , 在ipad3/4上设置 root.scaleX = root.scaleY = 2 , (当然,ipad上会有黑边,假设这个可以忍受,或者可以继续缩放到只有一边黑边)。
2. 假设我们使用了starling , 那么在starling构造函数里,先传入640*960的viewport, 然后在iphone 3GS里额外设置 viewPort = new Rectangle(0, 0, 320, 480) , 在ipad 3/4上额外设置 viewPort=new Rectangle(0,0, 1536, 2048).
在ipad3/4上做了2倍的放大, 在方案1里会极大影响air的渲染性能 。
那么我们可以采取另外一套方法, 在ipad3/ipad4里设置requestedDisplayResolution=standard, 这样就不需要额外做缩放了, 而ios在Ipad3/4上会自动的放大整个程序为2倍大小。
这样带来的另外一个问题是, 我们想发布一次ipa就能兼容所有的设备, 幸好 adobe air 3.6最新beta版本 带来了这个属性, 只需要加入这个参数:
<requestedDisplayResolution excludeDevices="iPad3 iPad4">high</requestedDisplayResolution>
那么在Ipad3, ipad4上将默认使用requestedDisplayResolution =standard
air开发中的requestedDisplayResolution 扫盲的更多相关文章
- 在ANE插件中启动AIR开发的Android应用
在Android原生应用开发中,启动一个应用非常容易: Intent __intent = new Intent(this, YourAppActivity.class); startActivity ...
- TDD在Unity3D游戏项目开发中的实践
0x00 前言 关于TDD测试驱动开发的文章已经有很多了,但是在游戏开发尤其是使用Unity3D开发游戏时,却听不到特别多关于TDD的声音.那么本文就来简单聊一聊TDD如何在U3D项目中使用以及如何使 ...
- React在开发中的常用结构以及功能详解
一.React什么算法,什么虚拟DOM,什么核心内容网上一大堆,请自行google. 但是能把算法说清楚,虚拟DOM说清楚的聊聊无几.对开发又没卵用,还不如来点干货看看咋用. 二.结构如下: impo ...
- Android学习探索之Java 8 在Android 开发中的应用
前言: Java 8推出已经将近2年多了,引入很多革命性变化,加入了函数式编程的特征,使基于行为的编程成为可能,同时减化了各种设计模式的实现方式,是Java有史以来最重要的更新.但是Android上, ...
- Java开发中的23种设计模式详解
[放弃了原文访问者模式的Demo,自己写了一个新使用场景的Demo,加上了自己的理解] [源码地址:https://github.com/leon66666/DesignPattern] 一.设计模式 ...
- 总结iOS开发中的断点续传那些事儿
前言 断点续传概述 断点续传就是从文件赏赐中断的地方重新开始下载或者上传数据,而不是从头文件开始.当下载大文件的时候,如果没有实现断点续传功能,那么每次出现异常或者用户主动的暂停,都会从头下载,这样很 ...
- 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践
提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...
- C#开发中使用配置文件对象简化配置的本地保存
C#开发中使用配置文件对象简化配置的本地保存 0x00 起因 程序的核心是数据和逻辑,开发过程中免不了要对操作的数据进行设置,而有些数据在程序执行过程中被用户或程序做出的修改是应该保存下来的,这样程序 ...
- iOS开发中静态库之".framework静态库"的制作及使用篇
iOS开发中静态库之".framework静态库"的制作及使用篇 .framework静态库支持OC和swift .a静态库如何制作可参照上一篇: iOS开发中静态库之" ...
随机推荐
- BZOJ 1878 HH的项链(树状数组)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1878 题意:给出一个数列,每次询问区间[L,R]中有多少个不同的数字? 思路: (1)记 ...
- php关于return的关键字
使用return关键字可以使函数返回值,可以返回包括数组和对象的任意类型,如果省略了 return,则默认返回值为 NULL. function add($a) { return $a+1; } $b ...
- datagridview中combobox类型的cell选中一个下拉列表之后,立即生效的事件
public event EventHandler CurrentCellDirtyStateChanged 当单元格的内容已更改,但更改尚未保存时,该单元格将标记为已修改. 此事件通常会在以下情况下 ...
- 如何实现wpf的多国语言
http://www.cnblogs.com/horan/archive/2012/04/20/wpf-multilanguage.html 4.0版本的locbaml http://michaels ...
- 【转】在eclipse上使用Git
在eclipse上安装好git插件后,进行操作 安装好后,进行,一个简单配置,填入我们的用户名和邮箱 >>Preferences>Team>Git>Configurati ...
- POJ 2528 (线段树 离散化) Mayor's posters
离散化其实就是把所有端点放在一起,然后排序去个重就好了. 比如说去重以后的端点个数为m,那这m个点就构成m-1个小区间.然后给这m-1个小区间编号1~m-1,再用线段树来做就行了. 具体思路是,从最后 ...
- HDU 1372 (搜索方向稍有改变) Knight Moves
其实手写模拟一个队列也挺简单的,尤其是熟练以后. 尼玛,这题欺负我不懂国际象棋,后来百度了下,国际象棋里骑士的走法就是中国象棋里面的马 所以搜索就有八个方向 对了注意初始化标记数组的时候,不要把起点标 ...
- 用AngularJS开发的过程中如何查看Scope内容
scope的继承就好比JS的原型链继承,深入理解Scope:http://www.lovelucy.info/understanding-scopes-in-angularjs.html 通过查看官网 ...
- android系统掉电保护
/************************************************************************ * android系统掉电保护 * 说明: * An ...
- JS面向对象组件(四) -- 面向对象的继承
什么是继承 •在原有对象的基础上,略作修改,得到一个新的对象 •不影响原有对象的功能 //父类 createPerson function createPerson(name,sex){ this.n ...