關(guān)于flag問(wèn)題
不知道大家有沒有遇到,如果像老師寫的flag就是一開始給個(gè)初始值為true,在循環(huán)里卻沒有去設(shè)置flag = true,導(dǎo)致定時(shí)器沒有關(guān)閉,因?yàn)閒lag在循環(huán)后就一直為false,在這種情況下,同時(shí)運(yùn)動(dòng)居然能夠完美的運(yùn)行成功,單身鏈?zhǔn)絼?dòng)畫卻失效了。但是如果在for(var attr in json)里添加?
if( icur != json[attr]){?
????????flag = false;
}else{
????flag = true;
}此時(shí)定時(shí)器可以關(guān)閉了,鏈?zhǔn)絼?dòng)畫也可以執(zhí)行,但是同時(shí)運(yùn)動(dòng)卻無(wú)法達(dá)到效果了,請(qǐng)問(wèn)有人知道解決辦法嗎?????!
2015-09-05
嗯 上面代碼確實(shí)對(duì)著 主要是老師將flag的定義寫錯(cuò)位置了
2015-09-05
每隔30毫秒,在計(jì)時(shí)器里面都會(huì)先將flag值設(shè)置為真,然后再去遍歷時(shí)候還有未到達(dá)itarget的屬性,如果都完成。flag就還是真,終止計(jì)時(shí)器。。。結(jié)束戰(zhàn)斗。
2015-09-04
function startMove (obj,json,fn) {
clearInterval(obj.timer);
obj.timer = setInterval(function ?() {
var flag = true;
for(var attr in json){
// 1.取當(dāng)前的值
var icur = 0;
if(attr == 'opacity'){
icur = Math.round(parseFloat(getStyle(obj,attr))*100);//Math.round四舍五入取整目的是為了解決計(jì)算機(jī)存儲(chǔ)小數(shù)不精確問(wèn)題
}else{
icur = parseInt(getStyle(obj,attr));
}
// 2.算速度
var speed = (json[attr] -icur)/8;
speed = speed>0?Math.ceil(speed):Math.floor(speed);
// 3.檢測(cè)停止
if (icur != json[attr])?
{
flag = false;
if(attr == 'opacity'){
obj.style.filter = 'alpha(opacity:' + icur + speed + ')';
obj.style.opacity = (icur + speed) / 100;
}else{
obj.style[attr] = icur + speed + 'px';
};
}
}
if (flag == true) {
clearInterval(obj.timer);
if (fn) {
fn();
};
};
},30);
}
2015-08-26
我也疑惑,這個(gè)flag經(jīng)過(guò)遍歷后就一直為false了啊?。?!