0
我在舞臺上有一個動畫片段。它的500x400。它有許多不同大小的孩子添加到它。我如何從(0,0)中捕捉動畫片段的300x200區域。假設有一個寬度和高度爲(100,100)的孩子,那麼我應該能夠看到這個孩子分別從100到300和100到200。該區域的其餘部分是不需要的。我應該能夠稍後操縱捕獲的圖像。所以我想我必須捕獲它作爲一個位圖。但是,這件事怎麼辦呢。捕捉動畫片段的一部分
我在舞臺上有一個動畫片段。它的500x400。它有許多不同大小的孩子添加到它。我如何從(0,0)中捕捉動畫片段的300x200區域。假設有一個寬度和高度爲(100,100)的孩子,那麼我應該能夠看到這個孩子分別從100到300和100到200。該區域的其餘部分是不需要的。我應該能夠稍後操縱捕獲的圖像。所以我想我必須捕獲它作爲一個位圖。但是,這件事怎麼辦呢。捕捉動畫片段的一部分
var bd:BitmapData = new BitmapData(300, 200, true, 0);
bd.draw(your_movieclip);
var bitmap:Bitmap = new Bitmap(bd);
addChild(bitmap);
或者你可以嘗試使用這種快速類:
package
{
import flash.display.DisplayObject;
import flash.display.BitmapData;
import flash.display.Bitmap;
public class BitmapGrab extends Bitmap
{
/**
* Copies a section of a MovieClip and stores as BitmapData
* @param target The target DisplayObject to draw from
* @param wpx The area width
* @param hpx The area height
*/
public function copyGraphics(target:DisplayObject, wpx:uint, hpx:uint):void
{
bitmapData = new BitmapData(wpx, hpx, true, 0);
_bmd.draw(target);
}
}
}
要使用:
var bmg:BitmapGrab = new BitmapGrab();
bmg.copyGraphics(your_movieclip, 300, 200);
addChild(bmg);
+1的答案,但爲什麼不把BitmapGrab擴展位圖,而不是雪碧?這似乎太多了 – divillysausages 2011-05-10 07:53:34
假設,你覺得怎麼樣?對我有用的 – Marty 2011-05-10 08:12:57
:D – divillysausages 2011-05-10 09:20:45