Re: [問題] 請問Flash Player 的 使用硬體加速...
因為我想讓自製的滑鼠游標精確的追蹤滑鼠座標
所以我用framerate = 1000
我用Timer設定delay=1 , 或是onEnterFrame時,函數都設這樣:
var t:uint = 0;
function XX(e){
自製cursor.x = mouseX;
自製cursor.y = mouseY;
if(t==20){
emitter.step();
t=0;
}
t++;
}
我場景是用1024x768,可是只要用全螢幕,滑鼠游標移動很順,particle就超級lag....
然後我想說,可能是因為移動游標和粒子的程式放在一起的關係吧,所以我就分開成兩個
function,可是一樣會lag(無論這兩個function是不是皆由Timer或onEnterFrame呼叫)
後來又想說會不會是cacheAsBitmap或是粒子太多的問題,結果都不是
(就算粒子只有兩三個一樣會lag)
然後前幾天我有寫了一個PreciseTimer
用這個呼叫兩個函式分別控制滑鼠和粒子,lag情形減緩很多,我也不知道為什麼= =
其實這個Timer比較像是manager,用
addCall(name, startTime, endTime, function, times) 方法
[在startTime開始呼叫, endTime結束呼叫, 中間呼叫 times次 (呼叫function)]
時間設定都是用毫秒, name是讓你可以在之後remove
原理也是用內建Timer,不過delay=1
他會找到每個call在某個時間區間內呼叫function times次,傳給function一個百分比值
因為內建Timer不是準時的,所以我傳回百分比值是目前呼叫到哪裡了(這是精確的,誤差在
很複雜的function下才會lag 200毫秒左右, 除非有個迴圈很長,之前測試有到誤差1秒)
(相信大家都知道內建Timer實在是有夠不準的,誤差好幾十秒很平常= =)
我自己測試
addCall("test1",0,100000,testFun1, 40000)
addCall("test2",2300,6000,testFun2, 5000)
addCall("test3",60000,110000, testFun3, 200)
全部一起執行,場景甚麼都沒有,沒有複雜的函式
每次呼叫函式的誤差不會超過50毫秒(通常都是10毫秒內)
(重點是取得百分比值進行處理,不然呼叫函式的時間也有幾十毫秒的誤差)
不過還在開發中....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.99.60.201
→
09/04 14:06, , 1F
09/04 14:06, 1F
→
09/04 14:12, , 2F
09/04 14:12, 2F
→
09/04 14:18, , 3F
09/04 14:18, 3F
※ 編輯: Jerrynet 來自: 122.99.60.201 (09/04 14:19)
推
09/05 02:14, , 4F
09/05 02:14, 4F
→
09/05 02:14, , 5F
09/05 02:14, 5F
→
09/05 02:15, , 6F
09/05 02:15, 6F
→
09/05 11:06, , 7F
09/05 11:06, 7F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
Flash 近期熱門文章
PTT數位生活區 即時熱門文章