如何将对象缩放到一定的大小?

时间:2013-11-25 21:04:31

标签: actionscript-3 scale scaling

我有关于缩放对象的问题。我有一个函数来计算一组对象的目标比例。比例取决于对象的数量。同时我希望对象具有最大比例。我希望对象不超过55像素宽。所以我将55除以对象宽度以获得最大比例。所以我提出了以下功能:

private function setScale():Number
{
//The 6 is just a random number I chose.
    scale = 6/amountObjects;
    if (scale >= 55/averageObjectWidth)
    {
        scale = 55/averageObjectWidth;
    }
    return scale;
}

我遇到的问题是,当我多次执行此功能时,我最终得到了错误的比例。我将在以下示例中说明这一点:

我有十个物体,因此比例为0.6。 平均物体宽度为138,因此最大比例约为0.4。 所以我会用这个比例因子缩放对象。新的宽度将是55。 然后当对象数量发生变化时,我再次运行此功能。现在有9个对象,基于对象数量的新比例变为约0.7。现在这是泡菜,因为当我做scale = 55/averageObjectWidth时新对象宽度是55 ...我得到1!这意味着它将跳过if语句并返回0.7的缩放。

我想要做的就是让这个类根据对象的数量返回一个比例,它仍然在55的宽度之下。

我希望我很清楚,谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

我认为这些物品是精灵是否正确? 在这种情况下,当您设置精灵的比例/宽度/高度时,您正在设置其比例。因此,要获得'真实'/未缩放的宽度,您可以使用sprite.width / sprite.scaleX(或将比例设置回1,但您必须再次将其设置回来,这可能会导致奇怪的图形故障)