2013-03-26 41 views
2

爲什麼在使用過濾器時cacheAsBitmap會自動設置爲true?CacheAsBitmap和過濾器

我有一個動畫片段被繪製到舞臺的每一幀,因爲它有一個播放時間軸,它每隔一段時間就會旋轉我想將cacheAsBitmap設置爲false。但movieclip有一個將cacheAsBitmap設置爲true的drophadow-filter,這不是說我緩存每一幀都會失去很多性能嗎?

將從正在繪製的影片剪輯中移除dropshadow-filter並將其應用於其所有子項而不是解決方案嗎?

+0

看到這個:http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00001283.html#374074 – David

回答

1

從文檔:

cacheAsBitmap屬性就自動設置爲true時,你 應用過濾器,爲影片剪輯(當其filter數組不爲空)。 如果影片剪輯應用了過濾器,則即使將該屬性設置爲false,cacheAsBitmap也會被報告爲 ,因爲該影片剪輯屬於true。如果 您清除了影片剪輯的所有過濾器,則cacheAsBitmap設置 將更改爲上次設置的內容。

我相信這是因爲Flash播放器必須使用你的影片剪輯的位圖版本應用的特效 - 大多數過濾器都在像素水平上完成的。然後將其緩存,以便進一步轉換(如x/y)更高效。所以真的沒有什麼區別cacheAsBitmap設置爲true或false。

使用過濾器+時間軸動畫通常是一個壞主意。但是,一個好的優化方法是在顯示列表的更深處將濾鏡應用到未動畫的對象上。更好的是,儘可能使用帶有柵格化效果的位圖,以便在運行時不計算效果。

不要忘記使用偵察兵來查看玩家對你的物體究竟做什麼!

+0

我不能預先柵格化任何我認爲是因爲我的movieclip旋轉陰影需要更新,動畫影片剪輯應該總是在45度投射一個陰影,並且根據動畫片段旋轉的方式,影子當然會有所不同。 但是我會將影子深入到影片剪輯中,然後非常感謝您的解釋和建議。 – svejk