許多朋友在做完Flash之後,都會需要截取畫面交差,但擷取畫面的過程複雜,還要開Photoshop處理真的很麻煩,於是最近利用ActionScript 3.0加上Flash Player 10的新功能做出快速抓畫面並儲存的功能。
寫在最前面,載入PNG編碼套件 [ActionScript 3.0 library for several basic utilities.]
import com.adobe.images.PNGEncoder;
然後新增按鍵事件
stage.addEventListener(KeyboardEvent.KEY_UP, _capture);
最後當然要新增按鍵處理function
function _capture(e:KeyboardEvent){
// 如果按下 CTRL + S
if(e.keyCode == 83 && e.ctrlKey){
var i:BitmapData = new BitmapData(stage.stageWidth,
stage.stageHeight);
i.draw(stage)
var b:ByteArray = PNGEncoder.encode(i);
var fr:FileReference = new FileReference();
// 檔案名稱預設會加上TIME字串,可以視情況修改
fr.save(b, "Filename-"
+ new Date().time.toString() + ".png");
}
}
當然這個方法有一些小問題。按下CTRL+S之後馬上就跳出的儲存視窗,在場景快速變化,或是手殘太早或是太晚按的時候,很容易出問題。
而且很多人都寫過了,所以下一個改版會新增一個有趣的功能~