任意flex控件导出图片

 

flex导出图片功能通常是:

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

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

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

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

具体代码如下:

.as 的类文

package widgets_dr.TJT
{
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以上版本!","提示");  
     
   }  
    
  }
 }
}

然后在felx的mxml代码中创建这个类的对象,用这个类的对象去引用方法执行即可

例如:

var d:DisplayObject=DisplayObject(tabb);
    ChartExport.Instance.exportChart(d);

顺便讲一下,Datagrid导出excel的方法:

导入 import com.esri.viewer.utils.ExcelUtil;

然后 click="ExcelUtil.exportGrid(querydg,'矿权综合查询')"

任意flex控件导出图片的更多相关文章

  1. flex控件总结

    Flex基本控件总结 一.flex控件的分类:文本控件(text controls).数据源控件(data provider controls).菜单控件       (menu  controls) ...

  2. MFC编程入门之二十七(常用控件:图片控件PictureControl)

    上一节讲的是滚动条控件,本节主要讲一种简单实用的控件,图片控件Picture Control.我们可以在界面某个位置放入图片控件,显示图片以美化界面. 图片控件简介 图片控件和前面讲到的静态文本框都是 ...

  3. File控件选择图片的时候在Html5下马上预览

    页面HTML <div> <img src="@pic.Path" id="img" style="width:200px;heig ...

  4. iOS开发UI篇—UIScrollView控件实现图片缩放功能

    iOS开发UI篇—UIScrollView控件实现图片缩放功能 一.缩放 1.简单说明: 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对 ...

  5. iOS开发UI篇—UIScrollView控件实现图片轮播

    iOS开发UI篇—UIScrollView控件实现图片轮播 一.实现效果 实现图片的自动轮播            二.实现代码 storyboard中布局 代码: #import "YYV ...

  6. iOS开发——UI高级OC篇&自定义控件之调整按钮中子控件(图片和文字)的位置

    自定义控件之调整按钮中子控件(图片和文字)的位置 其实还有一种是在storyBoard中实现的,只需要设置对应空间的左右间距: 这里实现前面两种自定义的方式 一:imageRectForContent ...

  7. 【转】 iOS开发UI篇—UIScrollView控件实现图片轮播

    原文:http://www.cnblogs.com/wendingding/p/3763527.html iOS开发UI篇—UIScrollView控件实现图片轮播 一.实现效果 实现图片的自动轮播 ...

  8. VS2010/MFC常用控件:图片控件Picture Control

    图片控件Picture Control 本节主要讲一种简单实用的控件,图片控件Picture Control.我们可以在界面某个位置放入图片控件,显示图片以美化界面. 图片控件简介 图片控件和前面讲到 ...

  9. 让DELPHI自带的richedit控件显示图片

    让DELPHI自带的richedit控件显示图片 unit RichEx; { 2005-03-04 LiChengbin Added: Insert bitmap or gif into RichE ...

随机推荐

  1. scala当中的类

    1.类的定义与创建 创建一个scala class来定义我们的一个类.类当中可以定义各种属性或者方法,或者函数都可以     class Person {       //定义一个属性,叫做name的 ...

  2. 中石油大学统考(大学英语B)押题笔记

    二. 词汇与结构 1. I will.意为“我会的”,固定搭配. 2. get tired of 是词组“对…厌烦了”的意思. 3. — ________ is your girl friend li ...

  3. MySQL存储过程-遍历游标的例子

    delimiter $$DROP PROCEDURE IF EXISTS pro_test ;CREATE PROCEDURE pro_test()begin DECLARE var_name var ...

  4. Nginx学习.md

    正常运行的必备配置 user Syntax: user user [group]; Default: user nobody nobody; Context: main 指定运行worker进程的用户 ...

  5. python中的装饰

    在面向对象(OOP)的设计模式中,decorator被称为装饰模式.OOP的装饰模式需要通过继承和组合来实现,而Python除了能支持OOP的decorator外,直接从语法层次支持decorator ...

  6. python3 安装win32api

    Python3 中先安装pip install pywin32 但是在调用时任然说找不到该模块,于是查找资料后得出需要使用python -m pip install pypiwin32.

  7. Odoo工作流

    转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9281264.html 一:工作流 工作流是与业务流程相关联的模型,可用于跟踪工序的动态演变过程. 工作流.活动 ...

  8. 《metasploit渗透测试魔鬼训练营》学习笔记第九章--meterpreter

    七.强大的meterpreter  7.1再探metasploit的攻击载荷模块     7.1.1典型的攻击载荷模块     metasploit涵盖了各大主流操作系统和平台,其中绝大部分是远程漏洞 ...

  9. Kali-linux使用Aircrack-ng工具破解无线网络

    Aircrack-ng是一款基于破解无线802.11协议的WEP及WPA-PSK加密的工具.该工具主要用了两种攻击方式进行WEP破解.一种是FMS攻击,该攻击方式是以发现该WEP漏洞的研究人员名字(S ...

  10. mvc4中viewbag viewdata 和 tempdata的区别

    ViewBag 不再是字典的键值对结构,而是 dynamic 动态类型,它会在程序运行的时候动态解析. eg: ViewBag.NumberObjs = new string[] { "on ...