日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

createjs初学-关于Ticker

發布時間:2023/12/14 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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里面的源碼就知道

p.handleEvent = function(evt) {if (evt.type == "tick") { this.update(evt); } };

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;

createjs.Ticker.addEventListener("tick", handleTick); createjs.Ticker.paused = true; function handleTick(event) {console.log(event.paused); }

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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。