2009-06-17 45 views

回答

2

你的问题需要更多的细节。所以我会做一些假设。

我假设你想拍摄SWF当前状态的快照,然后将其保存为图像文件。您不会告诉我们您要保存图像的位置,例如在服务器上,用户本地机器上,甚至保存在闪存等等,所以我不能真正帮助你。

获取SWF的快照很容易。你想要的是BitmapData类。这个功能应该有帮助。只需将它传递给一个DisplayObject(可以是stage)的引用,它就会返回BitmapData对象。

function snapClip(clip:DisplayObject):BitmapData 
{ 
    var bmpData:BitmapData = new BitmapData(stage.width, stage.height, true, 0); 
    bmpData.draw(clip, new Matrix()); 
    return bmpData; 
} 

var bmpData:BitmapData = snapClip(stage); 

从那里,你可以添加的BitmapData到舞台是这样的:

var mc:MovieClip = new MovieClip(); 
mc.addChild(new Bitmap(bmpData)); 
addChild(mc); 

或者你能编码您的BitmapData成JPEG格式:

import com.adobe.images.JPGEncoder; 
var jpgEncoder:JPGEncoder = new JPGEncoder(85); 
var jpgStream:ByteArray = jpgEncoder.encode(bmpData); 

从这里出发,将它保存到服务器,您需要将byteArray发送到可处理保存的服务器端脚本。

这里有一些链接,可以帮助:

+0

我有一个swf,当我点击一个按钮就必须得到转换成JPG并保存为图像... 我不知道闪光,我需要一个例子...你可以展示它。 – Kevin 2009-06-18 08:04:38