2011-05-30 145 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