flex导出图片

flex导出图片功能通常是:

思路1:客户端将UIComponent转化为BitmapData,再转为ByteArray,将ByteArray上传到服务端,服务端发送文件到客户端。

然而,flex本来就是客户端的东西,为什么还要绕道服务端去呢,这不是化简单为复杂嘛,

思路2:客户端将UIComponent转化为BitmapData,再转为ByteArray,使用FileReference.save()直接在client端保存图片

(当然前提要求是:在flash player 10.0中)


package
{
import flash.display.BitmapData;
import flash.display.DisplayObject;
import flash.display.DisplayObjectContainer;
import flash.geom.Matrix;
import flash.geom.Point;
import flash.net.FileReference;
import flash.utils.ByteArray;

import mx.controls.Alert;
import mx.graphics.codec.PNGEncoder;

public class ChartExport
{
static public var Instance:ChartExport=new ChartExport();

public function ChartExport()
{
}
public function exportChart(d:DisplayObject):void{

var dt:DisplayObject = d;
var bmpData:BitmapData = new BitmapData(d.width,d.height,true,0x00ffffff);
bmpData.draw(d);

var fr:Object = new FileReference();
if(fr.hasOwnProperty("save"))
{
var encoder:PNGEncoder = new PNGEncoder();
var data:ByteArray = encoder.encode(bmpData);
fr.save(data,'chart.png');
}
else
{
Alert.show("当前flash player版本不支持此功能,请安装10.0.0以上版本!","提示");
}
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值