2011-05-30 143 views
6

我想導出透明使用此類的PNG文件: com.adobe.images.PNGEncoder;as3 |如何使用Adobe AIR導出PNG

var pngSource:BitmapData = new BitmapData (stage.stageWidth, stage.stageHeight); 
pngSource.draw(stage); 
var ba:ByteArray = PNGEncoder.encode(pngSource); 
var file:File = File.desktopDirectory.resolvePath("test.png"); 
var fileStream:FileStream = new FileStream(); 
fileStream.open(file, FileMode.WRITE); 
fileStream.writeBytes(ba); 
fileStream.close(); 

一切工作正常 - 除了透明的問題...

如果我能得到Flash的舞臺顏色是透明的,然後它會工作 - 但不幸的是 - 沒有這樣的選項。

有沒有我缺少的選項?

+0

也建議你使用更好的編碼庫:http://www.blooddy.by/en/crypto/ – 2011-05-30 13:52:52

回答

6

您需要製作具有透明背景的BitmapData實例。你這樣做,通過在constructor透明參數,並與alpha分量(ARGB十六進制)填充顏色:

var pngSource:BitmapData = new BitmapData (stage.stageWidth, stage.stageHeight,true,0x00FFFFFF);//'transparent white' 
+1

您可以將顏色參數設置爲「0」。顏色將*透明黑色*,然後 – NemoStein 2011-05-30 12:34:20

+0

@NemoStein確實:) – 2011-05-30 12:36:07

+0

哇 - 工作就像一個魅力!謝謝 :) – Alon 2011-05-30 12:41:41