我想有處理過一些閃光字的人一定會發現這個問題
就是閃光字明明很小但是他的重繪範圍比較大
想看這個比較好的效果的可以到 閃光字 這看
如果有 DEBUG版的 player 的話可以開啟 重繪範圍看看
我來介紹一下我知道解決這個問題的幾個方法!
1.
從結構面去解決
只要有作移動補間動畫是在 遮罩的圖層上的
不是被遮圖層上 如下圖
那最簡單的解法
就是 把整個遮罩物件(遮罩 和 被遮的物件 一整組設成 快取點陣圖)
如下圖
那這樣他的補間動畫就會是
不過有得時候
因為某些複雜的表現
沒辦法把 補間動畫作在 遮罩區
那下一種程式面的方法就可以解決
2.
使用 mc.scrollRect 屬性
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html#scrollRect
不過在我的測試下 好像是沒用的....
也許這個也有一些 我不知道的限制....
但是在另外的測試 下是有用的
效果會和你 限制的區域一樣大!
不過這邊我沒去深究! 就把它當成是一種解法
我有測到一個限制~
就是這個物件 要設 快取成點陣圖 後才有用
以我這個範例來說 也是設了就有用了
沒設 就會和這個圖一樣
不過可能 還有一些其他的因素 例如 player 的版本 等等的
總之...我覺得第三個方法 我比較喜歡 所以我也沒深究了
3.
最後這個是一個簡單的想法
利用 顯示物件沒有貼在場景上
但是依然存在 而且可以被繪圖這一點!
然後 重繪的區域就會是你繪圖的區域
下面是這個簡單的想法的 CODE
有興趣的可以看一下
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.geom.Rectangle;
import ui.logo;
public class MovieClipToBitmapDemo extends Sprite
{
private var _mc:MovieClip;
private var _bmd:BitmapData;
private var _bm:Bitmap;
private var _rect:Rectangle;
public function MovieClipToBitmapDemo()
{
_mc = new logo();
this.addEventListener(Event.ENTER_FRAME, onEnterFrameFun);
_rect = new Rectangle(0,0,109,78);
_bmd = new BitmapData(109, 78, true, 0);
_bm = new Bitmap();
_bm.smoothing = true;
this.addChild(_bm);
draw();
}
private function onEnterFrameFun(e:Event):void
{
draw();
}
private function draw():void
{
_bmd.fillRect(_rect, 0);
_bmd.draw(_mc,null,null,null,_rect,true);
_bm.bitmapData = _bmd;
}
}
}
希望可以幫到一些人
然後再補充一點
就是如果這個被重繪的圖
裡面有很複雜
而且 有多重的濾鏡 遮罩 互相影響!
那重繪這個動作
可以幫你節省一些效能
但是 記憶體就會略多了 !





3 則留言 :
針對 重繪範圍大小,第一種作法的範圍最小:
https://dl.dropbox.com/u/15570140/Temp/20120719_ForTenchiBlog/20120719_Tenchi_RedrawRect.png
你提到第二種作法作不出來,我這邊測沒甚麼問題,或許是我們 MC 的作法不相同,我的結構是:
https://dl.dropbox.com/u/15570140/Temp/20120719_ForTenchiBlog/20120719_Tenchi_SingleAnimationStructure.png
DEMO:
https://dl.dropbox.com/u/15570140/Temp/20120719_ForTenchiBlog/20120719_Tenchi_Demo.swf
FLA:
https://dl.dropbox.com/u/15570140/Temp/20120719_ForTenchiBlog/20120719_Tenchi_Demo.fla
我有測到一個限制~
就是這個物件 要設 快取成點陣圖 後才有用
以我這個範例來說 也是設了就有用了
沒設 就會和這個圖一樣
不過可能 還有一些其他的因素 例如 player 的版本 等等的
總之...我覺得第三個方法 我比較喜歡 所以我也沒深究了
張貼留言