actionscript-3中的乘法条件不起作用

时间:2017-11-12 06:45:06

标签: actionscript-3 flash

当我尝试制作乘法条件时。它始终是错误的。你能告诉我我的错吗?感谢

var score:Number = 0;

addEventListener(Event.ENTER_FRAME, totalScore);

function totalScore(e:Event){
    if(
        to_konten1_1.visible = false &&
        to_konten1_2.visible = false &&
        to_konten1_3.visible = false &&
        to_konten1_4.visible = false &&
        to_konten1_5.visible = false &&
        score > 20){
            gotoAndStop(2);
    } else if(
        to_konten1_1.visible = false &&
        to_konten1_2.visible = false &&
        to_konten1_3.visible = false &&
        to_konten1_4.visible = false &&
        to_konten1_5.visible = false &&
        score < 20){
            gotoAndStop(3);
        }

2 个答案:

答案 0 :(得分:2)

我认为这值得解释一下。 if(条件)表达式需要条件为布尔,但不需要。相反,它会尝试按规则数量强制转换给定的表达式,以获得其布尔值。

布尔:A =&gt;甲

分配运算符“ = ”:A = B =&gt;乙

null 未定义无效:始终 false

数字 int uint :0 =&gt; false Number.NaN =&gt; false ,否则 true

字符串:“”=&gt; false ,否则 true

列表:A,B,C =&gt; C,虽然这个表达式在AS3中没有特别的意义,但它总是返回它的最后一个元素。

任何有效的数组对象功能或类实例:始终 true < /强>

因此,在您的情况下,您可以将其形式化一点:

function totalScore(e:Event):void
{
    if (!anyVisible)
    {
        if (score > 20)
        {
            gotoAndStop(2);
        }
        else if (score < 20)
        {
            gotoAndStop(3);
        }
        else // if score == 20
        {
            // Decide what to do.
        }
    }
}

function get anyVisible():Boolean
{
    var aList:Array = [to_konten1_1, to_konten1_2, to_konten1_3, to_konten1_4, to_konten1_5];

    for each (var DO:DisplayObject in aList)
    {
        if (DO.visible)
        {
            return true;
        }
    }

    return false;
}

答案 1 :(得分:2)

错误是您使用单个=进行分配,而不是使用双==进行比较。