使用starling扩展Android设备会导致一些布局问题
我使用的是第三种多分辨率技术,如本文所述 为了确定比例因子和舞台大小,我使用了Jeff最初编写的这段代码:使用starling扩展Android设备会导致一些布局问题,android,actionscript-3,starling-framework,Android,Actionscript 3,Starling Framework,我使用的是第三种多分辨率技术,如本文所述 为了确定比例因子和舞台大小,我使用了Jeff最初编写的这段代码: if (Capabilities.screenDPI >= 200) { if (Capabilities.screenDPI >= 280) { AssetFactory.contentScaleFactor = 2; } else {
if (Capabilities.screenDPI >= 200) {
if (Capabilities.screenDPI >= 280) {
AssetFactory.contentScaleFactor = 2;
}
else {
AssetFactory.contentScaleFactor = 1.5;
}
}
else {
AssetFactory.contentScaleFactor = 1;
}
var mViewPort:Rectangle = new Rectangle(0, 0, stage.fullScreenWidth, stage.fullScreenHeight);
mStarling = new Starling(Startup, stage,mViewPort);
mStarling.stage.stageWidth = stage.fullScreenWidth / AssetFactory.contentScaleFactor;
mStarling.stage.stageHeight = stage.fullScreenHeight / AssetFactory.contentScaleFactor;
然后,我使用这个比例因子来确定需要选择哪些规模的资产
所以现在,我有一个背景,我把它延伸到舞台的宽度和大小。当我使用大多数设备进行测试时,这项技术非常有效,但我们有Barnes和Noble Nook Color等设备
该设备的分辨率为600x1024,分辨率为170 dpi。这意味着它将选择最小的资产(320x480)并将其扩展到600x1024。这当然是皮克斯化的。关于如何克服这个问题有什么想法吗
我还附加了一个测试应用程序,详细显示了问题设置最大刻度大小如何?如果上述计算的结论使您的规模大于
2
,请使用更大的资产来降低规模比率
你的计算只计算屏幕dpi,试着将它们与屏幕分辨率结合起来。到目前为止,对我最有效的方法是根本不缩放Starling的视口。它应始终保持基本尺寸(320x480) 然后你有一个关于纹理应该有多大的比例因子。这是椋鸟在创建纹理时的一个固有特征——通过比例因子。 这意味着,如果你的舞台是640x960,你的比例因子将是2。您的图像(位图对象)的实际屏幕大小为320x480(全屏,舞台大小为1:1),但其纹理(加载的资源位图数据)将是两倍大(640x960,手机大小为1:1) 为了便于理解,Starling的舞台(320x480)将按比例放大,以适合您手机的分辨率(320->640)。但您的图像将被缩小以适应舞台(640->320)。所以你可以得到完全正常的图像 这有助于保持舞台的固定大小。这是非常有用的,因为否则它会很难定位对象-如果你想要的对象是在中间,它有时是160,有时是320,等等,这意味着你总是必须设置计算的位置/大小,这是一个过载。 希望有帮助 编辑:刚刚想起一个我用来确定我的主要规模和资产比率的网站: