看板 Flash 關於我們 聯絡資訊
最近在寫的專案上,要用到rotationY與z軸和x軸的翻轉, 寫一個漂亮的翻轉動畫是沒有問題, 但是問題是如果翻轉的對象是一個內容物豐富的元件, 則電腦CPU效能消耗就會居高不下, 我本來以為是我的元件內的子元件在翻轉後, 有些事件會反覆被觸發, 但是我把以前的專案拿來做翻轉, 都依樣會面臨這種問題, 但是假如我要翻轉的元件,是比較單純的元件(內容物較少), 擇效能則會在翻轉完畢後獲得釋放, 不知道有沒有人知道這是什麼問題呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.126.200.189
cjcat2266:render複雜的東西本來就比較吃資源啊 06/25 10:21
evileva:但是翻轉完後為什麼效能不會被釋放呢? 06/25 10:22
cjcat2266:你翻轉的東西是否本身有動畫? 06/25 10:26
cjcat2266:如果本身會一直改變外觀,就會一直重複render 06/25 10:27
cjcat2266:3D render跟2D render效能是差很多的 06/25 10:27
cjcat2266:因為3D render會強制把元件暫存成點陣圖 06/25 10:27
cjcat2266:對於面積大或者複雜的物件來說,這個動作超級吃資源 06/25 10:28
evileva:我知道3D翻轉很耗效能 06/25 10:47
evileva:但是真的不太清楚翻轉完後,效能被占用到哪邊去了ORZy 06/25 10:47
cjcat2266:所以我才問你翻轉的元件有沒有動畫啊 06/25 11:10
cjcat2266:就算不繼續3D翻轉,只要元件外觀有變動,就會重新render 06/25 11:11
cjcat2266:除非你設定Transform3D.matrix3D = null 06/25 11:12
cjcat2266:否則每次更新外關都會繼續以3D方式render 06/25 11:12
cjcat2266:就算把rotationXYZ都轉回0度也一樣 06/25 11:12
evileva:元件內是有動畫ORZ 06/25 11:15
aquarianboy:附個範例如何? 06/25 11:24
ben0209:不知道 cacheAsBitmap 有無幫助 06/25 13:02
evileva:cacheAsBitmap可以解 感謝 06/25 13:21
evileva:之前我想到的方法是不斷把當前元件拍下來 06/25 13:22
evileva:然後對拍下來的圖做旋轉 06/25 13:22
evileva:這樣在轉的時候效能會花在 拍元件+旋轉圖片上 06/25 13:23
evileva:但是還是直接用cacheAsBitmap 06/25 13:23
evileva:我錯了 cacheAsBitmap不能解XD 06/25 13:33
cjcat2266:3D變形會強制cacheAsBitmap,所以沒差 06/25 13:51
cjcat2266:對效能最有利的解法就是拍照,也就是所謂的caching 06/25 13:52
cjcat2266:缺點是互動性就沒了 06/25 13:52