[]flag的问题

经常在实例的循环里面看到一个判断(flag = !flag)?"#A52A2A":"#FFA500"
类似这种,里面的flag =!flag 这个判断有些不明白,按我之前的理解是这个三元判断,当flag不等于flag的时候执行第一个颜色,相等的时候执行第二个颜色。可是在真个实例中并未看到flag的赋值操作,也就是它从var 出来后就直接判断,判断结束后也未重新赋值,可是却达到了切换颜色的效果。求解这个判断的具体含义。
下面贴上实例中的完整代码:

(function()
{
    var Sprite = Laya.Sprite;
    var Text     = Laya.Text;
    var WebGL   = Laya.WebGL;
    var flag;
    (function()
    {
         Laya.init(1136, 640, WebGL);
             
        Laya.stage.bgColor = "#ffffff";
         
        //以500毫秒的时间间隔播放颜色切换的矩形
        Laya.timer.loop(500, this, createRect);
         
    })();
 
    function createRect()
    {
        var c = new Sprite(); 
        var color = (flag = !flag)?"#A52A2A":"#FFA500"
        c.graphics.clear();
        c.graphics.drawRect(50, 50, 300, 100, color);
        Laya.stage.addChild(c);
    }
})();
 

cuixueying

赞同来自: fantasyxl99

var flag=true;
flag=!flag;
var color=flag?"#A52A2A":"#FFA500"

要回复问题请先

商务合作
商务合作