[]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);
}
})();
类似这种,里面的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);
}
})();
要回复问题请先登录
1 个回复
cuixueying
赞同来自: fantasyxl99
flag=!flag;
var color=flag?"#A52A2A":"#FFA500"