flag = false 是什么時(shí)候被重置為true的?
照著視頻的代碼實(shí)踐了一次,發(fā)現(xiàn)沒有把flag重置為true的代碼,但是最后確確實(shí)實(shí)是清除了定時(shí)器,那么,flag是什么時(shí)候被重置的呢?
另外,看到有人回答,flag應(yīng)該被聲明在定時(shí)器里面,這個(gè)是不對(duì)的。如果聲明在定時(shí)器里面,那么就會(huì)出現(xiàn)視頻中聲明flag之前的bug。
求大神解答一下。
上面的問(wèn)題好像有點(diǎn)不清晰哈,下面說(shuō)清楚一點(diǎn)。
flag=true是放在定時(shí)器外面的,對(duì)吧?定時(shí)器里面是沒有代碼把flag重置為true的,當(dāng)?shù)谝淮未a執(zhí)行到
if(icur!=json[attr]){ ????flag=false; }
這里的時(shí)候,flag就被賦值為false了,之后都沒有給flag賦值為true。
那么最后是怎么判斷到flag=true的呢?
在這里就很不明白,因?yàn)闆]有把flag重置為true的話,其實(shí)是沒辦法執(zhí)行
if(flag){ ????clearInterval(obj.timer); ????if(fn){ ????????fn(); ?????} ?}
和之后的fn函數(shù)的。
2017-08-14
看完了樓主寫的,完全沒有毛病,教程代碼確實(shí)有BUG,不過(guò)既然因?yàn)?speed?=?(json[attr]?-?icur)/8 語(yǔ)句, 當(dāng) speed 為0時(shí)就能自己停止,為什么教程還要加一大堆檢測(cè)停止的代碼,我發(fā)現(xiàn)把那一大段去掉之后功能正常啊,不知道我有沒有想錯(cuò)?
2017-05-16
把flag放外面,最后速度為0,動(dòng)畫是停止了,但是代碼一直在運(yùn)行,無(wú)限循環(huán)的運(yùn)行,if(flag)永遠(yuǎn)到不了
2017-04-13
沒仔細(xì)看,原來(lái)你的代碼已經(jīng)解決了。。
2017-04-13
一、var flag = true; 是放在定時(shí)器外面的。
二、每次啟動(dòng)定時(shí)器強(qiáng)制?flag = true。
三、在for循環(huán)外面,再次判斷flag。
2017-04-13
還需要把
if(flag){
????????????clearInterval(obj.timer);
????????????if(fn){
????????????????fn();
????????????}
這一段放在for 循環(huán)外面。。.
-------------手動(dòng)分割------------------
樓主,你看看有木有bug,或者你有其他解決方案了沒有?
2017-04-13
我去,不行。。
2017-03-27
2017-03-27
經(jīng)過(guò)多番測(cè)試,視頻中的完美運(yùn)動(dòng)代碼存在bug,這個(gè)框架只可以實(shí)現(xiàn)同步動(dòng)畫,不可以實(shí)現(xiàn)鏈?zhǔn)絼?dòng)畫。
同步動(dòng)畫最后會(huì)停止,不是因?yàn)?/p>
而是代碼中的
這一部分等于0了,也就是說(shuō),動(dòng)畫不再變化了,看起來(lái)就好像清除了定時(shí)器一樣。
如果在清除定時(shí)器的判定語(yǔ)句中加入一個(gè)測(cè)試語(yǔ)句,可以發(fā)現(xiàn),第一次鼠標(biāo)移入目標(biāo)的時(shí)候,第一次執(zhí)行到這個(gè)動(dòng)畫,是不會(huì)執(zhí)行到測(cè)試的語(yǔ)句的,說(shuō)明定時(shí)器的判定語(yǔ)句并未執(zhí)行。
如果沒有onmouseout的動(dòng)畫,那么,第二次鼠標(biāo)移進(jìn)去的時(shí)候,在執(zhí)行動(dòng)畫之前,都滿足
也就是說(shuō)speed在第二次執(zhí)行動(dòng)畫的時(shí)候,一直是0,那么這個(gè)時(shí)候,下面這個(gè)判定就沒有執(zhí)行了
于是flag就是第二次執(zhí)行動(dòng)畫的初始值,也就是:
自然而然的,后面的這部分代碼就能夠執(zhí)行了。
上面講得比較啰嗦,不知道大家有沒有看懂,沒看懂的可以照著一步一步去嘗試一下,會(huì)得到我說(shuō)的這個(gè)結(jié)果的
2017-03-26
首先我終于找到跟我一樣認(rèn)為flag是放在定時(shí)器外的人了,這一節(jié)課里面用的json[attr]不是target,json[attr]就相當(dāng)于json.attr; 源碼:
我資質(zhì)較淺,我以個(gè)人名義說(shuō)說(shuō)我的想法,
var flag=true;這是放在計(jì)時(shí)器外的對(duì)吧,當(dāng)遇到if(itur != json[attr] )語(yǔ)句的時(shí)候,就把flag這個(gè)全局變量設(shè)為false, 如果if(itur != json[attr] )不成立的時(shí)候,if( flag ){}這個(gè)語(yǔ)句就會(huì)找到全局變量,所以這就是為什么要放在計(jì)時(shí)器外
2017-03-26
評(píng)論在一樓的那位大哥已經(jīng)誤導(dǎo)了大家,flag放在計(jì)時(shí)器內(nèi)會(huì)出現(xiàn)bug.
你的問(wèn)題我有點(diǎn)看不明白啊哥們,說(shuō)的明白些