2010年12月31日 星期五

將displayObject轉成bitmap與bitmapData的工具類

之前寫了一篇displayObject轉成bitmap的文章,最近在整理電腦時,將以前做過的測試整理,因此將其轉成工具類別便於日後使用,程式碼如下:

package com.tools.graphics
{
 import flash.display.Bitmap;
 import flash.display.BitmapData;
 import flash.display.DisplayObject;
 import flash.display.Loader;
 import flash.display.LoaderInfo;

 public class LoaderToBitmap
 {
   /**
    *建構式參數使用一個內隱類,避免使用者建立實體,
    *因為as3不能使用private給予建構式的關係,
    *但是使用者若給予null之後依然會被執行super()的建構式,所以無法避免得很完全。
    */
   public function LoaderToBitmap(dontCreate:DontCreate)
   {
   }

   static public function cloneBitmap(display:DisplayObject):Bitmap
   {
    var bitmap:Bitmap = new Bitmap(cloneBitmapData(display));
    return bitmap;
   }
   
   static public function cloneBitmapData(display:DisplayObject):BitmapData
   {
    var bitMapData:BitmapData = new BitmapData(display.width , display.height);
    bitMapData.draw(display);
    return bitMapData;
   }
 }
}
class DontCreate
{
 public function DontCreate()
 {
 }
}
//在Flex4 SDK環境下,使用範例