`
lq_kevin
  • 浏览: 48481 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex导出图片

    博客分类:
  • flex
阅读更多
Flex导出图片,需要经历几个步骤:
1、创建出UI组件,将要导出的内容绘制其上
2、创建出BitmapData对象,通过bitmapData.draw将组件绘制其中
3、通过PNGEncoder或JPEGEncoder转码将BitmapData的内容转换成ByteArray的二进制数据

通过以上步骤你在内存中已经拥有了图片数据,如果你使用的是TWaver的Network组件那你是幸运的,通过network的exportAsBitmapData(logicalRect:Rectangle = null, zoom:Number = 1):BitmapData函数你可以轻松将拓扑图上任何区域的任何缩放比例的图片内容转换成BitmapData对象。

不过这里重点要说的是“最后一公里”的事情,内存中的图片信息看不见也摸不着,一般都需要将其导出到本地文件,以前传统的做法是将ByteArray的二进制数据通过HTTP传输到后台,然后再redirect成下发文件让用户保存的方式,这种方式的弊端是显而易见的,明明在client的数据非得绕一圈到server然后在跑回client端,在提倡绿色节能的时代,这种解决方案似乎是在犯罪,这里不得不感谢Adobe终于在FlashPlayer10增加了个绿色节能的函数FileReference.save(),这样就可以直接将client内存端的数据存到本地硬盘。

细心的同学已经发现FileReference.save()函数只在Flex4上才出现,目前还有很多项目是基于Flex3的SDK下开发,包括TWaver Flex Demo也是基于Flex3的环境,如何让技术Flex3的产品也能有这个功能呢,答案在TWaver的Flex Demo中就能找到,需要两个步骤


第一步:
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以上版本!","提示");  
    
   }  
   
  }
 }
}

第二步:编译环境参数需要设置上 -target-player=10.0.0

  • 大小: 32.4 KB
分享到:
评论

相关推荐

    flex图表导出图片

    在IT行业中,图表是数据...总结起来,"flex图表导出图片"是Flex应用中一项实用的功能,它涉及到了图形渲染、图像编码以及用户交互等多个方面。通过掌握这些技术,开发者可以为用户提供更强大、更便捷的数据可视化体验。

    flex PDF导出分页

    Flex PDF导出分页是一种在Flex应用程序中生成PDF文件并实现多页显示的技术。Flex作为一个基于ActionScript和Flash Player的开发框架,常用于构建富互联网应用程序。然而,原生的Flex SDK并不直接支持PDF导出,因此...

    Flex图片上传实例

    ### Flex图片上传实例详解 在本篇文章中,我们将深入探讨一个具体的Flex图片上传实例,并对其中涉及的关键技术点进行详细解读。此实例不仅提供了一个实际的上传图片的应用场景,而且还包含了一些实用的代码片段,这...

    Flex调用JavaServlet将组件快照导出成图片

    在本场景中,我们将讨论如何在Flex中捕获组件的快照,将其转换为ByteArray,并通过JavaServlet将其导出为图片。 首先,让我们深入了解Flex中的组件快照。在Flex中,我们可以使用BitmapData类来捕获组件的视觉表示,...

    Flex裁剪图片

    【Flex裁剪图片】是一个基于Adobe Flex技术的图像处理功能,它允许用户在应用程序中对上传的图片进行裁剪和调整。Flex是Adobe Flex SDK的一部分,是一个开源框架,主要用于构建富互联网应用程序(RIA)。该技术使用...

    导出Flex组件为jpg图片

    标题“导出Flex组件为jpg图片”涉及到的是在Adobe Flex开发环境中将自定义的Flex组件转换成静态的图像格式,例如JPEG(jpg)。这通常在需要将动态UI元素作为固定图像使用,例如在打印、网页设计或移动应用中集成时会...

    Flex air 导入 导出 excel 打开图片等

    通过flex air 程序,使用as3xls,直接在air程序中导入excel 2003 版本,自动生成列头并显示,界面操作后可以导出excel文件 也可以导入image 直接显示 本列子为自己写的一个demo

    flex做的四种图表(线、柱、饼、区域)直接用js调用

    Flex本身不具备直接将图表导出为图片的能力,但可以借助第三方库或自定义解决方案来实现。 至于标签"flex charts swfobject",SWFObject是一个JavaScript库,用于在HTML页面中嵌入Flash内容,如Flex图表。它能够...

    FLEX图片分割系统

    5. **结果展示**:分割后的图片会以新的格式或结构展示,用户可以查看、比较、保存或导出分割结果。 6. **安全性**:考虑到项目安全,系统可能还具备加密和权限管理功能,确保只有授权的用户可以访问和操作图片。 ...

    jasperreports+alivepdf+Flex解决打印和导出PDF问题

    本话题主要关注如何利用jasperreports、alivepdf和Flex技术来解决在Web应用中的打印和导出PDF的问题。 jasperreports是一个强大的开源报表库,它允许开发者设计复杂的报告模板,并能在多种格式下生成,包括PDF、...

    Flex 修改图片主色调

    在Flex中处理图像是一项常见的任务,而“Flex 修改图片主色调”涉及到的是图像处理和色彩理论的知识点。以下是对这个主题的详细阐述: 1. **Flex中的图像处理**: 在Flex中,我们可以使用`flash.display.Bitmap`类...

    Flex开源项目1个[flex部分]

    - **exports**:可能包含项目的导出文件,如编译后的SWF文件或其他输出结果。 - **util**:通用工具类或函数的集合,提供给整个项目复用的功能。 综上所述,这个开源项目展示了如何使用Flex 2.0与J2EE协作,利用...

    Flex 保存组件至本地

    在Flex开发中,有时我们需要将用户界面或者特定的组件(如图表)保存为图像文件,以便用户可以离线查看或进一步处理。这个过程涉及到的技术主要包括...通过以上步骤,你可以实现从Flex应用中导出高质量的本地图像文件。

    flex相册,图片展示

    在Flex中,编译后的应用会被导出为SWF文件,可以在各种浏览器中运行,为用户提供一致的跨平台体验。然而,随着HTML5的普及,现代Web应用可能更倾向于使用Canvas或SVG等技术来替代SWF,以实现更好的移动端兼容性和...

    flex与flash的交互

    5. **资源共享**:如果Flash内容需要访问Flex应用中的资源,如图片、音频或视频,可以将这些资源作为Flex项目的资源引入,然后在Flash中通过URL引用它们。 6. **组件互用**:虽然Flex提供了丰富的组件库,但有时...

    flex通过AlivePDF生成PDF文档

    - **`Display` 类**:用于预览或导出生成的PDF文档。 #### 实际代码示例分析 代码片段展示了如何使用AlivePDF的一些基本类来创建PDF文档: ```xml <![CDATA[ import mx.collections.ArrayCollection; import ...

    Flex地图制作与学习

    通过右键点击库中的元件,选择“链接...”,勾选“为ActionScript导出”,确保在Flex中可以引用这些元件。 生成SWF文件后,我们开始在Flex环境中工作。创建新的Flex项目,将示例项目中的相关文件复制到新项目中,...

    flex皮肤

    这些类通常是继承自Flex内置的Skin类,通过设置嵌入的BitmapAsset或者使用NineGrid图片来应用设计的皮肤。 7. **状态管理**:Flex组件通常有多种状态(如正常、鼠标悬停、按下等),每个状态可能需要不同的皮肤。在...

Global site tag (gtag.js) - Google Analytics