課程
/前端開發
/JavaScript
/JS動畫效果
求問為什么把flag=true放在定時器里面就沒事了????
2016-11-14
源自:JS動畫效果 7-1
正在回答
框架剛開始設計的時候,只能改變對象的單一屬性。后來,框架進行了擴展,目的是可以同時改變多個屬性。在引入flag之前,我們發現在停止計時器的時候,有一行代碼是“clearInterval()”清除定時器的操作。這樣就引入了一個bug。各個屬性不一定同時可以到達設定的改變值,可能第一個屬性到達時,第二個屬性還在變化中,先到達的屬性觸發清除了定時器,導致了還沒到達的屬性值計時停止。所以,出現了Bug.
為了解決這個問題,使用一個變量flag來標示所有的變量是否都變化結束。如果變化結束,就觸發清除定時器的操作。這個思想有點像信號量。你可以回去再仔細看看。
Carpe_Diem_9 提問者
舉報
通過本課程JS動畫的學習,從簡單動畫開始,逐步深入各種動畫框架封裝
2 回答兩個變量的位置問題
1 回答關于flag=true的問題
1 回答關于 聲明變量var timer =null 的位置問題
3 回答函數的位置
2 回答發現一個錯誤,變量flag放置位置的問題,不是很懂
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-11-15
框架剛開始設計的時候,只能改變對象的單一屬性。后來,框架進行了擴展,目的是可以同時改變多個屬性。在引入flag之前,我們發現在停止計時器的時候,有一行代碼是“clearInterval()”清除定時器的操作。這樣就引入了一個bug。各個屬性不一定同時可以到達設定的改變值,可能第一個屬性到達時,第二個屬性還在變化中,先到達的屬性觸發清除了定時器,導致了還沒到達的屬性值計時停止。所以,出現了Bug.
為了解決這個問題,使用一個變量flag來標示所有的變量是否都變化結束。如果變化結束,就觸發清除定時器的操作。這個思想有點像信號量。你可以回去再仔細看看。