Re: [問題] flash一問

看板WindowsPhone作者 (阿信163)時間12年前 (2012/04/04 04:21), 編輯推噓7(7017)
留言24則, 3人參與, 最新討論串4/5 (看更多)
其實 Flash 要說它比較耗資源的確是沒有錯 不過可以從它本身層面跟開發者(含設計)的角度來探討 首先把圖形粗分為點陣圖跟向量圖 點陣圖就是一張圖,若瀏覽器檢視比例放大縮小會失真(此失真非指因壓縮而導致) 而向量圖則是記錄錨點,開啟後再由cpu運算並不斷重繪,不失真 點陣圖的缺點是比較耗容量,讀取比較久 (同樣一個單純黑色圓形,png可能要5k,而flash畫的swf可能1k不到) 優點是點陣圖比較不耗 cpu 運算(當然如果圖片很大又快速切換的時候cpu也會飆) 向量圖的話優點是容量小 但是缺點是需用cpu計算 那在開發上會有什麼問題呢? 假設按了鍵盤左右鍵會播放一個人物跑步的動畫 然後那個人物雖然在畫面上只會佔大概寬30px高70px,但設計卻用了2000個錨點 在 HTML5 + Javascript 的情況下 沒有差,因為會把人物每個動作製成圖片弄成圖表(SpriteSheet) 再用程式指定按下右鍵後,以0.1秒的速度從圖表第 1 張 ~ 第 3 張在canvas重複播放 在 Flash 上 則是改成變換影格,並且由cpu不斷去針對那2000個錨點不斷的做運算和重繪 而程式方面(下面以AS3來說) 今天你把一個物件 new 到場景上 並且給它事件偵聽,但當你把它 removeChild 掉,事件還會留著 更不用說有時候用了 ENTER_FRAME(會依據設定的FPS來做偵測) 假設 fps 設定 24,則 1 秒鐘會偵測 24 次,設定 60 則是 1 秒偵測 60 次 而最恐怖的原罪來了,flash 做些小東西其實真的還挺方便的 但方便相對也就代表容易讓更多人來開發,但開發者的心態和專業度你永遠不知 一、習慣不良 像上面說的,因為人物很小,其實設計上不用到細節非常的多 甚至可能不到100個錨點就能解決,但卻在 Illustrator 把人放超大在畫 結果超爆走 或是有些人寫 flash 程式,會指定監聽,卻不會把它移除 不斷累積不斷累積下來影響深遠 flash場景可能才 1000*620,要匯一張圖進來當背景 結果卻匯了一張 3xxx * 2xxx 的圖,沒有事先縮成實際需要使用的大小 然後到 flash 裡面才縮,這個非常恐怖 就算是用 jQery 套一個輪播的套件 可是卻輪播 3xxx * 2xxx 的圖,用css硬縮大小 非常痛非常痛 二、自我要求度不足 除了程式邏輯上的不足外,對於程式語言也不夠了解 同樣都是陣列,Array 跟 Vector 使用上有什麼不同 不預設陣列大小會不會造成效能影響,影響多少 內建的排序效能跟自己寫的效能哪個好 按鈕、影片片段、圖像元件差別在哪,什麼時候用哪個比較恰當 三、懶得學習新知 當你今天畫了遊戲用場景或網頁背景之類 其實大部份沒什麼在動,flash 後來有一個叫作「快取成點陣圖」的功能 可以把那部份設定成點陣圖顯示,以避免cpu不斷運算 但是有些人舊版用習慣了,改成新版也不會去瞭解新版有什麼好玩意 依舊一招走天下 四、方便啊方便 一些濾鏡特效能夠方便使用,參數調一調就好 而濾鏡是會吃效能的 一般在做網頁的時候,要嘛是調用css或是圖片切換展現一些效果 如果用javascript是程式設計師讓按鈕飛來飛去變來變去 效能端看程式設計師的能力 但是在flash裡,設計也可以一展長才 這時候就要看設計是不是也具有對flash動畫的體認和瞭解做出更不耗效能的動畫 要注意程式跟設計兩方面的能力,危險度加倍 五、唉呀,反正我電腦跑得順就好了嘛 這一點最嚴重,有這一點的人上面4點就全包了 尤其應該有很多大大身邊有人接觸過 flash 會覺得像樂高一樣隨便疊一疊就會有東西出來 不會去考慮要怎麼樣可以更順暢更漂亮 當別人問:「怎麼這麼 lag」的時候,就會回「啊就 flash 啊沒辦法」 完全沒想過可能自己本身也有問題 就像有些人會說「VB 執行速度比 C 慢啦~」 有人聽了之後用 VB 寫了個踩地雷之後,發現把周遭沒有炸彈的格子開啟速度很慢 用肉眼都看的出來是慢慢跑,於是就說「果然VB很慢啊」一樣的道理 總結: 若都是很厲害的開發者,Flash絕對會比HTML5耗資源,因為它是向量的 就算都在裡面改成用點陣圖呈現,但中間多了一層 player,勢必會多花一點效能 但之後若許多人投入HTML5之中,樹多必有枯枝,人多必有?? 有可能也會像現在 flash 的囧境一般 以下放上兩個 HTML5 的連結: 多方塊旋轉:http://voxelrain.appspot.com/ 遊戲:http://people.opera.com/emoller/gremlins/ HTML5 的發展,一方面也要看往後各瀏覽器對 Javascript 和 CSS3 的支援度 以及開發上的一致性 不過手機上有沒有flash我倒覺得還好 平板的話還是希望能有 flash,比較不用擔心會有純 flash 網站看不到QQ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.94.82

04/04 10:40, , 1F
推一個 補個HTML5的網站
04/04 10:40, 1F

04/04 10:41, , 3F
另外其實美工和程式開發常常是不同人負責的 很難一個人同
04/04 10:41, 3F

04/04 10:42, , 4F
時負責兩件事情 也會造成效能上的問題XD 美工可能覺得怎樣
04/04 10:42, 4F

04/04 10:43, , 5F
最好看 只要求程式設計師做出他想要的東西~卻忽略了程式
04/04 10:43, 5F

04/04 10:43, , 6F
設計師所需的相關概念~
04/04 10:43, 6F

04/04 12:27, , 7F
試看看flash builder 它本身就有記憶体沒放好 不光只有
04/04 12:27, 7F

04/04 12:27, , 8F
向量圖點陣圖之別 另外現今flash 已提供gpu加速 但仍
04/04 12:27, 8F

04/04 12:27, , 9F
然有慢 flash 很多東西特別是釋放很有問題 innerfunc
04/04 12:27, 9F

04/04 12:27, , 10F
ion就罡一例
04/04 12:27, 10F

04/04 12:35, , 11F
而且大形程式 很多時候就卡在資源 它有很多資源照adobe
04/04 12:35, 11F

04/04 12:35, , 12F
給的寫法都會不放了 這在開發者論壇不算少見的問題 有
04/04 12:35, 12F

04/04 12:35, , 13F
時候程式功力再高 c\c++出生都不見得救得回
04/04 12:35, 13F

04/04 12:38, , 14F
相比之下 向量點陣的問題算很小 特別是用flash 寫遊戲
04/04 12:38, 14F

04/04 12:38, , 15F
的公司來說基本了
04/04 12:38, 15F

04/04 12:48, , 16F
另外vb的確比c慢多了 要寫很大形程式 就會非常明顯
04/04 12:48, 16F

04/04 12:48, , 17F
大形遊戲都是用c++寫不是沒有理由的
04/04 12:48, 17F

04/04 12:49, , 18F
順便一說 flash寫3d下 不會有人用向量圖 因為沒意義
04/04 12:49, 18F

04/04 12:49, , 19F
3d本身就極耗資源了…
04/04 12:49, 19F

04/04 12:52, , 20F
還有一點 多數精細圖 人肉眼都看得出是不是向量了…
04/04 12:52, 20F

04/04 12:53, , 21F
有一陣子paper是很多把點陣圖轉向量圖 不過實用上 除非
04/04 12:53, 21F

04/04 12:54, , 22F
是為了其他運算 不然真的不太實用 …
04/04 12:54, 22F

04/04 13:06, , 23F
長知識推!!
04/04 13:06, 23F

04/04 16:50, , 24F
點陣轉向量真的是有和沒有一樣XD
04/04 16:50, 24F
文章代碼(AID): #1FUrkrLw (WindowsPhone)
討論串 (同標題文章)
文章代碼(AID): #1FUrkrLw (WindowsPhone)