精華區beta Flash 關於我們 聯絡資訊
※ 引述《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