今天總算有機會嘗試AS3的非同步運算(Asynchronous Computation)了~
http://cjcat.blogspot.com/2009/12/asynchronous-computation.html
我學弟修了一門"Social Networks"的課
他打算用AS3載入一個有80000個node的graph的XML資料
解析之後用自己的class來把這個graph建構出來
結果他遭遇到了Flash Player "一個frame佔用15秒即死當" 的特性
然後我也忘記這個特性怎麼規避
不過就算能夠讓Flash Player過了15秒還繼續執行
一個frame佔用超過15秒絕對不是好事
因為開工作管理員一看,就會發現CPU佔用100%
於是我想起了Trevor McCauley寫的AS3非同步運算教學
就來試著用這個方法來解決學弟的問題
簡單來說,每個frame我只分配給他16毫秒(約相當於60fps)
當時間到了,迴圈就自動跳出,結束這個frame,並且記錄現在的進度
下一個frame再繼續運算
這樣的話,就不會讓Flash Player的一個frame死當,也不會占用CPU資源太多
有興趣的人可以參考一下:)
--
CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓
Blog http://cjcat.blogspot.com
Gallery http://cjcat2266.deviantart.com
ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.45.161.60