如果屏幕分辨率在AS3中发生变化,如何计算比例因子

时间:2016-02-04 06:39:17

标签: actionscript-3 flex flex4

如果我更改了屏幕分辨率,那么我将如何计算对象的更改比例因子:

例如我的对象当前this.scaleX是0.8,this.scaleY是0.8(你知道scaleX和scaleY是Flex的属性),我当前的屏幕分辨率是1360 * 768

现在我将屏幕分辨率更改为800 * 600,

然后我将如何计算我的对象的更改的scaleX和scaleY。

我使用以下公式查找已更改/更新的比例因子:

scaleX = scaleX * (768 / 1360) * (800 / 600);

scaleY = scaleY * (768 / 1360) * (800 / 600);

但它没有给我正确的结果,

所以请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

要计算轴的比例,您只需要考虑屏幕上该轴的值。所以要么是X(宽度),要么是Y(高度),而不是两者。此外,我将以1的比例使用屏幕的宽度和高度作为参考值。这样可以更容易地计算新的比例。在你的情况下:

screenWidthAtFullScale = 1360 / 0.8
screenHeightAtFullScale = 768 / 0.8
scaleX = 800 / screenWidthAtFullScale => 0.47
scaleY = 600 / screenHeightAtFullScale => 0.625

请注意,这会扭曲您的对象。最好计算一个刻度并将其应用于X和Y轴以防止这种情况。