【发布时间】:2009-07-09 11:53:15
【问题描述】:
我正在用 flex 创建一个可视化编辑器,需要让用户将他们的项目导出为图像格式。但是我有一个问题:画布的大小是固定的,当用户添加超出这些大小的元素时,添加了一些滚动条。用户继续从事该项目。但是当他想拍摄画布的快照时,他只需使用滚动条获取画布的可见部分。如何获取全尺寸画布的图像?
我找到的唯一解决方案是检查画布子对象的位置和大小并调整它以适应它们。然后拍摄并调整大小。但它嗯......我觉得太复杂了。有没有一些“简单的方法”?
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:Script>
<![CDATA[
import mx.graphics.ImageSnapshot;
private function SnapshotButtonHandler():void
{
var snapshot:ImageSnapshot = ImageSnapshot.captureImage(AppCanvas);
var file:FileReference = new FileReference();
file.save(snapshot.data, "canvas.png");
}
]]>
</mx:Script>
<mx:Canvas id="AppCanvas" width="800" height="300" backgroundColor="0xFFFFFF">
<mx:Box x="750" y="100" width="100" height="100" backgroundColor="0xCCCCCC" />
</mx:Canvas>
<mx:Button id="SnapshotButton" label="take snapshot" click="SnapshotButtonHandler()" />
</mx:Application>
【问题讨论】:
标签: apache-flex flash actionscript-3