Re: [問題] 過度使用onEnterFrame造成delay的問題?
※ 引述《wegerx (wegerx)》之銘言:
: ※ 引述《etrexetrex (ETREX)》之銘言:
: : http://student.scvs.tpc.edu.tw/~s119069/FLASH/temp/fire1.html
: : 以上是我出問題的FLASH
: : 這個FLASH是模仿煙火
: : 在畫面點一下左鍵就會產生一圈煙火
: : =
: : 請注意每一顆煙火亮點都是動態產生的影片片段
: : 為了讓每一顆煙火亮點能夠移動,我必須使用【煙火亮點i.onEnterFrame】
: : 這個事件去控制煙火亮點的位置
: : 當你在畫面上狂點左鍵時,煙火的移動速度會明顯的下降
: : 原因是CPU使用率到達100%
: : 請問除了【煙火事先做好(不計算煙火亮點的移動)】這個方法之外
: : 有沒有可能讓這個效能提升
: : 例如用 setInterval 會不會比較快之類的?
: 通常在下列幾種狀況會消耗更多的效能:
: 1.漸層色
: 2.alpha漸變
: 3.形狀曲線數太多
: 根據我的觀察,你的煙火滯留在畫面上的時間過久,
: 如果非必要還是早點從舞台上移除比較好;此外就是漸層色和alpha漸變,
: 說明文件裏都特別提到這會減低撥放效率,對於大量的圖形來說還是少用好。
: 最後是形狀曲線數,越複雜的曲線將會消耗越多的計算,
: 可以的話盡量減少曲線數。
: 那麼如何看現在的圖形有多少曲線呢?雖然我不知道有沒有直接看的方法,
: 但是可以使用修改>形狀>最佳化來減少曲線數,
: 這時面板會顯示修改前和修改後的曲線數,如此就可以知道圖形有多少曲線了。
: 順帶一提,一個圓在flash裡視為8條曲線。
我想問的是,你應該是用 Mc.Duplicate去複製這些煙火吧
上面網友有提到縮短煙火的壽命,讓他早點消失
除此之外,你消失後必須要把他移除掉。並不是看不到就表示它不存在了,場景中
是越來越多透明的Mc.instance
我的做法是給一個上限值例如x=200吧,這個x就是dup時的level
Duplicate時x++,if(x>200){x=1}
超過200點後新的點就會從level 1開始使用,位子換人坐。這樣場上的物件數目不會
超過200,確保運算速度不會被拖跨。當然,你的煙火壽命最好能在達到200前消失,
才不會明顯看到新點蓋舊點的情形。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.109.174.241
推
09/01 02:09, , 1F
09/01 02:09, 1F
→
09/01 02:13, , 2F
09/01 02:13, 2F
討論串 (同標題文章)
Flash 近期熱門文章
PTT數位生活區 即時熱門文章