Re: [問題] 過度使用onEnterFrame造成delay的問題?

看板Flash作者 (隨便啦)時間19年前 (2006/08/29 10:01), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串3/5 (看更多)
※ 引述《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
其實如果MC有所謂的深度層級問題 消失用removeMovieClipt()
09/01 02:09, 1F

09/01 02:13, , 2F
就不會覆蓋其他MC 只不過depths有上限 超過就會出問題
09/01 02:13, 2F
文章代碼(AID): #14yv_wXz (Flash)
討論串 (同標題文章)
文章代碼(AID): #14yv_wXz (Flash)