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

How to Calculate Scale Factor if Screen Resolution Will Change in AS3

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

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

现在我把屏幕分辨率改成800*600,

那么我将如何计算我的对象的变化的scaleX和scaleY。

我正在使用以下公式计算 changed/updated 比例因子:

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

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

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

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

要计算轴的比例,您只需考虑屏幕上该轴的值。所以要么 X(宽度)要么 Y(高度),但不能两者兼而有之。另外,我会使用比例为 1 的屏幕宽度和高度作为参考值。这将使计算新比例更容易。你的情况:

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

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