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
Actionscript 3 如何将对象缩放到特定大小?_Actionscript 3_Scale_Scaling - Fatal编程技术网

Actionscript 3 如何将对象缩放到特定大小?

Actionscript 3 如何将对象缩放到特定大小?,actionscript-3,scale,scaling,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/averageObj

我有一个关于缩放对象的问题。我有一个计算一组对象的目标比例的函数。比例取决于对象的数量。同时,我希望对象具有最大比例。我希望对象的宽度不超过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。现在是pickle,因为当我执行
scale=55/averageObjectWidth
时,新对象的宽度是55。。。我得到1分!这意味着它将跳过if语句并返回0.7的刻度

我所要做的就是让这个类返回一个基于对象数量的标尺,这个标尺的宽度仍然小于55


我希望我说得够清楚了,谢谢你抽出时间。

我假设这些物体是精灵,对吗?

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

55像素/对象,或所有对象的组合?哦,抱歉,每个对象的像素数为55像素。