createjs初学-关于Ticker
tick本來的意思是鐘表的滴答聲,在createjs中的Ticker當然就是于時間相關的。
Ticker是一個靜態類,提供了好多靜態方法和屬性,不要去實例化它。
在API文檔中對Ticker的介紹是它是一個集中的間隔廣播,偵聽tick時間后再設定的時間間隔會調用偵聽函數。
但是我覺著在Beginning HTML5 Games with CreateJS這本書中的解釋更好。Ticker類為游戲開發提供了一個主要的定時類。它主要的目的就是把stage渲染的工作集中起來,也就是說定時調用stage.update()這個方法。Ticker設置的頻率也就是游戲的幀數了。
要注意一點就是在CPU使用率過高時,Ticker可能會比設定的要慢。這個很容易理解。
Ticker的使用如下,Ticker靜態類偵聽tick事件,然后設置好相應的函數就行
createjs.Ticker.addEventListener("tick", handleTick); function handleTick(event) {//todo }對于更新舞臺來說就是,可以先設置一個幀頻
createjs.Ticker.setFPS(30); createjs.Ticker.addEventListener("tick", handleTick); function handleTick(event) {stage.update(); }也可以這樣寫
createjs.Ticker.setFPS(30); createjs.Ticker.addEventListener("tick",stage);因為addEventListener這個方法是這樣的
addEventListener (type listener [useCapture] )其中參數listener可以是一個方法,也可以是一個對象,這個對象里面有handleEvent這個方法,來出來偵聽事件。
而Stage類里面就有handleEvent這個方法,而且就是用來處理tick事件的,看Stage里面的源碼就知道
tick事件的event
function handleTick(event) {//todo }在偵聽函數中event的數據
1.event.paused 表示ticker是否處于暫停狀態
2.event.delta 在上一次tick事件之后到這次事件的時間間隔,以毫秒為單位。
3.event.time 在Ticker被初始化以后的時間總和,以毫秒為單位。
4.event.runTime 在Ticker被初始化以后沒有暫停的時間總和,以毫秒為單位。
Ticker類的屬性
1.interval 這個就是用來設置間隔的時間,以毫秒為單位。默認為50。
在RAF模式下,這個參數就會被忽略。
2.framerate 這個參數用來直接設置fps,其實內部實現就是設置interval
interval=1000/framerate。
3.maxDelta 指定tick事件中的delta最大值。文檔中推薦這個值為interval的兩倍。
4.paused 在ticker暫停時,所有的偵聽器仍然會接受到tick事件,但是事件中的paused會是true;
5.timingMode指定tick的timing模式。一共有三種模式,TIMEOUT、RAF和RAF_SYNCHEN。
(1)TIMEOUT,這種模式下使用的就是setTimeOut這個方法實現的。是timingMode的默認模式。
(2)RAF 在這個模式下使用requestAnimationFrame,完全忽略Ticker的幀頻。如果requestAnimationFrame API不支持的話就用TIMEOUT模式。
(3)RAF_SYNCHEN 在這個模式下使用requestAnimationFrame,但是試圖與ticker的幀頻同步。如果requestAnimationFrame API不支持的話就用TIMEOUT模式。
Ticker類的方法
1.getTime ([runTime=false] )
返回Ticker初始化以后的總時間,如果沒有初始化就返回-1。(初始化時在添加第一個偵聽時進行的)。參數runTime表示返回的是否包含暫停時間,true的話只有tick運行的時間,false的話是所有時間。
2.getEventTime (runTime ) 和getTime差不多,但是返回的是最近一次tick事件的時間。
3.getMeasuredFPS() 獲得當前的實際幀頻。
4.getMeasuredTickTime 獲得平均一次tick所有的時間,大概就是在這一次tick所用的時間。
5.getTicks (pauseable) 獲得初始化后所有tick的次數 參數表明是否包含暫停的tick
6.reset() 停止Ticker并且移除所有的偵聽。
總結
以上是生活随笔為你收集整理的createjs初学-关于Ticker的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 图片压缩,bitmap压
- 下一篇: AI专业教您保姆级在暗影精灵8Windo