作者cjcat2266 (CJ Cat)
看板Flash
標題Re: [情報] AS3 多執行緒
時間Mon Dec 7 17:53:14 2009
今天總算有機會嘗試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
推 kuwood:雖然還要一段時間才可能碰到這個...推推推XD 12/07 19:14
推 Angelliya:推薦這篇 :] 12/07 19:19
推 etrexetrex:超強 12/07 20:15
推 wljimkk:os? 排班? 先來先做?? 12/08 02:57
→ wljimkk:沒想到系統程式的概念還可以用到FLASH上... 12/08 02:58
推 metalalive:推McCauley , 不過我應該是我懶,還是絕得那有點麻煩:p 12/10 22:45
→ cjcat2266:除了這招,我也想不出有什麼方法可以降CPU消耗量了... 12/10 23:28
→ GGPlay:先用ByteArray壓縮儲存XML可以優化一下嗎 12/13 13:46
→ cjcat2266:那會需要Flex SDK的[Embed] tag 12/13 16:12
→ cjcat2266:不過還是得透過XML() method將String轉成XML 12/13 16:13
→ GGPlay:不過還有一種思路,這是在外國Flash的blog看來的,提供下當 12/14 13:37
→ GGPlay:當作思考,當然是麻煩點,但是可以節省比較多流量,就是把 12/14 13:38
→ GGPlay:XML存進ByteArray,壓縮後再寫入local,另外再做一個編輯器 12/14 13:40
→ GGPlay:可以讀取二位的xml然後也提供儲存到本地的方法。詳情:blog 12/14 13:41
→ GGPlay:希望對你們的project有幫助^^ 12/14 13:50
推 klit1987:推 12/24 06:30