Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用starling扩展Android设备会导致一些布局问题_Android_Actionscript 3_Starling Framework - Fatal编程技术网

使用starling扩展Android设备会导致一些布局问题

使用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 {

我使用的是第三种多分辨率技术,如本文所述

为了确定比例因子和舞台大小,我使用了Jeff最初编写的这段代码:

        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,等等,这意味着你总是必须设置计算的位置/大小,这是一个过载。 希望有帮助

编辑:刚刚想起一个我用来确定我的主要规模和资产比率的网站: